Skip to main content
Associate II
June 11, 2021
Question

stpmic1 enter to unknown state when the board is powered with a specific ramp and is unable to power up

  • June 11, 2021
  • 10 replies
  • 6455 views

Hello,

we are making qualification stress tests on our custom STM32MP157 board. One part of these tests consist to power the board with custom ramps that simulate the worst power scenarios (as glitches, slow ramp, brownout and blackout).

We use the P/N STPMIC1APQR and we want the system to always (auto) power up when the Vin is stable.

We found, at the moment, two scenarios that prevents the PMIC to start:

  1. single hole on Vin (5V nominal) with a minimum level >Vin_por_fall, <Vin_ok_fall
  2. multiple fast holes on Vin (period 14ms duty 50%) with same levels as 1.

All scenarios are perfectly reproducibles and leads to the same results.

The first scenario is explained in the datasheet as a turn-OFF condition triggered by VIN_OK_Fall. By pressing the PONKEY button the system is able to boot.

In the second scenario pressing the PONKEY button will not restart the system. The only documented PMIC state that explain this behaviour is the LOCK_OCP state, indeed the PMIC will only leave this state by lower the Vin under the Vin_por_fall level.

However we can not explain how the PMIC could enter in this state as the NVM register LOCK_OTP is cleared and no overcurrent should happen.

Here follows my questions:

  1. is there a known method to prevent these locks?
  2. how could the PMIC behaviour in the second scenario be explained?

I'm available to share some oscilloscope plot to further explain the problem.

Best regards,

Rosario Borsellino

This topic has been closed for replies.

10 replies

Vincenzo
ST Employee
June 14, 2021

Hello Rosario,

could you please provide me some oscilloscope plot to check the behavior?

You can send me an email if you prefer

Best Regards

Vincenzo

Ara.1
Associate III
November 26, 2021

Hi Rosario,

i am also facing the ramp power up state failure, any input further,

  1. slowly ramp from 1 -15 v device not booting up
  2. on power up,sudden power down and then quickly power up, device not powered up, and no uboot logs
Vincenzo
ST Employee
November 30, 2021

Hello Ara,

the A.M.R. of device is 6.5V, so 15V for sure will damage the device

could you please confirm the maximum voltage applied to our STPMIC1?

Best Regards

Vincenzo

Ara.1
Associate III
December 8, 2021

Main DC supply is 24 volts, but for STPMIC1 max is 5V, if i do unplug and plug, unit boots up normal, but when i do a ramp test slowly increase the supply voltage variable know to reach main DC voltage to 20v then unit does not boots up until I unplug and plug the power supply, has any one faced this issue ?

PatrickF
Technical Moderator
December 9, 2021

Hi @Ara.1​ ,

in order to help @Vincenzo​, could you provide:

  • the STPMIC1 version (visible on UART console in very first lines of TF-A log during boot)
  • plot 24V, VIN (5V), BUCK3 (VDD) and RSTn curves in case of 'slow ramp up' failure

Regards.

In order 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.NEW ! Sidekick STM32 AI agent, see here
Ara.1
Associate III
December 23, 2021

STPMIC1A version 0x21

CPU: STM32MP157CAA Rev.?

Ara.1
Associate III
December 26, 2021

this is scope data

Ara.1
Associate III
December 26, 2021

yellow is buck3 out

pink is vin

in both images

scale:

y 1v/div

anyone from PMIC div, may you let me know whats happening here ?.,

any software shall be done here ?

i am blocked now,

ChristopheB
ST Employee
January 3, 2022

Hi @Ara.1 (Community Member)​ ,

Thank you for the plots; PMIC behavior is understood (please download picture below to see text inserted into your plot):

0693W00000HqNr0QAF.jpgOn your plot, there are two sections where VIN drop:

  • The first is VIN dropping below VIN_POR_Fall threshold (see STPMIC1 datasheet)
  • The second is VIN dropping above VIN_POR_Fall

-1- When VIN drops below VIN_POR_Fall, the PMIC is in reset state (PMIC state machine is in 'NO_SUPPLY' state (see PMIC datasheet Figure 53)). So when VIN rises back, PMIC automatically turn ON due to "AUTO_TURN_ON" event (AUTO_TURN_ON bit is set in PMIC NVM)

-2- When VIN drops but keep above VIN_POR_Fall, the PMIC goes in OFF state (due to VIN_OK_Fall turn OFF condition). When VIN rises back, PMIC will keep in OFF state until a valid Turn ON condition. In that case, AUTO_TURN_ON bit has no effect (AUTO_TURN_ON bit has effect only from NO_SUPPLY state) => This is expected PMIC behavior defined for safety to avoid infinite restart loop in case application is powered from bad power supply source.

If you want to restart PMIC automatically after it gone in OFF state (so typically your use case), software needs to set the Restart_request bit (MAIN_CR[RREQ_EN] = 1) after each time the PMIC power ON; so after each time your application is booting-up.

Best regards,

Christophe

DPrai.1
Visitor II
March 16, 2022

Hi Christophe,

In case VIN drops but keep above VIN_POR_Fall, is it possible that software doesn't have the time to set Restart_request bit ?

Exemple : No_supply -> Preload_NVM -> Check&Load (MAIN_CR is resetting by default [0x00], Restart_request = 0). -> Power_Up ->No time for setting Restart_request Bit -> Power_Down -> OFF. -> Waiting For Turn on Condition

If the system doesn't have Turn On Condition, what happens ?

Thanks,

David

ChristopheB
ST Employee
March 18, 2022

Hi @DPrai.1​ ,

In case of VIN drops below VINOK_FALL threshold (PMIC turn OFF condition) but higher than VIN_POR_Fall threshold (and no time for software setting the Restart_request bit), then PMIC will go and stay in OFF state (waiting for a Turn On condition).

This is requested behavior of PMIC against bad power supply source.

BR,

Christophe

Ara.1
Associate III
January 5, 2022

Hi Christophe,

Thank you for PMIC behavior, but i don't see any console prints on debug UART, like loading of TFA, U-boot FSBL or U-boot SSBL , i am using yocto BSP, may I get a software patch/ line changes for this scenario, so that i can retest and get the observations.

Thanks,

ARP

Vincenzo
ST Employee
March 17, 2022

Dear DPrai. 1,

usually Buck3 is used to supply the VIO domain, if this voltage is missing there is no I2C BUS communication (even if I2C is alive inside the device). If you can supply externally the VIO so you are able to send a WAKEUP command to turn ON again the device, but not via I2C.

Best Regards

Vincenzo

MKim.18
Visitor II
January 25, 2023

Hi @RBors.1​ , did you happen to figure out why the second scenario was causing the PMIC to enter a locked state?

RBors.1Author
Associate II
January 25, 2023

ST published the AN5861 that should address the problems we encountered.

GCici
Associate II
March 11, 2024

Hi,

maybe someone solved the problem by changing the CINTLDO capacitance value?