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?
This is very bad news as we want to connect directly to an existing device with only a 10 Mbit/s port. Any chance to make this configurable?
As far as I know, PHY auto negotiation is switched on. My colleagues in the Mountaineer group will look into this issue.
@ 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).
Here are my test results:
- 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…
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).
@ candritzky - Can you send me an email to pfister@ oberon.ch please? We have a test version that max fix this issue.