Hi Mark !
Ah ah, it is interesting ! This means the board and the schematics are differents. I've some problems to receive packets correctly on my design (new PCB) which is based on the schematics (LPC2378-STK). The Micrel PHY is a KSZ8721BL set up in RMII mode as well. To get some boards working, I have to connect a strap between pin 9 & 22. If I remove it, I reveive no packet at all. However, some boards doesn't work even if I connect these pins together : an error from the status descriptors for each packet received (bad length or alignement error or CRC error). When I read the buffer, I have 12/13 first-bytes of a packet correctly (example for an ARP packet : 6 bytes broadcast (0xFF) followed by 6 bytes of my source MAC address (my computer) and then... dummy bytes...). No problem to send packets though, checked with ethereal.
I received an email from Micrel yesterday :
We think the problem may be due to the strap between pins 9 & 22.
For RMII mode (see datasheet) the E_CRS signal (on customer schematic)
should connect to pin 9 RXDV/CRSDV and not pin 22 CRS. This needs to be
corrected as we believe this is the cause of the receive errors
(misalignment).
We suspect in the modification that you strapped pin 9 and pin 22
together but also cut pin 22. Pins 9 & 22 are both outputs so you do not
want them connected together (you may be lucky in RMII but certainly we
would not advise connecting the two pins).
Well OK, but it doesn't work... why ? The schematics provided by Micrel attached to the email are all designed for MII (pin 22 and pin 9 are used separetly), not RMII...
To conclude : there is something wrong either in the datasheet or with this chip in RMII mode, or with my PCB design... no reply from Olimex too... I made a small test code to check EMAC. Does someone write another one for LPC2388/78 + Micrel PHY ?
Thanks again Mark,
Best Degards,
David