Seems like the Mountaineer Eth board does not work at 10 Mbit/s Ethernet link speed.
We are trying to connect a Mountaineer Eth board directly to a device which supports Ethernet, but only at a 10 Mbit/s link speed. Tried both straight and cross-over Ethernet cabling. Communication fails. Works only on 100 Mbit/s or when an intermediate dual speed (10/100 Mbit/s) Ethernet switch is used.
Is that a limitation of the hardware (Ethernet chip) or firmware? What would it take to make this either dual speed capable or at least manually configurable?
@ Cuno - According to the MountaineerEth schematics, a 78Q2123 MicroPHY controller is used. According to its spec, this part should be capable of providing 10/100 Mbps support including auto-negotiation (both full and half duplex), as well as auto MDI/MDI-X (crossover) detection. All these features should be turned on by default.
I also checked the latest STM32F4 source code available on CodePlex and saw that the 10/100 auto-nego feature is explicitly enabled.
So currently there is no obvious reason that the MountainerEth board won’t work at 10 Mbps link speed. I will repeat my testing with the latest firmware (.NETMF 4.3).
It works on a 100 Mbps link, both full and half duplex with both straight and crossover cabling.
It does NOT work on a 10 Mbps link, neither full nor half duplex.
Even though the IP stack does not work on a 10 Mbps link, the NetworkChange.NetworkAvailabilityChanged correctly indicates the link state (i. e. IsAvailable=true when connected to a 10 Mbps port). The external Ethernet port also correctly detects the physical link.
A note on the firmware code: When enabling auto-negotiation through the eth_enableAutoNegotiation, it seems to set only bit 12 (AN Enable), but reset all other bits including 13 (Speed Select) and 8 (Duplex) of the PHY_CONTROL_REGISTER. According to the 78Q2123 docs bits 13 and 8 should be ignored when AN is enabled, but you never know…
More information:
I monitored the Ethernet link (layer-2) using the Wireshark tool. Even when connected to a 10 Mbps link I can see a “gratuitous” ARP request when booting or reconnecting the MountaineerEth board to the network. When DHCP is enabled on, I can also see DHCP discover requests from the MountaineerEth board.
This tells me that the PHY layer is working fine on a 10 Mbps link, but the upper layer (IP, layer-3) seems to have a problem. As I can receive packets transmitted from the board, I assume the problems are more on the RX side of the MountaineerEth board or firmware.
Sometimes, but only at very rare occasions, I succeeded to PING the device on a 10 Mbps link. But this is very seldom and succeeds only after several connect/disconnect or reboot/reset attempts (it only works in approx. 1 out of 10 attempts).