Software has been written for me to send/receive basic packets via a DP83848 PHY (MII mode, 100Base). Using Wireshark on a laptop I can see the complete data packet sent from the TMS. Looking in the opposite direction the TMS receives the laptop standard broadcast message, but the number of bytes with valid data displayed is the problem. At the first power-up with this code, I saw the 12 nibbles of the destination address (in this case FFFFFFFFFFFF), followed by 8 nibbles of the laptop MAC address, then zeros for as long as I read (I would expect Incoming MAC, outgoing MAC, 2 bytes for length/mode then data).
Re-booting the TMS, I saw the complete packet, so connected two TMSs together and having set up MAC addresses appropriately was able to send from the second and receive 44 bytes into the first. I didn't try it the other direction.
Trying the code the next day (after complete overnight shutdown), I find the problem has returned, with no cure upon re-boot. This, to me, sounds like an uninitialized register. I tried poking the RXMAXLENGTH buffer to an arbitrary value of 0x40 (it peeked at the default/reset value of 0x5EE beforehand). This caused the TMS that I had seen working to receive both MAC addresses at the full 12 nibbles each, but no further data. The second TMS didn't change after the same poke when using as a receiver.
After powering right down, the first TMS still shows 12 + 12 MAC nibbles but no more data...
I can't see any registers in the PHY which might affect this count: the pulse length on DV is 5.78us, which seems about right & no RX_ERrors are seen.
HELP, please.