Hello,
I've designed a little board with a Cirrus Logic CS8900A-CQ3 ethernet controller on it, in 16-bit mode. When I connect my board to a hub, I only get a link light on my board, but not on the hub. However, I am able to read 0x630E from the PacketPage 0x0C register as Cirrus says I should be able to do in the AN 205 application note.
Furthermore, using an external loopback connection (TX+ tied to RX+, TX- tied to RX-), I do not get a link light on my board and the LinkOK bit in the LineST register is clear (it was set when I was connecting to the hub). Note: I set the FDX bit in the TestCTL register to 1 for the loopback test.
I have checked that the 20MHz crystal I am using is producing an oscillation.
It seems that my TX+/- connection is bad, but I've double checked my schematic against those in the AN 83-3 application note and I have checked for bad solder joints. Cirrus says in their datasheet that I should get a link light on both ends with only power applied, so I don't think I need to set any registers to transmit data to get a link light on the hub. Has anyone discovered otherwise?
Any ideas what could be wrong? Any ideas for tests I should run to debug this problem? I have posted the schematic on
On a related note: how do I probe with an analog two channel scope a twisted pair ethernet line? I connected one channel to Tx- the other to Tx+, set channel 2 to invert, set the channels to add, set both to
1V/div, and ran at 10ms/div. I also connected the common clips on each lead together. With only one test lead connected I see a 2.8Vpp 16ms period link pulse, but I see this on all 8 wires. With both test leads connected I get nothing. What am I doing wrong?I would appreciate any help.
Cheers, Chris