I am using ESP32 WROVER + LAN8742A PHY with ESP-IDF v3.2.
The ESP32 occasionally cannot receive multicast ethernet frames. It can send multicast, send & receive unicast, and send & receive broadcast without problems. The receive multicast problem happens roughly in 1% of startups, and it persists until a power cycle - even a chip reset doesn’t fix the problem. I suspect it is a silicon or driver problem.
I noticed the git commit to the ESP-IDF ethernet driver emac_dev.c in late 2018 that sets the PAM bit enabling all received multicast frames to be passed to the application:
REG_SET_BIT(EMAC_GMACFF_REG, EMAC_PAM);
I checked at runtime and print out to the console the value of this register on every received frame, and I can confirm the register PAM bit is set. However in 1% of the startups the frames are not received.
I suspected this is a silicon or driver setup issue, so I tried clearing and setting the PAM bit on every connect/disconnect of the Ethernet link (achieved by removing and plugging in the CAT5 cable). This seems to address the issue, but the problem happens so rarely it is difficult to recreate.
Has anyone else seen this issue, and could there potentially be a silicon bug?
Intermittently not receiving Ethernet multicast frames
Who is online
Users browsing this forum: Bing [Bot], ok-home and 52 guests