Arm Mbed and Pelion Device Management support forum

DP83640 PHY not working with STM32F767Zi MCU

Has anybody got the TI DP83640 PHY to work with Mbed?

I am working on a custom board using an STM32F767zi as MCU and can not seem to get ethernet working correctly. The initialisation of the ethernet interface seems to work correctly, but when opening a socket the link can’t be made.
Earlier tests on the NUCLEOF767zi development board, don’t show the same problems and this development board uses a different PHY transceiver (LAN8742A). We need to solder the PCB ourselves so for this reason we can not use the LAN8742A because it is only available in a no lead package.

All connections between MCU and PHY are exactly the same as on the Nucleo (RMII) and as far as we can tell the control and status registers are the same for both PHYs. The only difference we have found is that the PHY address of the DP83640 is 0x01 and the address of the LAN8742A is 0x00. For this reason we changed the PHY address to 0x01 in “stm32xx_emac.cpp” file included in Mbed OS. Sadly this did not fix our problem.

We have managed to find the following driver for the PHY transceiver: https://www.oryx-embedded.com/doc/dp83640__driver_8c_source.html
However we are not experienced enough to properly implement this within Mbed.

I don’t really know in exactly what direction to look next or what I should try to find out the exact cause of the problem. For this reason I am wondering if anybody has any experience with this PHY and Mbed or has any ideas we could try?

Kind regards,

Sebastian