2019-12-04 01:45 AM
Hello.
I cannot use Ethernet with my 2 weeks old NUCLEO-F767ZI (chip version Z).
Probably the LAN8742A does not work properly anymore.
After initilization I perform a check:
if (HAL_ETH_ReadPHYRegister(&heth, PHY_BSR, ®value)==HAL_OK) {
if (regvalue&0x04) {
// cable connected, but with this board never reached
...
}
}
No LED of the connector is active.
The software works on other boards. (Latest FW, etc.)
Is there a chance to rescue the board?
Thank you Joerg
Solved! Go to Solution.
2019-12-05 09:31 AM
I have a solution for my problem:
Disable Auto negotiation, use Full-Duplex and 100MBit/s.
In HAL_ETH_Init() Auto negotiation returns with HAL_TIMEOUT and is not proper initialized.
2019-12-04 03:18 AM
If the same software works on another board, and if all other aspects of the software do work on this board, it still may be then either the PHY, the magnetics, the RJ socket, or any of the dozen of components around these...
Grab an oscilloscope, and start with the ETH clock (25/50MHz).
JW
2019-12-04 03:59 AM
Also try running with/without debugger and do flash mass erase.
2019-12-04 04:21 AM
Software works on 30 other boards.
ETH clock is present, Jumper JP6 and JP7 shortened with solder.
It takes too much time to think about if the PHY is bad.
Board goes into the trash, not the first one.
Thank you for your time.
2019-12-04 04:45 AM
Do all boards have the same defect? Maybe MAC address conflicts and switch disabling it's ports?
I have 5 exactly the same boards all working perfectly for about 2 years.
2019-12-04 04:47 AM
No, just one board.
In the past I got rid of boards with chip version A.
2019-12-04 04:50 AM
I use always the board ID as part of the MAC to avoid this.
Testing means one DHCP server, laptop and board. No other devices.
2019-12-04 05:19 AM
Just for a curiosity and to be more sure, you can try my demo firmware:
If it shows IP address in a terminal and you can ping it, then... it gets more interesting. :))
2019-12-05 08:25 AM
It works. Does it use FreeRTOS?
2019-12-05 09:31 AM
I have a solution for my problem:
Disable Auto negotiation, use Full-Duplex and 100MBit/s.
In HAL_ETH_Init() Auto negotiation returns with HAL_TIMEOUT and is not proper initialized.