Connecting two devices over 10Base-T Ethernet without a Switch
I am trying to connect two devices one of which is only capable of 10Mbps and does not support auto-negotiation. (The other is a black box, I am unsure how to tell whether it supports auto-negotiation, although it works when connected to my PC at both 10/100Mbps)
I can connect these devices using a switch, and they talk quite happily. However if I connect the devices directly to each other then no packets seem to traverse the link. I have tried four cables, a straight-through, a cross-over, a straight-through with TX+ and TX- wires swapped, and a cross-over with TX+ and TX- wires swapped. I have tried the latter two cables both ways around. (This is in case pins 3 and 6 are swapped in either device, I read that this can be a problem with 10M which uses polarized transmission).
I can connect to either device from my PC if I limit my NIC to 10M and ask it not to auto-negotiate.
Is there something else that the switch could be doing to make this connection work? Are there any other things I could try to get a cable between these devices?
Have a look at the Wikipedia article.
The switch may correct a duplex mismatch. Maybe you can switch the non-blackbox between half and full duplex?
Finally solved it.
When using Auto-Negotiation, Parallel Detection is used to determine the link speed when the other device is not capable of Auto-Negotiation.
The concern raised by Hauke Laging is a valid one, especially in this case as a duplex mismatch can cause a link to be established but an extremely slow connection. When using Parallel Detection both devices should default to Half-Duplex though, since it would be impossible to tell if a device was capable of full / half duplex just from the LTP which is transmitted by a device which doesn't support Auto-Negotiation.
In my case the black box was failing to do Parallel Detection and was defaulting to 100M despite the spec claiming it supported Parallel Detection. A Firmware update fixed this.
The reason that the link worked to my PC was that even when I limited my NIC to 10M HD, it was still using Auto-Negotiation to communicate it's capabilities, and so the black box correctly detected the required rate. Likewise, this worked perfectly when connected to a switch as the switch detected both the LTP and AutoNegotiation pulses correctly.
Thanks for all the helpful comments and useful links. If anyone has a similar issue I would be happy to help debug.