For my current project I am converting a firmware that was written for Keil compiler V5 to V6. (So basically a full re-write). However the Ethernet component is giving me troubles.
My starting point is the FTP server demo. Next, I swaped the PHY driver from the LAN8720 to the DP83848C since that is on my board. I also disabled the graphics since I have a different display compared to the "Embedded Artists LPC1788 Board".
Once I start the code on the board I can see that the code manages to transmit DHCP packages, however somehow the DHCP reply's don't arrive back at the controller. (In the screenshot below I used a switch wit port mirror to get the DHCP-server query and reply).
If I now open Keil and use the "Network watch" I get the following.
As can be seen, the Tx counter increases, however the Rx is kept at 0.
Finally, I have a screenshot of the Ethernet RSV register. Here you can see that the RCV bit is on. the RBC (Received byte count) keeps on changing as different packets arrive.
The description mentions that there is a "Receive code violation". And that "recieved PHY data does not represent a valid recieve code".
My main question is: What are "valid recieve codes" and how do I get my PHY/MAC so that it will accept the incoming data?
Note: Since this is based on existing hardware I don't doubt this part.
Thanks for coming back and sharing the solution that worked for you!
Oli
Arm Community Manager