Skip to main content
Visitor II
May 16, 2025
Question

STM32H7S7 XSPI Thermal Issues

  • May 16, 2025
  • 4 replies
  • 665 views

Hi there,

 

We are having some issues with our STM32H7 when the MCU is heated above approximately 55C. This leads to a fault of some form within the STM32 which prevents it from reading an external flash which the code is being run from. This memory is MX66UM1G45GXDI00 being run in memory mapped mode and XIP. We also have external RAM setup on the other XSPI interface, APS256XXN-OBR-BG, with the design being based on the STM32H7S7-DK.

The XSPI devices are being run at 1.8V and we have confirmed that all the rails (3.3V, VDD, VCore) are up and stable. Both XSPI devices are being run at 200MHz. 

We saw a similar forum thread where there was discussion about the SBS Cell Compensation used in the XPI where there was speculation that issues could arise from updating the compensation value during operation. I attempted this fix however the issue still occurs. The symptoms experienced in that thread very closely match the issues we are experiencing. 

https://community.st.com/t5/stm32-mcus-products/stm32h7s7l8h6h-xspi-instability/td-p/749315

Is there any further advice here?

Best Regards, 

Robert T

 

    This topic has been closed for replies.

    4 replies

    Technical Moderator
    May 16, 2025

    Hello @RobertT and welcome to the community;

     

    Does the problem persist even when the IO compensation cell is disabled?

    Could you try to implement the following steps:

    1.Enable the compensation cell before XSPI1 communication.

    2.Copy the code found by the cell inside the user code register.

    3.Start the communication with the compensation cell off.

     

    I hope this help you.

    Thank you.

    Kaouthar

    Technical Moderator
    May 17, 2025

    Dear @RobertT ,

    as suggested by @KDJEM.1 , can you please apply the proposed sequence on that thread and let is know , but completely disabling the I/O compensation cell. Your case is very interesting!

    Let us know ,

    STOne-32

    RobertTAuthor
    Visitor II
    May 19, 2025

    Hi @KDJEM.1 & @STOne-32,

    We have tried the code below:

     /* Configure the compensation cell */
     HAL_SBS_ConfigCompensationCell(SBS_IO_XSPI1_CELL, SBS_IO_CELL_CODE, 0U, 0U);
     HAL_SBS_ConfigCompensationCell(SBS_IO_XSPI2_CELL, SBS_IO_CELL_CODE, 0U, 0U);
    
     /* Enable compensation cell */
     HAL_SBS_EnableCompensationCell(SBS_IO_XSPI1_CELL);
     HAL_SBS_EnableCompensationCell(SBS_IO_XSPI2_CELL);
    
     /* wait ready before enabled IO */
     while(HAL_SBS_GetCompensationCellReadyStatus(SBS_IO_XSPI1_CELL_READY) != 1U);
     while(HAL_SBS_GetCompensationCellReadyStatus(SBS_IO_XSPI2_CELL_READY) != 1U);
    
     uint32_t code1, code2, nmos1, nmos2, pmos1, pmos2;
    
     HAL_SBS_GetCompensationCell(SBS_IO_XSPI1_CELL, &code1, &nmos1, &pmos1);
     HAL_SBS_GetCompensationCell(SBS_IO_XSPI2_CELL, &code2, &nmos2, &pmos2);
    
     HAL_SBS_ConfigCompensationCell(SBS_IO_XSPI1_CELL, SBS_IO_REGISTER_CODE, nmos1, pmos1);
     HAL_SBS_ConfigCompensationCell(SBS_IO_XSPI2_CELL, SBS_IO_REGISTER_CODE, nmos2, pmos2);
    
     HAL_SBS_DisableCompensationCell(SBS_IO_XSPI1_CELL);
     HAL_SBS_DisableCompensationCell(SBS_IO_XSPI2_CELL);
    
     /* high speed low voltage config */
     HAL_SBS_EnableIOSpeedOptimize(SBS_IO_XSPI1_HSLV);
     HAL_SBS_EnableIOSpeedOptimize(SBS_IO_XSPI2_HSLV);

    We have also tried completely disabling the compensation, by removing the above code, leaving on the below:

     /* high speed low voltage config */
     HAL_SBS_EnableIOSpeedOptimize(SBS_IO_XSPI1_HSLV);
     HAL_SBS_EnableIOSpeedOptimize(SBS_IO_XSPI2_HSLV);

    This code also seems to fail at the rough 55C mark.

    I noticed you only mentioned XSPI1. Is there any significance of one or the other? We have ran some testing with compensation on and off for both in all the combinations but still see similar results. 

    Regards, 

    Robert

     

    RobertTAuthor
    Visitor II
    May 22, 2025

    I believe we have resolved this issue. It does seem that the XSPI Compensation was the root cause. It was an additional issue on the PCB caused by derating of a PTC Fuse that caused further issues at a similar temperature. 

    Regards, 

    Robert. 

    Technical Moderator
    May 22, 2025

    Dear @RobertT ,

    Thank you for the feedback,  can you please elaborate more ?  an how it was solved .   I'm curious to know 

    Ciao

    STOne-32.