Здравствуйте, я тоже пытаюсь освоить W5500, у меня чип отвечает на пинг но ни как не хочет подключаться к серверу в режиме TCP клиента. Т.е. я делаю следующее:
провожу инициализацию, , проверяют что регистр Sn_SR == SOCK_INIT.
записываю IP адрес и порт сервера в соответствующие регистры
потом отправляю команду в регистр Sn_CR - CONNECT, и как я понял работу чипа - в этот момент он должен отправить что-то типа запроса на соединение (SYN packet) и получив ответ от сервера регистр Sn_SR должен измениться с SOCK_INIT(0x13) на SOCK_ESTABLISHED(0x17), но вместо этого где-то через 1,5 секунды регистр Sn_SR устанавливается в SOCK_CLOSE(0x00). В качестве сервера я использую скрипт на питоне на ПК, с этого компьютера чип отлично пингуется и не понятно в чём может быть причина.
Мне кажется что у меня какая то не правильная последовательность действий при установки соединения, но всё что сказано в гайде на сайте производителя этих чипов по поводу работы в режиме TCP-клиента - это:
Transmit the connect-request (SYN packet) to “TCP SERVER”. It may occurs the timeout such as ARPTO, TCPTO when make the “connection SOCKET” with “TCP SERVER”
{
Sn_DIPR0 = server_ip; /* set TCP SERVER IP address*/
Sn_DPORT0 = server_port; /* set TCP SERVER listen port number*/
Sn_CR = CONNECT; /* set CONNECT command */
}