cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H750: STOP mode working on revision Y, not on revision V but normal application working normally. What causes this problem?

TLier.1
Associate

Hi,

I'm currently working on a project with the STM32H750. This project should be able to go to stop mode and wake up with a button press. The normal application/operation (before going to stop mode) is working properly on both revision V and revision Y. With revision Y, going to deep sleep works as expected, but with revision V a reset is triggered the device effectively goes into STOP mode. If the stop mode is prevented from entering, the application runs normal on both revisions.

I cannot seem to find the difference between both revisions that influences the stop mode behaviour. What is causing the reset on revision V when going to stop mode?

Thanks in advance,

Kind regards

2 REPLIES 2
Imen.D
ST Employee

Hello @TLier.1​ and welcome to the Community :)

Please refer to the Errata sheet - STM32H750xB STM32H753xI - STM32H750xB and STM32H753xI device limitations, and check the STM32H750xB device limitations and their status in the Table 3. Summary of device limitations.

When your question is answered, please close this topic by choosing Select as Best. This will help other users find that answer faster.

Imen

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen
TLier.1
Associate

Hello,

Found the problem but it cannot be confirmed through the datasheet:

There was a bug in the software. A check was done on the FREEZE_ZDG_STDBY and FREEZE_ZDG_STOP bits, to make sure they are set to 0 before we enter stop mode. The implementation of that check was wrong and it checked if the two bits are not equal to 1. So normally we should never enter this if statement because according to the datasheet, the default value for these bits are 1.

But if the revision is Y, the default value seems to be 0, and thus the wanted state of these bits. This check was thus always true and we entered the function, setting the bits again to 0.

Now with revision V, we never enter the if statement that sets this to 0. This is the expected behavior as the default value is 1.

Could it be that the default value of these two bits has changed between revision Y (default 0) and revision V (default 1)?