cancel
Showing results for 
Search instead for 
Did you mean: 

H743 ethernet clocking issue

matt-crc
Associate II

Hello,

I started a new project using the H743, ethernet, LAN8742 and NetXDuo (on one of our custom boards).  Its a very simple project that initializes the hardware, initializes AzRtos, ThreadX, and NetXDuo, and starts TCP, UDP, and ICMP.  This project is just a base (Starting point) for much bigger projects.  When connected to the network, i can ping the board, it can either use a static IP or  the DHCP client.

The strange part is that the software works when the clock configuration is set to 400MHz.  If I try to set it to 480MHz, NetXDuo doesn't receive any packets from the network.  At 480MHz, the phy is working properly and it detects (prints a line) stating the status of the ethernet cable (plugged in / unplugged). The phy is sending a 50mhz clock to the H743, so I don't understand why the MCU works at 400 but not 480.   Anyway, I've been pulling my hair out trying to figure out why it doesn't work.  Everything in the Clock Configuration looks ok and CubeIDE does not complain about any of the values entered.  Does anyone have any clue or suggestions as to why it doesn't work at 480MHz?

Thanks

Matthew

23 REPLIES 23

1- I don't understand ST dies... if it has a different memory size, how could it have the same die?

2- I found stock on STM32H745I-DISCO, but that board uses LAN8740.  I'm not sure what we are trying to accomplish here... my board uses the H743 with LAN8742.

If I get this board, what is my objective - or what are we supposed to test?

 

1- Yes they are the same die.  The disabled features are physically present on the die but disabled in the factory. 

2- To test your example on one of the ST boards to discard any hardware issue coming from your custom board.

Sorry for proposing H750 disco I thought it was using LAN8742!

To give better visibility on the answered topics, please click on "Accept as Solution" on the reply which solved your issue or answered your question.
PS:
1 - This is NOT an online support (https://ols.st.com) but a collaborative space.
2 - Please be polite in your reply. Otherwise, it will be reported as inappropriate and you will be permanently blacklisted from my help.

Hi @mƎALLEm 

I ordered multiple boards, but i'm not sure when they will arrive since they are backordered from ST.

Attached is the project code that works at 400MHz, but fails at 480MHz on the STM32H743XIH6.  The code was generated automatically by the STM32CubeIDE, there is no user code in the project.  Basically, it loads Azrtos / NetXduo and then sits in an infinite loop doing nothing. If you connect the LAN to a pc, you should be able to ping 192.168.1.10.  This works at 400mhz, fails at 480mhz.   I can only try it on one of your development boards when it comes in.

The version of the chip is 0x2003 (V).

The STM32CubeIDE automatically sets the chip type to “v” and sets the appropriate “Power Regulator Voltage Scale” after changing the system clock in the IDE clock configuration.

Can ST re-test the results from errata ES0392 2.2.20?  We also have noticed erratic memory behavior/errors at the higher speeds.  We tested this on 16 prototype boards, all giving the same results.

Let me know if you have similar results.

thanks

Matthew

 

matt-crc
Associate II

Hello,

Ok, we found the problem. At 400 Mhz the ethernet runs without issue, at 480MHz it doesn't work at all. When we increased the pin drive on all the ethernet pins, it started to work at 480mhz. Not sure why this happens since the RMII interface runs from the same 50MHz phy clock.

Thanks for the multiple responses and help

Matthew