I was in need of an up to date network interface for the NXP LPC54018 / LPC54S018 MCU and found the one in the FreeRTOS+TCP repo which worked for version 3.1.
For anyone interested, I attach an updated version which works with FreeRTOS+TCP 4.2.1 and probably also with newer ones.
It is surely not 100% bullet proof but does what it’s supposed to.
Improvements are welcome!
Tested (on the LPC54S018M-EVK):
DHCP
ICMP ping
PHY disconnect / reconnect
When testing on this development board, make sure to place the jumpers JP14 / JP15 accordingly to enable the MDIO pins.
an updated version which works with FreeRTOS+TCP 4.2.1 and probably also with newer ones.
If your driver works with 4.2.1, it will also work with 4.3.x, and also with older releases.
About PHYs: once we had 12 network interfaces and 12 PHY drivers. Most PHY drivers were limited to one type, e.g. the part used in the development board.
Then I made a study of all PHY types that I had used, see phyHandling.h. The differences between the parts are fairly small, see phyHandling.c.
Many of the network interfaces use phyHandling.c, like the STM32 family. You might consider to integrate it to make your network interface more compatible. All you need is two access functions: phyRead() and phyWrite().
There is also a directory called ThirdParty: you can put it there “as it is”.
I’ll definitely make use of the phyHandling code since I will use a different PHY on a custom board but only need basic stuff which is probably being covered..
Since the NXP MCU shares the MDIO pins with the EMC peripheral (which I need), I’ll have to do MDIO via SPI emulation.
If you have any clues for that I’d be happy but it shouldn’t be rocket science.