Skip to main content
Visitor II
May 23, 2021
Solved

I have a project using STM32H745 processor that has network connectivity. All works awesome until the processor temp reaches about 120 F, then I start to lose connectivity. I am using RMII interface and again works perfectly at high bandwidth when <

  • May 23, 2021
  • 5 replies
  • 3263 views

What could be the cause. I have checked the power circuitry. The rest of application still functions well. DMA, Timers, SPI, etc. Just network data is stalled. When temp goes down it resumes.

    This topic has been closed for replies.
    Best answer by waclawek.jan

    > Not sure what you mean by tweak GPIO_MODE.

    Sorry, I meant GPIO_OSPEEDR.

    JW

    5 replies

    Super User
    May 23, 2021

    Could be loss of signal integrity on the RMII or ethernet lines. Typically signal integrity degrades as temperature increases. Are these traces short and relatively length matched? Lots of vias? Passing over other high-frequency signals?

    DPitt.1Author
    Visitor II
    May 23, 2021

    These are great ideas and we have been exploring them. Improvements will be surely made on next board to improve all your points.

    Visitor II
    May 23, 2021

    Is 120 F a lot. It feels hot i know, but is your CPU ok.

    DPitt.1Author
    Visitor II
    May 23, 2021

    120 F is temp measured by CPU internal temp sensor. I agree that is not real high for a CPU. So would you think it is most likely signal integrity as the CPU has been tested to preform at much higher temperatures?

    Super User
    May 23, 2021

    > processor temp reaches about 120 F

    How much is that in international units?

    What is your power source and clocks arrangement? What PHY are you using?

    JW

    Graduate II
    May 23, 2021

    From freedom units into Celsius that's about 48.9 C

    If the network is problematic, perhaps look at the clocking.

    Using an HSE? how is the clock generated for the RMII ?

    Crystal, or XO?

    Super User
    May 24, 2021

    50°C is not that much indeed. My bet was on that you're using RMII clock derived from the mcu's PLL which could be affected by temperature, but that's not the case.

    Are power supply voltages rock stable? Are VCAP voltages rock stable? Are VCAP capacitors OK? Is the IO voltage identical to the PHY's IO voltage? Is this one single prototype? Could you add a small 10-22R) resistor in series to the RMII clock? Is compensation cell switched on? Try to tweak the GPIO_MODER values for the output signals, does it make any difference?

    JW

    DPitt.1Author
    Visitor II
    May 24, 2021

    I will look into the VCAP capacitors and stability. The RMII pins are set to alternative selection. Not sure what you mean by tweak GPIO_MODE. If you mean to set all other output pins to input to reduce power load I have done that with a simple network test application that only runs network stack. The problem still exists.

    Super User
    May 24, 2021

    > Not sure what you mean by tweak GPIO_MODE.

    Sorry, I meant GPIO_OSPEEDR.

    JW

    Visitor II
    May 24, 2021

    Maybe your CPU is broken or your board has a short.

    Graduate II
    May 24, 2021

    No, this seems more like a transmission line type issue, where the slew rate or termination play a role, and the speed of the transistors changing with temperature. There are applications here where backing-off the slew rate (SPEEDR) on short signal wires, or adding series resistors can reduce ringing/reflections. I see this mostly at frequencies >33 MHz on eMMC, SDIO/SDMMC and QSPI interfaces where the lines are frequently very short and uniform.

    "Temperature inversion refers to the phenomenon that for certain voltage regions transistors speed up and operate faster at a higher temperature. When the temperature increases, transistor performance is affected by two fundamental factors: carrier mobility decrease and threshold voltage reduction."