I am debugging a prototype PCB that includes a Micrel KS8721BL PHY connected to the Ethernet MAC of an Atmel AT91SAM9 CPU.
Frame reception appears to work, but *all* transmitted frames are lost.
If I connect the board to an Ethernet switch, the activity LED blinks, but the switch doesn't attempt to forward the frame to the other port(s).
I have checked all the obvious stuff:
- MLT-3 waveform on TX+ and TX- looks good.
- MII signals: TX_EN, TX_D0[3:0] look right
- 25MHz clocks to MAC and PHY are present
- Link is up and FLP pulses during autonegotiation advertise the correct options
The interesting bit was when I connected the board to an old NetGear DS104 hub (which is based on the AC206 hub controller IC from Altima):
About half of the transmitted frames cause collisions. These can be seen via the collision LED on the hub and also the evidence of a 'frame' coming from the hub to my board *during* the transmission of the outgoing frame. (By 'during' I mean its start delayed by about 1 microsecond but cuts off at the same time as the outgoing frame. I detected this via the MII COL signal coming from my board's PHY.
On further examination of RX_D0[3:0] during this incoming 'frame', I see that the PHY is sending my board a 0x55 followed by a long series of repeated0x34.
What I'd like to know is what this incoming frame is supposed to be, and why the hub would be sending it anyway.
Can anybody help?