Socket Status 0x8A?


I’m trying to implement an IoT device with w5500. Planed to be produced. My progress up to now: DHCP and MDNS is running successfully as UDP Service, as small HTTP service as well as our own TCP/IP payload is working. However, when running longer tests, it happens from time to time that I get a result of 0x8A when reading SOCK_STATUS. This happens simultaneously to all active sockets. Later on, the socket changes to SOCK_LISTEN and then to SOCK_ESTABLISHED. However, these transitions destroys my payload transmission.

What does this 0x8A mean? I can’t find anything in the manual nor in the headers … And what causes this 0x8A state and how can I avoid it?

Thank you for answering and useful hints …

best regards

When this status code happens in terms of socket lifecycles? Your explanation means that it goes before listening state. After you issue listen command, right? Can you see what was happening before this status happens?

I know this investigation does not help, and we must ask @wizteam for what this status code may mean, or at least them check if it is a problem. There’re undocumented status codes, which are meaningless for the driver/application, and which simply must not be acted upon. Hope this one is in this set of states, and it does not indicate the problem.

There’s another thought though - when 0x8a is being read, are you sure register read command (through SPI) is not an issue returning wrong data? May it happen that communication fails for some reason (for all sockets - thus fails in general) and then recovers? What other registers read when 0x8a is read from status register?

as said: mdns/dhcp is running. This means a lot of transfer from and to the w5500 chip. I’m quite sure, that reading the chip is ok. And later on, I’m reading known socket stati.

Do you use TCP for DNS and DHCP?

DHCP is an UDP service. MDNS too.

SOCK_LISTEN and SOCK_ESTABLISHED relate to TCP, therefore 0x8a does not affect sockets when used for DHCP and DNS? Only TCP sockets are affected?

Can you elaborate ‘inactive socket’ term - this means the issue is not seen on closed sockets only, right? Sockets open in TCP mode or UDP more all experience status 0x8a simultaneously?

w5500 comes with 8 sockets. I’m using socket 0 and 1 for DHCP and MDNS. Socket 2 for HTML, Socket 3 and 4 for special payload. 0,1 are running in UDP, 2,3,4 are running in TCP. I’m continously checkin SOCK_STATUS register on all sockets. On the TCP sockets, I’m getting this strange 0x8A state code.