Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Old W5100 shields lost their link after we moved to new gigabit switches

Old W5100 shields lost their link after we moved to new gigabit switches

Resuelto 6 5

We have six Arduino Mega + W5100 Ethernet shields (older clone boards) at a solar site, counting energy meter pulses and publishing every minute to Hermetry. They can’t do TLS, so they sit on their own profile with plain MQTT allowed, inside the site’s VPN, pinned with Allowed networks.

Last month the site got new managed gigabit switches. Since then four of the six shields get no link at all, the link LED on the shield stays dark. The other two work, on the same switch. Put one of the dead ones on the old 10/100 switch from the spares box and it comes up immediately. Same cable.

The Log tab for those devices shows the last keepalive_timeout disconnect on the day of the swap and nothing after.

♥ 1

Check whether Energy Efficient Ethernet (EEE, «green ethernet») is on for those ports, old PHYs hate it.

♥ 0

Turned EEE off on all six ports. Then I also forced the ports to 100/full. Now the link LED comes on, but there is no traffic, DHCP never gets an answer.

♥ 0

Maybe try a different cable?

Ask me about 4–20 mA.
♥ 0

We had this with old shields on a bottling line, two problems stacked on top of each other.

Forcing the switch port to 100/full is what killed traffic after you got a link. The W5100 still auto-negotiates. When the other side is forced, auto-negotiation can’t find out the duplex and falls back to half duplex. Switch on full, shield on half, and you get a duplex mismatch: link up, almost nothing passes. Put the ports back to auto, or force both ends (and you can’t force the W5100 from the Arduino library).

The original no-link problem is very often the reset on those clone shields. The W5100 comes out of reset before its supply is stable and its PHY sometimes never negotiates properly. The old switch was forgiving, the new one isn’t. Fix that worked for us:

// shield RESET pin wired to D8 with a jumper wire
pinMode(8, OUTPUT);
digitalWrite(8, LOW);
delay(50);
digitalWrite(8, HIGH);
delay(500);              // let the PHY settle
Ethernet.begin(mac, ip);

And if one still refuses, a cheap unmanaged 10/100 switch between the shield and the managed one ends the argument. Long term, W5500 shields don’t have this problem.

Solución aceptada♥ 5

Ports back to auto, EEE stayed off, reset pulse added: five of six came up and have been publishing since Tuesday. The last one would not have it, so it got a small 10/100 switch in its box. Replacing all six with W5500s at the next site visit.

♥ 0

Good to know, we have two of these old shields in the hotel laundry and IT is talking about new switches.

♥ 0
Viendo 7 entradas – de la 1 a la 7 (de un total de 7)
  • Debes estar registrado para responder a este debate.

Únete a la conversación

Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

Compartir