Power management IC for MPU: 2 buck converters and 4 LDOs
| Maturity status link |
|---|
| STPMIC1L |
| Device summary | |
|---|---|
| Order code | STPMIC1LAPQR |
| STPMIC1LBPQR | |
| STPMIC1LDPQR | |
| Packing | VFQFPN 28L (4.0 x 4.0 x 1.0 mm) |
Features
- Input voltage range from 2.8 V to 5.5 V
- 2 buck SMPS converters with adaptive constant on-time (COT) topology
- 2 adjustable general-purpose LDOs
- 1 LDO for DDR3L/DDR4 termination (sink-source) or as a general-purpose LDO
- 1 LDO for USB PHY supply
- 2 MHz switching frequency buck converters with forced PWM
- User programmable non-volatile memory (NVM), enabling scalability to support a wide range of applications
- Immediate output alternate settings toggle via dedicated power control pins
- Programmable output voltages turn ON/OFF sequences
- I²C and digital I/O control interfaces
- 2 GPO output controls for external commands
- VFQFPN 28L (4.0 x 4.0 x 1.0 mm)
Applications
- Power management for embedded microprocessor units
- Wearable and IoT devices
- Portable devices
- Human machine interfaces
- Smart home devices
- Power management unit companion chip for the STM32MP13/15 MPUs
Description
The STPMIC1L is a fully integrated power management IC designed for STM32MP1x MPU series applications requiring low power and high efficiency.
The device integrates advanced low-power features controlled by a host processor via I²C and I/O interfaces.
The STPMIC1L regulators are designed to supply power to the application processor as well as to external system peripherals such as DDR, and flash memories. The STPMIC1L supplies the core chipset (the MPU+ DDR+ 1 flash memory), but not other system devices. This is done via discrete regulators controlled by the STPMIC1L GPOs).
Two buck SMPS are optimized to provide excellent transient response and output voltage precision for a wide range of operating conditions. Advanced PWM phase-shift synchronization technique with integrated PLL reduces noise and EMI.
Device configuration table
The STPMIC1L has a non-volatile memory (NVM) that enables scalability to support a wide range of applications:
- Default output voltage, POWER_UP/POWER_DOWN sequences, protection behavior, auto turn-on functionality, and an I²C slave address.
- The STPMIC1LA, STPMIC1LB and STPMIC1LD are preprogrammed devices to support the STM32MP1x series application processor versions.
- Straightforward NVM reprogramming via I²C to facilitate mass production directly in target applications.
- Possibility to lock NVM content to prevent further reprogramming by writing LOCK_NVM bit.
| Default configuration table | |||||||||
|---|---|---|---|---|---|---|---|---|---|
| STPMIC1LA | STPMIC1LB | STPMIC1LD | |||||||
| Default output voltage | Default output current | Rank | Default output voltage | Default output current | Rank | Default output voltage | Default output current | Rank | |
| LDO2 | 3.3 V | 0.4 A OCP level 1 | 1 | 1.8 V | 0.4 A OCP level 1 | 1 | 3.3 V | 0.4 A OCP level 1 | 1 |
| LDO3 | - | OCP level 1 | 0 | - | OCP level 1 | 0 | - | OCP level 0 | 0 |
| LDO4 | 3.3 V | 40 mA OCP level 0 | 5 | 3.3 V | 40 mA OCP level 0 | 5 | 3.3 | 40 mA OCP level 0 | 5 |
| LDO5 | 3.3 V | 0.4 A OCP level 0 | 4 | 2.9 V | 0.4 A OCP level 0 | 4 | 3.3 V | 0.4 A OCP level 0 | 4 |
| BUCK1 | 1.22 V | 1.5 A OCP level 1 | 2 | 1.22 V | 1.5 A OCP level 1 | 2 | 1.25 V | 1 A OCP level 1 | 2 |
| BUCK2 | - | 1.0 A OCP level 1 | 0 | - | 1.0 A OCP level 1 | 0 | 1.25 V | 1 A OCP level 1 | 3 |
| GPO1 | - | - | 3 | - | 3 | - | - | 5 | |
| GPO2 | - | - | 0 | - | - | 0 | - | - | 0 |
| VINOK_Rise | 4.0 V | - | 3.3 V | - | 4.0 V | - | |||
| VINOK_Fall | 3.5 V | - | 2.8 V | - | 3.5 V | - | |||
All output voltages with Rank = 0 are by default programmed with 0 Dec (refer to Table 15 LDO output voltage settings and Table 16 Buck output voltage settings).
The startup sequence is split into six steps (Rank = 0 to Rank = 5).
Each buck converter or LDO regulator can be programmed to be automatically turned ON in one of these phases. Each rank phase is separated by a delay (1.5 ms, 3 ms, 4.5 ms, or 6 ms) programmed in the NVM:
- Rank = 0: rail not turned ON automatically, no output voltage appears after POWER-UP
- Rank = 1: rail automatically turned ON after 7 ms following a turn_ON condition
- Rank = 2: rail automatically turned ON after a further 1.5 ms (by default)
- Rank = 3: rail automatically turned ON after a further 1.5 ms (by default)
- Rank = 4: rail automatically turned ON after a further 1.5 ms (by default)
- Rank = 5: rail automatically turned ON after a further 1.5 ms (by default)
Whatever the STPMIC1L version, the AUTO_TURN_ON option is set.
Typical application schematic
VIN is the main STPMIC1L supply. All buck converters and linear regulators have dedicated or shared power supply pins. The dedicated VIO supply is for all digital interface pins, except GPOs.
No other supply voltages must be applied before VIN or set higher than VIN.
Recommended external components
| Component | Manufacturer | Part number | Value | Size |
|---|---|---|---|---|
| CVIN, CLDO2OUT, CLDO4OUT, CLDO5OUT, CINTLDO | Murata | GRM155R60J475ME47D | 4.7 µF, 6.3 V | 0402 |
| CLDO25IN | GRM155R61E105KA12D | 1 μF, 25 V | 0402 | |
| CBUCK1IN, BUCK2IN | GRM188R61A106ME69D | 10 µF, 10 V | 0603 | |
| CVOUT1 (0.5 V - 1.5 V) LV | GRM188R60J226MEA0D | 2 x 22 µF, 6.3 V | 0603 | |
| CVOUT1 (1.5 V - 4.2 V) HV | GRM21BR61A226ME51L | 2 x 22 µF, 10 V | 0805 | |
| CVOUT2 | GRM188R60J226MEA0D | 2 x 22 µF, 6.3 V | 0603 | |
| CLDO3IN, CLDO3OUT | GRM155R60J106ME05D | 10 µF, 6.3 V | 0402 | |
| LX1 | SAMSUNG | CIGT201610LH1R0MNE | 1 µH | 0806 |
| LX2 | CIGT201610LH1R0MNE | 1 µH | 0806 |
Pin out and pin description
| Pin name | A/D 1 | I/O 1 | Location | Description (default configuration) | Not used pin connection |
|---|---|---|---|---|---|
| RSTn | D | I/O | 1 | Bidirectional reset (active low with internal pull-up) | Floating |
| INTn | D | O | 2 | Interrupt (active low with internal pull-up) | Floating |
| VIO | A | I | 3 | I/O voltage (for all digital signals except PONKEYn/En and GPO1/2) | VIO |
| GPO1 | D | O | 4 | External Control 1 | Floating |
| GPO2 | D | O | 5 | External Control 2 | Floating |
| PWRCTRL2 | D | I | 6 | Power control 2 mode (pull-up and pull-down, pull-up active by default) | VIO or floating |
| PWRCTRL1 | D | I | 7 | Power control 1 mode (pull-up and pull-down, pull-up active by default) | VIO or floating |
| VOUT1 | A | I | 8 | Input feedback signal buck converter 1 | Floating |
| PGND1 | A | - | 9 | Power ground buck converter 1 | GND |
| VLX1 | A | O | 10 | LX node buck converter 1 | Floating |
| BUCK1IN | A | I | 11 | Power input buck converter 1 | VIN |
| SDA | D | I | 12 | I²C serial data | VIO |
| SCL | D | I/O | 13 | I²C serial clock | VIO |
| PONKEYn/En | D | I | 14 | User power ON key / Enable (active low with internal pullup by default) | Floating |
| VIN | A | I | 15 | Main power input - power input LDO4, VREF | VIN |
| INTLDO | A | O | 16 | Internal LDO | 4.7 µF capacitor |
| AGND | A | - | 17 | Main analog ground | GND |
| LDO4OUT | A | O | 18 | Output voltage LDO4 | Floating |
| LDO2OUT | A | O | 19 | Output voltage LDO2 | Floating |
| LDO5OUT | A | O | 20 | Output voltage LDO5 | Floating |
| LDO25IN | A | I | 21 | Power input LDO2 and LDO5 | VIN |
| GNDLDO | A | - | 22 | LDO GND | GND |
| LDO3OUT | A | O | 23 | Output voltage LDO3 | Floating |
| LDO3IN | A | I | 24 | Power input LDO3 | VIN |
| BUCK2IN | A | I | 25 | Power input buck converter 2 | VIN |
| VLX2 | A | O | 26 | LX node buck converter 2 | Floating |
| PGND2 | A | - | 27 | Power ground buck converter 2 | GND |
| VOUT2 | A | I | 28 | Input feedback signal buck converter 2 | Floating |
| EPGND | A | - | ePad | Exposed pad to be connected to ground | GND |
Electrical and timing characteristics
Absolute maximum ratings
| Parameter | Min. | Unit |
|---|---|---|
| VIN, BUCKxIN, VLXx, LDO3IN, LDOxIN, PONKEYn/En | -0.5 to +6.5 | V |
| VIO, SDA, SCL, RSTn, PWRCTRLx, INTn | -0.5 to +4.2 | |
| INTLDO | -0.5 to +2 | |
| VOUT1, LDOxOUT, GPO1, GPO2 | -0.5 to +5.5 | |
| VOUT2 | -0.5 to +3 | |
| ESD HBM | ±1000 | V |
| ESD CDM | ±500 |
Thermal characteristics
| Symbol | Parameter | Value | Unit |
|---|---|---|---|
| Tj | Absolute maximum junction temperature | -40 to +150 | °C |
| TJAMR | Absolute maximum junction temperature | -40 to +160 | |
| TA | Operating ambient temperature | -40 to +105 | |
| ѲJC | Junction-case package thermal resistance on 2s2p std JEDEC board (JESD51-7) | 6 | °C/W |
| ѲJA | Junction-ambient package thermal resistance on 2s2p std JEDEC board (JESD51-7) | 32 |
Consumption in typical application scenarios
STPMIC1L VIN input current consumption with all supply pins connected to VIN except VLDO3IN = VOUT2 = 1.25 V, VIN = 5 V, VIO = 3.3 V from LDO2OUT at Tj = + 25 °C, unless otherwise specified.
| Application mode | Application description | Conditions | Typ. | Unit |
|---|---|---|---|---|
| OFF | AP and peripherals are powered OFF, waiting for a turn-on event to start. | PMIC in OFF state. Turn-on from PONKEYn/EN and I²C inactive. All regulators OFF. GPOx deasserted. | 53 1 | μA |
| STANDBY | AP is in STANDBY mode (suspend to flash). All peripherals are powered OFF. | PMIC in POWER_ON state. IRQ from any source and PWRCTRLx active. LDO2 ON, VLDO2OUT = 3.3 V (VDDIO). All other regulators OFF and GPOx deasserted. All outputs without load. No activity on I²C. | 110 | |
| STOP | AP is in LPLV-STOP1 (Core/CPU on-low voltage) DDR3L is in self-refresh. All peripherals are powered OFF. | PMIC in POWER_ON state. IRQ from any source and PWRCTRLx active. BUCK1 ON, VOUT1 = 0.9 V (VDDCORE). BUCK2 ON, VOUT2 = 1.35 V (VDD_DDR). LDO2 ON, VLDO2OUT = 3.3 V (VDDIO). All other regulators OFF. All outputs without load. No activity on I²C. | 370 | |
| RUN | Application is in RUN (Core, CPU, on-nominal) DDR3L is running. | PMIC in POWER_ON state. IRQ from any source and PWRCTRLx active. BUCK1 ON, VOUT1 = 1.25 V (VDDCORE). BUCK2 ON, VOUT2 = 1.35 V (VDD_DDR). LDO3 ON in sink/src (VTT_DDR). LDO2 ON, VLDO2OUT = 3.3 V (VDDIO). All other regulators OFF. All outputs without load. No activity on I²C. | 650 |
Electrical and timing parameter specifications
All parameters are specified at VIN = VBUCKxIN = VLDOxIN = 5 V, except VLDO3IN = VOUT2, VOUT1 = 1.25 V, VOUT2 = 1.35 V, VLDO5OUT = 3.3 V, VLDO2OUT = 3.3 V, VLDO3OUT = snk/src, VLDO4OUT = 3.3 V, VIO = VLDO2OUT, Tj = -40 °C to +125 °C, with recommended BOM, unless otherwise specified.
General section
| Symbol | Parameter | Test conditions | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| General section | ||||||
| VIN | Input voltage range | 2.8 | 3.6 or 5 | 5.5 | V | |
| VINPOR_Rise | VINPOR rising threshold | 2.2 | 2.3 | 2.4 | V | |
| VINPOR_Fall | VINPOR falling threshold | 2.1 | 2.2 | V | ||
| VINOK_Rise | VINOK rising threshold | Programmable value defined in the NVM register | 3 | 3.1 | 3.2 | V |
| 3.2 | 3.3 | 3.4 | ||||
| 3.35 | 3.5 | 3.6 | ||||
| 3.8 | 4.0 | 4.1 | ||||
| VINOK_HYST | VINOK hysteresis | Programmable value defined in the NVM register | 200 300 400 500 | mV | ||
| VINOK_Fall | VINOK falling threshold | Defined indirectly by VINOK_Rise and VINOK_HYST settings | VINOK_Rise - VINOK_HYST | mV | ||
| tVINOK_Fall | VINOK falling delay | When VIN is crossing VINOK_Fall, PMIC power-down then cannot restart before tVINOK_Fall delay, even if VIN >VINOK_Rise | 100 | ms | ||
| VINLOW_Rise | VINLOW rising threshold | Programmable value defined in register VINLOW_CR | +20 +300 | VINOK_Fall + 50 to VINOK_Fall + 400 | +80 +500 | mV |
| VINLOW_HYST | VINLOW hysteresis | Programmable value defined in register VINLOW_CR | 90 | 100 | 110 | mV |
| 180 | 200 | 220 | ||||
| 270 | 300 | 330 | ||||
| 360 | 400 | 440 | ||||
| VINLOW_Fall | VINLOW falling threshold | Defined directly by VINLOW_Rise and VINLOW_HYST settings | VINLOW_Rise + VINLOW_HYST | mV | ||
| TWRN_Rise | Warning temperature rising | 115 | 125 | 135 | °C | |
| TWRN_Fall | Warning temperature falling | 95 | 105 | 120 | °C | |
| TSHDN_Rise | Shutdown temperature rising | 140 | 150 | 160 | °C | |
| TSHDN_Fall | Shutdown temperature falling | 105 | 115 | 130 | °C | |
| tTSHDN_DLY | Shutdown temperature falling delay | 3 | s | |||
| tOCPDB_LDO | LDO OCP turn-off delay | 5 | ms | |||
| tOCPDB_BUCK | BUCK OCP turn-off delay | 5 | ms | |||
| tHICCUP_DLY | Hiccup mode OFF delay | Programmable value defined in NVM_BUCKS_IOUT_SHR2 NVM register | 0 100 500 1000 | ms | ||
| tWD | Watchdog timer | Programmable value defined in the register | 1 to 256 | s | ||
| Timer programming step | 1 | |||||
| NVMEND | NVM write cycles endurance | Recommended maximum writing cycles 1 | 10 | Cycle | ||
| VNVM_PROG | NVM min voltage for write operation | 3.8 | V | |||
Digital interface
| Symbol | Parameter | Test conditions | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| Digital interface | ||||||
| VIO | VIO input voltage for IO signal | 1.7 | 1.8 or 3.3 | 3.6 | V | |
| VIL | PONKEYn/EN input low voltage | 0 | 0.3 x VINTLDO | V | ||
| RSTn, PWRCTRLx input low voltage | 0 | 0.3 x VIO | ||||
| SDA, SCL input low voltage | I²C NXP UM10204 revision 5 compliant (October 2012) | 0 | 0.3 x VIO | |||
| VIH | PONKEYn/EN input high voltage | 0.7 x VINTLDO | VIN | V | ||
| RSTn, PWRCTRLx input high voltage | 0.7 x VIO | VIO | ||||
| SDA, SCL input high voltage | I²C NXP UM10204 revision 5 compliant (October 2012) | 0.7 x VIO | VIO | |||
| VHYST | PONKEYn/EN input hysteresis | 0.1 x VINTLDO | V | |||
| RSTn, PWRCTRLx, input hysteresis | 0.1 x VIO | |||||
| SDA, SCL input hysteresis | I²C NXP UM10204 revision 5 compliant (October 2012) | 0.1 x VIO | ||||
| VOL | RSTn, INTn, GPOx output low voltage | IIO = 4 mA | - | 0.4 | V | |
| SDA, SCL output low voltage | IIO = 4 mA, I²C NXP UM10204 revision 5 compliant (October 2012) | - | 0.4 | |||
| VOH | GPOx output high voltage | IIO = 4 mA | VIN – 0.4 | V | ||
| RPD | PWRCTRLx pins pull-down resistor | Internally connected to GND | 60 | 90 | 140 | KΩ |
| PONKEYn/EN pin pull-down resistor | Internally connected to GND | 60 | 100 | 140 | KΩ | |
| RPU | RSTn, INTn, PWRCTRLx pins pull-up resistor | Internally connected to VIO | 50 | 80 | 120 | KΩ |
| PONKEYn/EN pin pull-up resistor | Internally connected to VIN | 80 | 120 | 140 | ||
| tPONKEYnDB | PONKEYn/EN pin debounce filter duration | No debounce filter for EN | 30 | ms | ||
| tRSTnAS | RSTn assertion time 1 | 30 | µs | |||
LDO2 and LDO5
| Symbol | Parameter | Test conditions | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| LDO2, LDO5 | ||||||
| VLDOIN | Main input voltage range | 2.8 | 5.5 | V | ||
| VLDOOUT | Output voltage | VLDOIN > VLDOOUT + VLDODROP Programmable value. | 0.9 to 4.0 | |||
| Voltage programming step | 100 | mV | ||||
| VLDOOUT-ACC | Output voltage accuracy | 2.8 V < VLDOIN < 5.0 V VLDOIN > VLDOOUT + VLDODROP 100 µA < ILDOOUT < 350 mA | -2 | 2 | % | |
| ILDOLIM | Output current limitation | 2.8 V < VLDOIN < 5.5 V ILDOLIM programmable in NVM_LDOS_IOUT_SHR (Ref. NVM setting A and B versions) | 50 100 200 400 | 75 150 300 600 | mA | |
| ILDO2/5Q | Total quiescent current | ILDOOUT = 0 mA, VLDOIN = 5 V Measured from the related common input pin, LDO25IN | 9 | 20 | µA | |
| ILDO2/5IN_LKG | Input leakage current | LDO2/5 output disabled Measured from the related common input pin, LDO25IN | 4 1 | 2 | ||
| VLDODROP | Dropout 2 | VLDOOUT = 2.9 V, ILDOOUT = 350 mA | 180 | 300 | mV | |
| VLDOOUT-LO | Load transient regulation | ILDOOUT = 1 mA to 180 mA, tR = tF =1 µs | 35 | |||
| VLDOOUT-LI | Line transient regulation | VLDOIN = 4.5 V to 5 V, tR =tF =10 μs, ΔILDOOUT = 0 | 10 | |||
| PSRRLDO | Power supply rejection ratio | ΔVLDOIN = 300 mVPP, f = [0.1:20] kHz, Tj = 25 °C, ILDOOUT = 200 mA | 43 | dB | ||
| ΔVLDOIN = 300 mVPP, f = [20:100] kHz, Tj = 25 °C, ILDOOUT = 200 mA | 37 | |||||
| tSSLDO | Soft-start duration | 2.8 V < VLDOIN < 5.5 V, 0 < ILDOOUT < 1 mA COUT = 4.7 µF, VLDOOUT = 3.3 V | 1603 | µs | ||
| VLDOOUT-SO | Startup overshoot | 2.8 V < VLDOIN <5.5 V, 1.7 V < VLDOOUT < 3.3 V ILDOOUT < 10 µA | 1 | % | ||
| tSDLDO | Shutdown duration | Pull-down enabled, VLDOOUT = from 3.3 V to 0.2 V, ILDOOUT = no load | 1.5 | ms | ||
LDO3
| Symbol | Parameter | Test conditions | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| LDO3 normal mode | ||||||
| VLDOIN | Main input voltage range | 2.8 | 5.5 | V | ||
| VLDOOUT | Output voltage | VLDOIN > VLDOOUT + VLDODROP programmable value. | 0.9 to 4.0 | |||
| Voltage programming step | 100 | mV | ||||
| VLDOOUT-ACC | Output voltage accuracy | 2.8 V < VLDOIN < 5.5 V, 1.7 V < VLDOOUT < 3.3 V 100 µA < ILDOOUT < 120 mA | -2 | +2 | % | |
| ILDOLIM | Output current limitation | 2.8 V < VLDOIN < 5.5 V | 120 | 180 | mA | |
| ILDOQ | Total quiescent current | ILDOOUT = 0 mA | 7 1 | 13 | µA | |
| ILDOIN_LKG | Input leakage current | LDO output disabled, Tj = 25 °C | 1 | 3 | ||
| VLDODROP | Dropout voltage | VLDOOUT = 3.3 V, ILDOOUT = 100 mA | 120 | 200 | mV | |
| VLDOOUT-LO | Load transient regulation | ILDOOUT = 100 µA to 50 mA, tR = tF =1 µs | 20 | |||
| VLDOOUT-LI | Line transient regulation | VLDOIN = 4.5 V to 5 V, tR = tF = 10 μs. ΔILDOOUT = 0 | 5 | |||
| PSRRLDO | Power supply rejection ratio | ΔVLDOIN = 300 mVPP, f = [0.1:20] kHz, Tj = 25 °C, ILDOOUT = 50 mA | 45 | dB | ||
| ΔVLDOIN = 300 mVPP, f = [20:100] kHz, Tj = 25 °C, ILDOOUT = 50 mA | 40 | |||||
| tSSLDO | Soft-start duration | 2.8 V < VLDOIN < 5.5 V, 0 < ILDOOUT <1 mA COUT = 4.7 µF, VOUT = 1.8 V | 160 2 | µs | ||
| VLDOOUT-SO | Startup overshoot | 2.8 V < VLDOIN < 5.5 V, 1.7 V < VLDOOUT < 3.3 V ILDOOUT < 10 µA | 1 | % | ||
| tSDLDO | Shutdown duration | Pull-down enabled, VLDOOUT = 3.3 V to VLDOOUT = 0.2 V, ILDOOUT = no load | 1.5 | ms | ||
| LDO3 sink-source mode (DDR VTT supply) | ||||||
| VLDOIN=VOUT6 = 1.35 V, VIN = 5.0 V, VBUCK2IN = 5.0 V, VLDOOUT = VOUT2/2, Tj = -40 °C to +125 °C, recommended BOM, unless otherwise specified | ||||||
| VLDOIN-SS | Input voltage range | 1.1 | 1.2 | 1.6 | V | |
| VLDOOUT-SS | Output voltage | VOUT2/2 | ||||
| VLDOOUT-ACC-SS | Output voltage accuracy | 1.1 V < VLDOIN < 1.6 V, -215 mA < ILDOOUT < +215 mA | -1.5 | +1.5 | % | |
| ILDOOUT-SS | Continuous output current | 1.1 V < VLDOIN < 1.6 V | 120 | mARMS | ||
| ILDOLIM-SS | Output current limitation | VLDOIN = 1.1 V to 5.5 V | ±230 | ±500 | mA | |
| ILDOQ-SS | Total quiescent current | ILDOOUT = 0 mA, measured from LDO3IN pin | 4 1 | 20 | µA | |
| VLDOOUT-LO-SS | Load transient regulation | ILDOOUT = ± [0:50] mA, tR = tF = 250 ns | 30 | mV | ||
| VLDOOUT-LI-SS | Line transient regulation | VLDOIN = VOUT2 = 1.35 V ±30 mV, tR = tF = 10 μs | 5 | |||
| tSSLDO-SS | Soft-start duration | 1.1 V < VLDOIN < 1.6 V, |ILDOOUT| < 1 mA, COUT = 10 µF | 20 | 40 | µs | |
| tSU_LDO | Startup delay (delay before voltage starts to rise) | controlled by a PWRCTRLx. PWRCTRL delay = 0 | 16 | 20 | µs | |
| VLDOOUT-SO-SS | Startup overshoot | 1.1 V < VLDOIN < 1.6 V, VLDOOUT = VOUT2/2, LDOOUT = 10 µA | 4 | % | ||
| tSDLDO-SS | Shutdown duration | Pull-down enabled, VLDOOUT = Vout2/2 to VLDOOUT = 0.2 V, ILDOOUT = no load | 1.5 | ms | ||
LDO4
| Symbol | Parameter | Test conditions | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| LDO4 | ||||||
| VLDOIN | Main input voltage range | VLDOIN from VIN | 2.8 | 5.5 | V | |
| VLDOOUT-ACC | Output voltage accuracy | VLDOIN = 3.6 V to 5.5 V 100 µA < ILDOOUT < 30 mA | 3.23 | 3.3 | 3.40 | |
| ILDOLIM | Output current limitation | VLDOIN = 3.6 V to 5.5 V | 50 | 75 | 200 | mA |
| ILDOQ | Quiescent current | ILDOOUT = 0 mA | 20 1 | 25 | µA | |
| VLDODROP | Dropout voltage from VIN pin | ILDOOUT = 30 mA | 45 | 90 | mV | |
| VLDOOUT-LO | Load transient regulation | ILDOOUT = 1 to 30 mA, tR = tF =1 µs | 40 | |||
| VLDOOUT-LI | Line transient regulation | VIN = 4.5 V to 5.0 V, ILDOOUT = 0 mA, ΔILDOOUT = 0 | 10 | |||
| PSRRLDO | Power supply rejection ratio | ΔVLDOIN = 300 mVPP, f = [0.1:20] kHz, Tj = 25 °C, ILDOOUT = 25 mA | 55 | dB | ||
| ΔVLDOIN = 300 mVPP, f = [20:100] kHz, Tj = 25 °C, ILDOOUT = 25 mA | 40 | |||||
| tSSLDO | Soft-start duration | 3.6 V < VLDOIN < 5.5 V, 0 < ILDOOUT <1 mA, COUT = 4.7 µF | 100 2 | µs | ||
| VLDOOUT-SO | Startup overshoot | 3.6 V < VLDOIN < 5.5 V, ILDOOUT <10 µA | 1 | % | ||
| tSDLDO | Shutdown duration | Pull-down enabled, VLDOOUT = 3.3 V to VLDOOUT = 0.2 V, ILDOOUT = no load | 1.5 | ms | ||
BUCK1
| Symbol | Parameter | VOUT range | Test conditions | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|---|
| BUCK1 (LV and HV) | |||||||
| VBUCKIN | Main input voltage range | 2.8 | 5.5 | V | |||
| VOUT | Output voltage | LV | Programmable value | 0.5 to 1.5 | V | ||
| Voltage programming step | 10 | mV | |||||
| HV | VBUCKIN > VOUT + VBUCKDROP Programmable value | 1.5 to 4.2 | V | ||||
| Voltage programming step | 100 | mV | |||||
| VOUT-ACC | Output voltage error amplifier accuracy | LV | 0.5 V < VOUT < 1.5 V | -1.5 | 1.5 | % | |
| HV | 1.5 V < VOUT < 4.2 V | -1.5 | 1.5 | ||||
| VOUT-REG | Output load regulation 4 | HV/LV | CCM mode 1 mA < IOUT < 1.5 A | -1 | 1 | ||
| VOUT-RIPP | Output voltage ripple 2 | LV | 3.0 V < VBUCKIN < 5.5 V 0.5 V < VOUT < 1.5 V | 10 | mVpp | ||
| HV | 2.8 V < VBUCKIN < 5.5 V 1.5 V < VOUT < 4.2 V, | 15 | |||||
| IOUT | Max output current 4 | 2.8 V < VBUCKIN < 5.5 V Programmable value in NVM_BUCKS_IOUT_SHR1 | 500 1000 1500 2000 | mA | |||
| IBCKLIM | Inductor peak current limit | Depends on NVM_BUCKS_IOUT_SHR1 Max output current steps (0.5 A, 1 A, 1.5 A, 2 A) can be defined based on the selected inductor peak current limit level | 1.5 2.1 2.8 3.3 | A | |||
| fREFCLK | Reference switching frequency | 2 | MHz | ||||
| IQ_BCK | Total quiescent current | IOUT = 0 mA | 115 | 300 | µA | ||
| IBUCKIN_LKG | Input leakage current | BUCK OFF, Tj = + 25 °C | 0.01 | 1 | µA | ||
| EFFBCK | Efficiency | VBUCKIN = 5 V, VOUT = 1.25 V, TJ = +50 °C | % | ||||
| IOUT = 10 mA | 81 | ||||||
| IOUT = 100 mA | 83 | ||||||
| IOUT = 300 mA | 84 | ||||||
| IOUT = 1000 mA | 82 | ||||||
| IOUT = 2000 mA | 76 | ||||||
| VOUT-LO | Load transient regulation 1 | LV | 3.0 V < VBUCKIN < 5.5 V 1.2 V < VOUT < 1.4 V (typ 1250 mV) 5 mA < IOUT < 1.5 A ΔIOUT = 450 mA, tR/tF =1µs | +/-34 | mV | ||
| HV | 3.0 V < VBUCKIN < 5.5 V 1.8 V < VOUT < 3.3 V 5 mA < IOUT < 2 A ΔIOUT = 500 mA, tR = tF = 1 μs ΔV(in-out)>1.5 V | 50 | |||||
| VOUT-LI | Line transient regulation | ΔVBUCKIN = 600 mV, tR = tF = 10 μs, IOUT = 300 mA, ΔV(in-out) > 1.5 V | 5 | mV | |||
| VOUT-OVR | Power-up overshoot | 2.8 V < VBUCKIN < 5.5 V, IOUT = 1 mA TA = + 25°C, 0.5 V < VOUT < 4.2 V | 10 | mV | |||
| tNORM-CCM-BCK | Recovery time from Normal to Forced CCM mode | VOUT_Norm = VOUT_CCM, controlled by a PWRCTRLx | 40 4 | µs | |||
| tSU_BCK | Start-up delay (delay before voltage starts to rise) | 2.8 V < VBUCKIN < 5.5 V, controlled by a PWRCTRLx | 25 3 | 404 | µs | ||
| tSS_BCK | Soft-start duration | LV | 200 | 1500 | µs | ||
| HV | 320 | 1500 | |||||
| SRBCK | Output voltage slew rate | LV | Slew rate during start-up | 1 | 12.5 | mV/µs | |
| HV | Slew rate during start-up | 2.8 | 12.5 | ||||
| DVS slew rate of a voltage programmed change low to high or high to low, from VOUT = 0.5 V to 1.5 V (LV) or VOUT = 1.5 V to 4.2 V (HV) | 1 | 3.1 | |||||
| tSD_BCK | Shutdown duration | LV | From VOUT = 1.5 V to VOUT < 0.2 V 2.8 V < VBUCKIN < 5.5 V, IOUT < 1 mA | ms | |||
| Slow PD | 1.5 | ||||||
| Fast PD | 0.3 | ||||||
| HV | From VOUT = 4.2 V to VOUT < 0.2 V 2.8 V < VBUCKIN < 5.5 V, IOUT < 1 mA | ||||||
| Slow PD | 1.5 | ||||||
| Fast PD | 0.3 | ||||||
BUCK2
| Symbol | Parameter | Test conditions | Min. | Typ. | Max. | Unit |
|---|---|---|---|---|---|---|
| BUCK2 | ||||||
| VBUCKIN | Main input voltage range | 2.8 | 5.5 | V | ||
| VOUT-ACC | Output voltage error amplifier accuracy | Programmable value | 0.5 to 1.5 | V | ||
| Voltage programming step | 10 | mV | ||||
| 0.5 V < VOUT < 1.5 V | -1.5 | 1.5 | % | |||
| 1.0 V < VOUT < 1.35 V | -1 | 1 | ||||
| VOUT-REG | Output load regulation 4 | CCM mode 1 mA < IOUT < 1.5 A | -1 | 1 | ||
| VOUT-RIPP | Output voltage ripple 2 | 3.0 V < VBUCKIN < 5.5 V 50 mA < IOUT < 1000 mA, 1.0 V < VOUT < 1.35 V | 10 | mVpp | ||
| IOUT | Max output current 4 | 3.0 V < VBUCKIN < 5.5 V Programmable value in NVM_BUCKS_IOUT_SHR1 | 500 1000 1500 2000 | mA | ||
| IBCKLIM | Inductor peak current limit | Depends on NVM_BUCKS_IOUT_SHR1 Max output current steps (0.5 A, 1 A, 1.5 A, 2 A) can be defined based on the selected Inductor peak current limit level | 1.5 2.1 2.8 3.3 | A | ||
| fREFCLK | Reference switching frequency | 2 | MHz | |||
| IQ_BCK | Total quiescent current | IOUT = 0 mA | 115 | 300 | µA | |
| IBUCKIN_LKG | Input leakage current | BUCK OFF, Tj = + 25 °C | 0.01 | 1 | µA | |
| EFFBCK | Efficiency | VBUCKIN = 5 V, VOUT = 1.2 V, Tj = + 50 °C | % | |||
| IOUT = 10 mA | 79 | |||||
| IOUT = 100 mA | 81 | |||||
| IOUT = 300 mA | 81 | |||||
| IOUT = 1000 mA | 80 | |||||
| IOUT = 1500 mA | 77 | |||||
| VOUT-LO | Load transient regulation 4 | 3.0 V < VBUCKIN < 5.5 V 5 mA < IOUT < 1.0 A ΔIOUT = 450 mA, tR = tF = 500 ns | +/-30 | mV | ||
| VOUT-LI | Line transient regulation | ΔVBUCKIN = 600 mV, tR = tF =10 μs ΔIOUT = 0 | 5 | mV | ||
| VOUT-OVR | Power-up overshoot | 2.8 V < VBUCKIN < 5.5 V, IOUT =1 mA, TA = +25°C | 10 | mV | ||
| tNORM-CCM-BCK | Recovery time from Normal to Forced CCM mode | VOUT_Norm = VOUT_CCM controlled by a PWRCTRLx | 40 | µs | ||
| tSU_BCK | Start-up delay (delay before voltage starts to rise) | 2.8 V < VBUCKIN < 5.5 V controlled by a PWRCTRLx | 25 3 | 40 4 | µs | |
| tSS_BCK | Soft-start duration | 2.8 V < VBUCKIN < 5.5 V 1 mA < IOUT < 100 mA VOUT = 1.5 V | 330 | 1500 | µs | |
| SRBCK | Output voltage slew rate | Slew rate during start-up | 1 | 4.40 | mV/µs | |
| DVS slew rate of a voltage programmed change low to high or high to low, from VOUT = 0.5 V to 1.5 V | 1 | 3.1 | ||||
| tSD_BCK | Shutdown duration | From VOUT = 1.5 V to VOUT < 0.2 V 2.8 V < VBUCKIN < 5.5 V, IOUT < 1 mA | ||||
| Slow PD | 1.5 | ms | ||||
| Fast PD | 0.3 | |||||
Power regulator descriptions
Overview
The STPMIC1L has a wide input voltage range from 2.8 V to 5.5 V to supply applications typically by a 5 V DC wall-adaptor or a 1-cell 3.6 V Li-Ion / Li-PO battery.
The STPMIC1L provides all the regulators needed to power supply a STM32MP1x MPU, a DDR and a flash memory:
- 4 LDOs
- 2 step-down (buck) converters
| Regulator | Output voltage (V) | Programming step (mV) | Rated output current (mA) | Application use |
|---|---|---|---|---|
| LDO2, LDO5 | 0.9 V to 4.0 V | 100 | 400/200/100/50 | General-purpose (eMMC, SD card) |
| LDO3 normal mode | 0.9 V to 4.0 V | 100 | 120 | General-purpose / lpDDR VDD1 |
| LDO3 sink-source mode | VOUT2/2 | - | +/-120 (rms) +/-230 (peak) | DDR3L/DDR4 terminations (VTT) |
| LDO4 | 3.3 | - | 40 | STM32MP1x USB PHY |
| BUCK1 | LV: 0.5 V to 1.5 V HV: 1.5 V to 4.2 V | 10 100 | 2000, 1500, 1000, 500 | Buck1 = VDDCORE |
| BUCK2 | 0.5 V to 1.5 V | 10 | 2000, 1500, 1000, 500 | Buck2 = VDDQ (DDR3L, DDR4, lpDDR3, lpDDR4) |
| GPO1, GPO2 | External Control 1, 2 |
LDO regulators
LDO2 and LDO5 are general-purpose LDOs suitable for supplying MPU application peripherals.
LDO3 serves for DDR3, DDR3L, DDR4 memory termination (sink-source mode) or to support the general-purpose mode, which is typically suitable for supplying lpDDR3 or lpDDR4.
LDO4 is a fixed 3.3 V regulator designed to supply a 3V3 USB PHY circuit.
LDO Common features
Enable/disable - each LDO can be enabled or disabled independently:
- Automatically during the POWER_UP or POWER_DOWN sequence depending on the NVM settings.
- By software (I²C access): Setting the EN bit in the related LDO control register.
- By PWRCTRLx pins state change: The PWRCTRLx pins need to be programmed by I²C to enable this feature.
VLDO OUT voltage setting - LDO output voltage can be set:
- Automatically during the POWER_UP or POWER_DOWN sequence depending on the NVM settings.
- By software (I²C access): Setting the VOUT bit field in the related LDO control register.
- By PWRCTRLx pins state change: The PWRCTRLx pins need to be programmed by I²C to select the necessary output voltages to meet the MPU application requirements.
The LDO can be enabled or disabled as in normal operation. See the “Enable/ disable” description above.
Soft start: This feature aims to limit input inrush current during the LDO startup phase. LDO soft-start duration is defined by the tSSLDO parameter.
See Figure 3 LDO startup/shutdown timings.
Output discharge: When LDO is disabled, a pull-down discharge is automatically enabled. It allows the LDO output voltage to discharge within a tSDLDO time delay. The LDO output is low before disabling the next regulators in the next ranking slot. It is active by default. It can be disabled by software to put the LDO output in high impedance when LDO is disabled (LDOS_PD_CR register).
OCP and Hiccup management: Each LDO supports OCP and can operate in Hiccup mode. When the output load of the LDO exceeds the ILDOLIM overcurrent limit threshold, the LDO starts decreasing the output voltage, limiting the output current to ILDOLIM. If the overcurrent lasts more than tOCPDB_LDO:
- An interrupt is generated (if the interrupt has been unmasked by software)
- Hiccup mode (default behavior): The LDO is turned OFF for the tHICCUP_DLY duration and then turned ON again.
- Fail-safe mode (alternative behavior): The PMIC is turned OFF for the tHICCUP_DLY duration and then turned ON again (or goes into FAIL_SAFE_LOCK state)
See Overcurrent (OCP) and Hiccup mode for details on OCP & Hiccup management.
LDO2 and LDO5 have programmable ILDOLIM overcurrent limit thresholds. ILDOLIM thresholds are programmed in the NVM_LDOS_IOUT_SHR NVM register.
LDO3 special features
The LDO3 is a multipurpose LDO with two operating modes:
- Normal mode – LDO3 works as a general-purpose LDO as well as LDO2, 5.
- Sink-source mode – LDO3 can regulate the output voltage working in sink source mode. This mode is dedicated to supplying the termination of DDR3/DDR3L or DDR4 IC memories with fixed output voltage. If LDO3 is used in this mode, LDO3IN must be powered from the output of BUCK2 (See Figure 6). The output voltage is fixed and follows VOUT2/2 even during the BUCK2 ramp-up and ramp-down phases. The overcurrent limitation works both during sink and source output current modes.
LDO4 special features
LDO4 can be dedicated to supply a USB HS analog PHY power domain.
The LDO4 output voltage is fixed at 3.3 V.
LDO output voltage settings
| VOUT [4:0] (decimal) | VOUT [V] LDO2 / LDO3 (normal mode) / LDO5 | |
|---|---|---|
| Step 100 mV | 0 | 0.9 |
| 1 | 1.0 | |
| 2 | 1.1 | |
| 3 | 1.2 | |
| 4 | 1.3 | |
| 5 | 1.4 | |
| 6 | 1.5 | |
| 7 | 1.6 | |
| 8 | 1.7 | |
| 9 | 1.8 | |
| 10 | 1.9 | |
| 11 | 2.0 | |
| 12 | 2.1 | |
| 13 | 2.2 | |
| 14 | 2.3 | |
| 15 | 2.4 | |
| 16 | 2.5 | |
| 17 | 2.6 | |
| 18 | 2.7 | |
| 19 | 2.8 | |
| 20 | 2.9 | |
| 21 | 3.0 | |
| 22 | 3.1 | |
| 23 | 3.2 | |
| 24 | 3.3 | |
| 25 | 3.4 | |
| 26 | 3.5 | |
| 27 | 3.6 | |
| 28 | 3.7 | |
| 29 | 3.8 | |
| 30 | 3.9 | |
| 31 | 4.0 |
Examples of DDR memory power supply topology using LDOs
Buck converters
General description
The STPMIC1L includes two buck converters that are optimized to supply circuits with high current consumption and meet fast transient response requirements.
All converters are based on an adaptive constant-on-time controller (COT) that guarantees an excellent transient response and high efficiency across a wide range of operating conditions.
The switching frequency of the converter is typically 2 MHz in a steady-state CCM condition. In a typical MPU application:
- BUCK1 is primarily dedicated to supplying power to the VDDCORE domain.
- BUCK2 is primarily dedicated to supplying power to the VDDQDDR domain.
Buck converters common features
Enable/Disable: each buck converter can be enabled or disabled independently (same behavior as LDO: see LDO Common features)
VOUT voltage setting: Output voltage can be set:
- Automatically during a POWER_UP or POWER_DOWN sequence depending on the NVM settings.
- By software (I²C access): Setting the VOUT bit field in the related buck control register.
- By PWRCTRLx pins state change: The BUCKx converter behaves according to BUCKx_MAIN_CR and BUCKx_ALT_CR content setting. BUCKx_MAIN_CR or BUCKx_ALT_CR is selected by the PWRCTRL pin allocated to BUCKx (see section Power control management (PWRCTRLx) (PWRCTRLx)).
Forced PWM mode (CCM mode): Each buck can be forced to work in PWM mode to keep a constant frequency and low ripple.
Normal and forced PWM modes are activated by the two-bit PREG_MODE [1:0] register as follows:
00: Normal (or auto mode)
01: Reserved
10: Forced PWM (CCM)
11: Reserved
Clock synchronization and clock phase shifting: When all buck converters work in a steady state in CCM mode, they are synchronized to a clock and are shifted by 180° in the following order:
- 0°: BUCK1
- 180°: BUCK2
Dynamic voltage scaling (DVS): When the buck output voltage is increased/decreased dynamically by the software, the buck output voltage (VOUT) is stepped up/down following the SRBK slew rate.
When a lower VOUT is set, part of the buck converter output energy is discharged from the output capacitor following the SRBK slew rate, providing current back to the input supply capacitor. This operation improves the total power efficiency.
OCP and Hiccup management: Each buck converter supports OCP and can operate in Hiccup mode. When the output load of the buck exceeds the IOUT max output current (related to inductor peak current limit threshold IBKLIM), the PWM pulse is immediately stopped, and the buck starts to decrease the output voltage, limiting the output current. If the overcurrent lasts more than tOCPDB_BUCK:
- An interrupt is generated (if the interrupt has been unmasked by software).
- Default behavior: The buck is turned OFF for tHICCUP_DLY duration and then turned ON again.
- Alternative behavior: The PMIC is turned OFF for tHICCUP_DLY duration and then turned ON again (or goes to FAIL_SAFE_LOCK state).
See Overcurrent (OCP) and Hiccup mode for details on OCP & hiccup management.
All buck converters have a programmable IOUT max current threshold. IOUT thresholds are programmed in the NVM_BUCKS_IOUT_SHR NVM register.
Output discharge: When the buck is disabled, a configurable pull-down (PD) discharge is automatically enabled. The buck output voltage discharges in tSD_BKtime duration (with typical recommended BOM) so that the buck converter output voltage is low before disabling the next regulators in the next ranking slot. Four values are configurable by software at runtime: no pull-down, slow-PD, fast-PD and forced slow-PD by setting BUCKS_PD_CR. Fast discharge output can be modified by software in fast-PD when the buck is disabled, or it can be disabled by software to configure the buck converter output to high impedance when it is disabled. See Figure 7 Buck startup/shutdown timings which shows fast-PD and slow-PD behavior.
Startup sequence: When a buck is enabled, a startup delay (tSU_BCK) occurs before the output voltage starts to rise, and is followed by a soft-start voltage ramp (tSS_BCK). See Figure 7 Buck startup/shutdown timings.
Buck output voltage settings
| VOUT [6:0] (decimal) | VOUT [V] BUCK1_LV and BUCK2 | VOUT [V] BUCK1_HV | |
|---|---|---|---|
| Step 10 mV LV | 0 | 0.50 | 1.5 |
| 1 | 0.51 | 1.5 | |
| 2 | 0.52 | 1.5 | |
| 3 | 0.53 | 1.5 | |
| 4 | 0.54 | 1.5 | |
| 5 | 0.55 | 1.5 | |
| 6 | 0.56 | 1.5 | |
| 7 | 0.57 | 1.5 | |
| 8 | 0.58 | 1.5 | |
| 9 | 0.59 | 1.5 | |
| 10 | 0.60 | 1.5 | |
| 11 | 0.61 | 1.5 | |
| 12 to 94 | … | 1.5 | |
| 95 | 1.45 | 1.5 | |
| 96 | 1.46 | 1.5 | |
| 97 | 1.47 | 1.5 | |
| 98 | 1.48 | 1.5 | |
| 99 | 1.49 | 1.5 | |
| 100 | 1.50 | 1.5 | |
| Step 100 mV HV | 101 | 1.50 | 1.6 |
| 102 | 1.50 | 1.7 | |
| 103 | 1.50 | 1.8 | |
| 104 | 1.50 | 1.9 | |
| 105 | 1.50 | 2.0 | |
| 106 | 1.50 | 2.1 | |
| 107 | 1.50 | 2.2 | |
| 108 | 1.50 | 2.3 | |
| 109 | 1.50 | 2.4 | |
| 110 | 1.50 | 2.5 | |
| 111 | 1.50 | 2.6 | |
| 112 | 1.50 | 2.7 | |
| 113 to 122 | 1.50 | … | |
| 123 | 1.50 | 3.8 | |
| 124 | 1.50 | 3.9 | |
| 125 | 1.50 | 4.0 | |
| 126 | 1.50 | 4.1 | |
| 127 | 1.50 | 4.2 |
Feature descriptions
Functional state machine
Overview
STPMIC1L integrates advanced low-power features controlled by the application processor through I²C, four digital control pins (PONKEYn/EN, PWRCTRL1/2, and RSTn) and one interrupt output line (INTn).
The main parameter settings can be programmed in a non-volatile memory (NVM) as default values at the startup time. See OFF and CHECK&LOAD:.
All regulators can be independently controlled from the PWRCTRLx pins. This allows for flexible configuration and a fast transition between different power strategies at the application level.
Other features are provided to fulfill high-end application processor and advanced operating system needs:
- Multiple turn-on/turn-off conditions
- Mask_reset and restart_request options
- Overcurrent and overvoltage protection
- Thermal protection
- Watchdog
- Interrupt controller
- Safety management
PMIC state machine - STPMIC1L state machine is described in Figure 8 PMIC state machine.
Transition conditions
| Transition symbol | State transition | Transition condition |
|---|---|---|
| A | NO_SUPPLY to INIT&LOAD | VIN > VINPOR_Rise |
| B | INIT&LOAD to OFF | Not auto_turn_on condition: Init_OK && load NVM_OK && !(AUTO_TURN_ON || PONKEYn_low || EN deasserted) |
| C | INIT&LOAD to CHECK&LOAD | Auto_turn_on condition: Init_OK && load NVM_OK && (AUTO_TURN_ON || PONKEYn_low || EN_asserted) |
| D | OFF to CHECK&LOAD | Turn-on condition: PONKEYn falling edge || EN asserted |
| E | CHECK&LOAD to POWER_UP | CHECK&LOAD is a transitory state going to POWER_UP: VIN > VINOK && Tj < TSHDN_Fall && FLT_TMR timer ended |
| F | POWER_UP to POWER_ON | When power-up sequence ends without hard-fault, the PMIC released RSTn, Transition F occurs when RSTn signal goes higher than VIH. |
| I | POWER_ON to POWER_DOWN | EN deasserted || RSTn signal asserted by AP || Turn-off condition: Software switch-off (SWOFF) || VIN < VINOK_Fall (hard-fault) || PONKEYn long press (hard-fault) || Thermal shutdown (hard-fault) || OCP fail-safe level1 (hard-fault) || Watchdog (hard-fault) |
| J | POWER_UP to POWER_DOWN | Turn-off condition (hard-fault): VIN < VINOK_Fall (hard-fault) || PONKEYn long press (hard-fault) || Thermal shutdown (hard-fault) || OCP fail-safe level1 (hard-fault) || Watchdog (hard-fault) |
| K | POWER_DOWN to CHECK&LOAD | (EN asserted && !M) || RSTn asserted by AP || (SWOFF && RREQ_EN) || (VIN_FLT_CNT <= VIN_FLT_CNT_MAX && PKEY_FLT_CNT <= PKEY_FLT_CNT_MAX && TSHDN_FLT_CNT <= TSHDN_FLT_CNT_MAX && OCP_FLT_CNT <= OCP_FLT_CNT_MAX && WDG_FLT_CNT <= WDG_FLT_CNT_MAX) |
| L | POWER_DOWN to OFF | !M && (EN deasserted || (SWOFF && !RREQ_EN)) |
| M | POWER_DOWN to FAIL_SAFE_LOCK | VIN_FLT_CNT > VIN_FLT_CNT_MAX || PKEY_FLT_CNT > PKEY_FLT_CNT_MAX || TSHDN_FLT_CNT > TSHDN_FLT_CNT_MAX || OCP_FLT_CNT > OCP_FLT_CNT_MAX || WDG_FLT_CNT > WDG_FLT_CNT_MAX |
| N | FAIL_SAFE_LOCK to OFF | Transition to force leaving the fail-safe locked state: FAIL_SAFE_LOCK_DIS (NVM bit) || PKEY_LKP_EN_FSLS (PONKEY Long Key Press Fail-Safe-Lock-Skip bit / EN deasserted Fail-Safe-Lock-Skip) |
State explanations
NO_SUPPLY
VIN is below VINPOR_Fall (see VIN monitoring). No output state can be guaranteed in this state.
INIT&LOAD
The INIT&LOAD state is immediately reached when VIN is higher than VINPOR_Rise.
STPMIC1L releases internal POR circuitry, it initializes, all registers are reset, the NVM load is performed (see Non-volatile memory (NVM)), and RSTn is asserted.
If the Auto_turn_on condition is true, PMIC makes a transition to the CHECK&LOAD state. Prior to leaving the INIT&LOAD state, the TURN_ON_SR is reset, and then the TURN_ON_SR[AUTO] bit is set.
If the Auto_turn_on condition is false, STPMIC1L evaluates the PONKEYn/EN status. If the turn on condition is not recognized, STPMIC1L makes the transition to the OFF state, otherwise it sets the proper bit in TURN_ON_SR and makes the transition to the CHECK&LOAD state (see Table 17 PMIC state machine transition conditions).
OFF
The OFF state is entered from the INIT&LOAD state, the POWER_DOWN state, or the FAIL_SAFE_LOCK state.
In the OFF state, the PMIC is in the lowest power consumption state, and all regulators are turned OFF. The voltage references are OFF and RSTn is asserted by PMIC.
All fail-safe counters are reset (xxx_FLT_CNT). Fail-safe timers (FLT_TMR), reset-fault-counter-timers (RST_FLT_CNT_TMR), and watchdog timers are stopped.
The transition to the CHECK&LOAD state (see Table 17 PMIC state machine transition conditions) is triggered by a turn-on condition (see Turn-on conditions).
Prior to leaving the OFF state, the TURN_ON_SR is reset, then the related turn-on condition bit is set in the TURN_ON_SR register.
CHECK&LOAD
CHECK&LOAD is a transitional state from a user point of view. It prepares the PMIC for power-up. The PMIC enables internal reference voltages, thermal monitoring, and VIN monitoring.
The NVM is reloaded into shadow registers. Some registers are initialized with default values from the NVM content.
RSTn is asserted by the PMIC.
After the CHECK&LOAD state, the PMIC always transitions to the POWER-UP state if power-up conditions are fulfilled (see Table 17 PMIC state machine transition conditions) and the fault timer (FLT_TMR) ends. The fault timer waits before restarting the PMIC after a hard-fault (see OFF and CHECK&LOAD:).
POWER_UP
The PMIC starts sequential regulators following a sequence that is predefined in the NVM and a default voltage that is predefined in the NVM (see ).
During the power-up sequence, RSTn is asserted by the PMIC. When the power-up sequence ends without a hard-fault, the PMIC releases RSTn signal.
POWER_ON
In the POWER_ON state, the PMIC can be set to deliver power at full performance and features. Each regulator can switch power states (MAIN_CR or ALT_CR) depending on the PWRCTRLx pin settings (see Power control management (PWRCTRLx)).
POWER_DOWN
The PMIC asserts RSTn, then sequentially turns off the regulators starting with the regulators not enabled in the power-up sequence (= rank0: enabled by software at runtime), then in reverse sequence order in the POWER_UP state (see POWER_UP / POWER_DOWN sequence).
When the POWER_DOWN sequence ends, before the transition to the next state, the watchdog is disabled (WDG_EN = 0) and status registers are updated according to the turn-off condition source:
- TURN_ON_SR and TURN_OFF_SR and RESTART_SR and OCP_SR1 and OCP_SR2 are reset (cleared)
- If RSTn is asserted by AP (PMIC transition to K in Table 17 PMIC state machine transition conditions):
- RESTART_SR[R_RST] bit is set
- Else If SWOFF && RREQ_EN && PONKEYn set in NVM_MAIN_CTRL_SHR3 (PMIC transition to K in Table 17 PMIC state machine transition conditions):
- RESTART_SR[R_SWOFF] bit is set
- Else If SWOFF && EN asserted && EN set in NVM_MAIN_CTRL_SHR3 (PMIC transition to K in Table 17 PMIC state machine transition conditions):
- RESTART_SR[R_SWOFF] bit is set
- Else If EN asserted following a pulse deassertion on EN generating a turn-OFF condition (PMIC transition to K in Table 17 PMIC state machine transition conditions):
- RESTART_SR[R_EN] bit is set
- Else If SWOFF && !RREQ_EN (PMIC transition to L in Table 17 PMIC state machine transition conditions):
- TURN_OFF_SR[SWOFF] is set
- Else If EN deasserted (PMIC transition to L in Table 17 PMIC state machine transition conditions):
- TURN_OFF_SR[EN] is set
- Else (it is a hard-fault turn-off condition, then depending on the hard-fault source):
- If hard-fault is OCP:
- OCP_SR1 or OCP_SR2 is updated with the OCP fault source
- If PMIC transitions to M:
- TURN_OFF_SR is updated with fault source
- If PMIC transitions to K:
- RESTART_SR is updated with fault source
- If hard-fault is OCP:
When a hard fault occurs first and EN feature is active, the choice between K and L transitions depends on EN status at end of POWER_DOWN sequence; in this scenario, TURN_OFF_SR/RESTART_SR are updated with both hard-fault source and EN bit, to keep trace of the original POWER_DOWN root cause.
FAIL_SAFE_LOCK
The FAIL_SAFE_LOCK state is entered from the POWER_DOWN state with an M transition (a hard-fault counter xxx_FLT_CNT that exceeds the max number of PMIC restart occurrences xxx_FLT_CNT_MAX).
In the FAIL_SAFE_LOCK state, the PMIC is in the lowest power consumption state: All regulators are turned OFF, voltage references are OFF, and RSTn is asserted by the PMIC.
The PMIC is locked in that state until POR: a turn-on condition does not power-up the PMIC.
Nevertheless, the PMIC is allowed to skip the FAIL_SAFE_LOCK state in specific N transition conditions (see Table 17 PMIC state machine transition conditions).
POWER_UP / POWER_DOWN sequence
The PMIC starts and stops regulators following the sequential 5 rank procedures called POWER_UP and POWER_DOWN, respectively.
During POWER_UP each regulator is started at one of the 6-rank phases programmed in the NVM. Each rank phase is separated by a delay (1.5 ms, 3 ms, 4.5 ms, and 6 ms) programmed in the NVM.
An additional delay can be programmed in the NVM to release the RSTn signal later than the last rank phase. This delay is also applied after the Turn_OFF condition, in between RSTn signal assertion and when the first regulator is powered off (RANK0).
The default rank sequence for each regulator, default output voltage of each regulator, default rank duration, and additional RSTn default delays are predefined in the NVM. Those values can be adapted by reprogramming the PMIC NVM with expected values.
An additional VIN_DLY [1:0] delay (0, 10 ms, 50 ms, 100 ms) can be programmed in NVM to prevent the PMIC from powering up, allowing VIN to stabilize.
(*) The device remains in OFF state until a turn-on condition is triggered
For RANK_DLY and RST_DLY, see Table 132 NVM_MAIN_CTRL_SHR2
NO_SUPPLY and INIT&LOAD:
The PMIC is initially in NO_SUPPLY state with VIN < VINPOR_Fall. A power source is inserted making VIN rise. Once VIN > VINPOR_Rise, the PMIC goes into INIT&LOAD state. The PMIC reads NVM and performs internal initialization. Then, the PMIC launches the VIN_DLY [1:0] delay. Once the VIN_DLY elapses, the PMIC can transition to OFF state (or directly to CHECK&LOAD state if AUTO_TURN_ON bit is set in NVM).
The VIN_DLY is suitable when the PMIC starts immediately after VIN rise; especially when AUTO_TURN_ON bit is set in NVM.
OFF and CHECK&LOAD:
The PMIC is initially in the OFF state. The RSTn pin is asserted by the PMIC. Once a turn-on condition occurs, the PMIC goes into the CHECK&LOAD state. As the turn-on condition is valid (for example: VIN>VINOK) the PMIC goes into the POWER_UP state.
POWER_UP:
In the POWER_UP state, RSTn is kept asserted by the PMIC.
The PMIC enables regulators sequentially by 1.5 ms slots (according to the default rank sequence and default output voltage defined in the NVM, RANK_DLY[1:0]).
For example (see Figure 9 PMIC POWER_UP and POWER_DOWN sequence example):
RANK1 (LDO2) then RANK2 (BUCK1) then RANK3 (GPO1) then RANK4 (LDO5) then RANK5 (GPO2).
Once the RANK5 ends, the PMIC releases RSTn and then it goes into the POWER_ON state.
POWER_ON:
In the POWER_ON state, all regulators are managed by the application processor’s software (I²C control) or by the PWRCTRL pin (see Power control management (PWRCTRLx)). In the example of Figure 9 PMIC POWER_UP and POWER_DOWN sequence example, BUCK2 is enabled by the AP’s software at runtime.
POWER_DOWN:
Once a Turn-OFF condition occurs, the PMIC asserts RSTn, then the PMIC shuts down RANK0 regulators that have been started by software (BUCK2 in the Figure 9 PMIC POWER_UP and POWER_DOWN sequence example example).
Then the PMIC disables the regulators sequentially in reverse rank order from the POWER_UP sequence, by 1.5 ms slots (according to the default rank sequence in the NVM, RANK_DLY [1:0]).
For example (see Figure 9 PMIC POWER_UP and POWER_DOWN sequence example):
RANK5 (GPO2), then RANK4 (LDO5), then RANK3 (GPO1), then RANK2 (BUCK1), then RANK1 (LDO2).
When the RANK1 ends, the PMIC goes into the OFF state (RSTn is kept asserted). The analog behavior of regulators is detailed in Power regulator descriptions.
Digital pin description
PONKEYn/EN
The PONKEYn/EN pin is a multifunctional pin that can be configured (see PKEY_EN_CFG NVM pin) with two different functions: As PONKEYn, it is intended to be connected to a push-button at the application level. If the push-button is pressed by a user, the PONKEYn signal is grounded. If the push-button is released by the user, the PONKEYn signal is floating, but the internal PMIC RPU ties PONKEYn to VIN. When configured as Enable, it turns the PMIC on or off, based on the programmed polarity.
Main characteristics as PONKEYn:
- Digital input
- Active low
- Programmable pull-up (RPU) internally connected to VIN and pull-down (RPD)
- Debounce filter on rising and falling edges (see Figure 10 PONKEYn debounce filter behavior)
- Turn-ON condition on falling edge (after debounce) when PMIC is in the OFF state.
- Turn-ON condition on low level from a PMIC POR (see VINPOR)
- Interrupt on falling and rising edges (after debounce)
- Turn-OFF condition on PONKEYn long press (duration programmable)
PONKEYn falling edge: the debounce filter timer is enabled once the PONKEYn voltage is lower than VIL. If a bounce voltage higher than VIH occurs, the debounce filter timer is canceled and so on.
PONKEYn rising edge: the debounce filter timer is enabled once the PONKEYn voltage is higher than VIH. If a bounce voltage lower than VIL occurs, the debounce filter timer is canceled and so on.
Main characteristics as EN:
- Digital input, level sensitive with VIL/VIH thresholds 1.8 V compatible
- Active high or low (programmable polarity)
- NVM or user level Programmable pull-up (RPU) internally connected to VIN or pull-down (RPD)
- 30 µs rising and falling deglitch
- Turn-ON and Turn-OFF conditions when (respectively) asserted or deasserted based on programmed polarity
- When configured, the following functionalities are disabled: PONKEYn turn-ON event (implicit) and long press Turn-OFF event and fail-safe skip, AUTO_TURN_ON, RREQ_EN.
RPU and RPD settings are independent from the PONKEYn/EN configuration.
RSTn
The RSTn is a bidirectional reset pin both for the PMIC and the application processor:
- Digital input: active low input reset (when not asserted by the PMIC). The application processor can assert RSTn low to force the PMIC to power cycle.
- Open drain output: The PMIC can assert RSTn low to reset the application processor, typically during a power-ON or a power-OFF sequence and a power cycling reset sequence. Pull-up (RPU) is internally connected to VIO.
INTn
The PMIC asserts INTn low when a PMIC interrupt is pending (and not masked):
- Digital output (open drain)
- Active low
- Pull-up (RPU) internally connected to VIO.
PWRCTRL1, PWRCTRL2
Power control signals aim to control the regulator's behavior. Typically, power control signals are driven to ‘1’ or ‘0’ by the application processor to manage different power modes at application level.
PWRCTRLx pin characteristics:
- Digital input
- Level-sensitive
- Programmable polarity
- Rising and falling delay cells
- Inactive by default
- Programmable pull-up (RPU) internally connected to VIO or pull-down (RPD),and RPU is active by default.
- No debounce
See Power control management (PWRCTRLx) for behavior description.
GPO1, GPO2
General Purpose Output driven by PMIC via GPOx_MAIN_CR, GPOx_ALT_CR like other regulators and PWRCTRL registers. A GPO can also be driven at power-up/power-down sequence (programmable in NVM like any regulator).
GPOx are mainly targeted to control external discrete regulators or an additional PMIC (driven by EN pin). GPO can also be used to control any external peripherals on an application.
GPOx pin characteristics:- Digital output (push-pull on VIN)
- Programmable polarity (an external discrete regulator usually has active high Enable pin input but sometime the Enable pin is active low)
- Note: GPO are in high impedance when 0 < VIN < Vinpor.
Feature descriptions
VIN monitoring
The main input supply pin VIN is monitored permanently by the PMIC state machine. There are different threshold triggers on VIN. The lowest to the highest thresholds are: VINPOR, VINOK, and VINLOW as shown in Figure 11 V IN monitoring thresholds.
VINPOR
VINPOR is the minimum voltage required to supply the PMIC internal circuitry. It is specified by two hardcoded thresholds with 200 mV hysteresis:
Below VINPOR_Fall, the PMIC is considered as not supplied.
Above VINPOR_Rise, the PMIC internal circuitry is functional.
Refer to General section for threshold values.
VINOK
VINOK is the minimal voltage required to allow the PMIC to work in the POWER_ON state.
It is specified by VINOK_Rise threshold and VINOK_HYST hysteresis values that can be adjusted in the NVM, respectively in the VINOK_RISE [1:0] and VINOK_HYST [1:0] bit fields.
If VIN falls below VINOK_Fall (VINOK_Fall = VINOK_Rise – VINOK_HYST), then it is considered as a hard-fault turn-off condition and the PMIC immediately starts the POWER_DOWN sequence (see POWER_DOWN:). Following this condition, the PMIC waits for the tVINOK_Fall delay before it can restart, even if VIN exceeds VINOK_Rise again before the tVINOK_Fall delay ends.
Definition: The VIN > VINOK condition means that if VIN rises above VINOK_Rise, then VIN remains higher than VINOK_Fall. Reciprocally, VIN < VINOK means that VIN < VINOK_Fall or VIN is less than the VINOK_Rise threshold (this definition is just to simplify the state machine description).
VINLOW
VINLOW operates as a flag to trigger an interrupt: VINLOW_Fall and VINLOW_Rise are configurable software thresholds that notify the AP (via an interrupt line) when the VIN voltage crosses one of those two thresholds.
VINLOW can be enabled and configured by programming the register VINLOW_CR.
VINLOW_Rise and VINLOW_Fall thresholds generate, respectively, VINLOW_RI and VINLOW_FA interrupts, allowing the application processor to take relevant action. They can be unmasked independently.
The VINLOW_RI interrupt is asserted once VIN goes below the VINLOW_Rise threshold.
The VINLOW_FA interrupt is asserted once VIN goes above the VINLOW_Fall threshold.
Turn-on conditions
A turn-on condition is required to power up the PMIC and to reach the POWER_ON state. A turn-on condition is only valid from the OFF state, or alternatively from the NO_SUPPLY state (the PMIC has no VIN initially).
The PMIC manages several turn-on conditions:
- PONKEYn pin assertion or EN pin assertion
- AUTO turn-on (AUTO_TURN_ON bit set in the NVM, only if pin EN is not configured)
- Fail-safe restart condition
PONKEYn / En turn-on detection conditions
A turn-on condition can be triggered by an external signal source from PONKEYn/EN pin:
- If PONKEYn is set in the PKEY_EN_CFG bit (NVM):
- PONKEYn is tied low initially. The PMIC is in a NO_SUPPLY state. When the VIN voltage rises and crosses the VINPOR_Rise threshold, the PMIC goes into the INIT&LOAD state (transition A), and then it goes into the CHECK&LOAD state (transition C).
- PONKEYn is initially released. The PMIC is in the OFF state. When the PONKEYn is asserted, a turn-on condition occurs.
2. If EN is set in the PKEY_EN_CFG bit (NVM):
- EN asserted: always a turn-on condition (except if PMIC is in FAIL_SAFE_LOCK state).
| Source | Turn-on condition | Debounce |
|---|---|---|
| PONKEYn | PONKEYn signal low from the PMIC in a NO_SUPPLY state when VIN rises and crosses VINPOR_Rise | 30 μs |
| PONKEYn | PONKEYn signal falling edge when the PMIC is in the OFF state | tPONKEYnDB |
| EN | EN asserted (signal high or low depending of EN polarity set in NVM) | 30 μs |
AUTO turn-ON
AUTO turn-ON allows the PMIC to be turned ON automatically when VIN rises from VIN < VINPOR_Fall. An AUTO turn-ON event is triggered only from a NO_SUPPLY state transition:
- VIN rises from VINPOR_Fall to VINPOR_Rise
- PMIC goes into INIT&LOAD state, then the AUTO_TURN_ON bit is enabled in the NVM
- PMIC goes into the CHECK&LOAD state, waiting for VIN>VINOK
- PMIC POWER_UP
The AUTO turn-ON is enabled in the NVM by default.
Turn-off conditions
Turn-off conditions are triggered by events or stimulus leading the PMIC to perform a POWER_DOWN sequence.
Following the POWER_DOWN sequence, the PMIC can switch to the OFF state or to the FAIL_SAFE_LOCK state, or restart automatically (power cycle), depending on the source that has triggered the turn-off condition.
There are six sources triggering a turn-off condition detailed in Table 19 Turn-off condition trigger sources:
| Source | Type | Turn-off condition | Power cycle condition |
|---|---|---|---|
| EN 2 | Switch-off | EN deasserted (signal low or high depending of EN polarity set in EN_POL_CFG bit in NVM) | EN = asserted 2 (short deassertion pulse) |
| Software switch-off | Switch-off | Writing 1 to SWOFF bit | RREQ_EN = 1 EN = asserted 2 |
| VINOK_Fall | Hard-fault | VIN falls below VINOK_Fall threshold (with VIN staying higher than VIN_POR_Fall). See VIN monitoring | VIN_FLT_CNT <= VIN_FLT_CNT_MAX && EN = asserted 2 |
| PONKEYn long key press | Hard-fault | PKEY_LKP_OFF bit set or NVM_PKEY_LKP_OFF bit set (NVM). Long key press duration can be set in PKEY_LKP_TMR [3:0] bit field or in NVM_PKEY_LKP_TMR [1:0] bit field (NVM) PONKEYn signal is asserted low for a duration > PKEY_LKP_TMR [3:0] | PKEY_FLT_CNT <= PKEY_FLT_CNT_MAX |
| Thermal shutdown | Hard-fault | PMIC junction temperature exceeds TSHDN_Rise threshold. See AUTO turn-ON | TSHDN_FLT_CNT <= TSHDN_FLT_CNT_MAX && EN = asserted 2 |
| Overcurrent protection | Hard-fault | Overcurrent detected on a regulator (related regulator NVM_FS_OCP_xxx 1 bit set in NVM or FS_OCP_xxx 1 bit set by software). | OCP_FLT_CNT <= OCP_FLT_CNT_MAX && EN = asserted 2 |
| Watchdog | Hard-fault | Watchdog feature active and timer expired. See Turn-OFF condition triggered by software switch-off | WDG_FLT_CNT <= WDG_FLT_CNT_MAX && EN = asserted 2 |
Turn-OFF condition triggered by software switch-off
When the software sets the SWOFF bit, the PMIC starts a POWER_DOWN sequence immediately, then the PMIC goes into the OFF state. The TURN_OFF_SR is set accordingly.
PONKEYn set in PKEY_EN_CFG bit in NVM: If the software has set both the RREQ_EN and SWOFF bits, the PMIC restarts automatically after the POWER_DOWN sequence (transition K) and goes into the POWER_ON state. The RESTART_SR register is set accordingly.
EN set in PKEY_EN_CFG bit in NVM: If the software has set SWOFF bit while EN is asserted, the PMIC restarts automatically after the POWER_DOWN sequence (transition K) and goes into POWER_ON state.
The RESTART_SR register is set accordingly.
Turn-OFF condition triggered by a hard fault
Each hard-fault source has a hard-fault counter: see Table 20 Hard-fault fail-safe counters and waits before restarting timer.
Each time a hard-fault event occurs, a turn-off condition is triggered, and it is managed by fail-safe management. See Fail-safe management.
Fail-safe management
Each hard-fault source has an independent fail-safe counter that is incremented each time a hard-fault turn-off condition occurs (see Table 20 Hard-fault fail-safe counters and waits before restarting timer). If the counter value is below (or equal to) the max limit, then the PMIC restarts (= power cycling on fault condition). Alternatively, if the counter is higher than the max limit, then the PMIC goes into the FAIL_SAFE_LOCK state to avoid cyclic hard failures.
Sequence details:
When a turn-off condition is triggered by a hard-fault source (see Table 19 Turn-off condition trigger sources):
- The corresponding hard-fault counter is incremented (see Table 20 Hard-fault fail-safe counters and waits before restarting timer): xxx_FLT_CNT ++
- The FLT_TMR is loaded with the corresponding hard-fault duration and starts (see Table 20 Hard-fault fail-safe counters and waits before restarting timer)
- The PMIC switches to the POWER_DOWN sequence
- Once the POWER_DOWN sequence ends:
- If all counters xxx_FLT_CNT <= xxx_FLT_CNT_MAX then the PMIC goes into the CHECK&LOAD state, then PMIC waits for a FLT_TMR timer expiration before restarting (see Table 20 Hard-fault fail-safe counters and waits before restarting timer). Then it goes into POWER_UP, and then it goes in POWER_ON state. The corresponding bit in the RESTART_SR status register is set.
- Else if one of the counters xxx_FLT_CNT > xxx_FLT_CNT_MAX, then PMIC goes into the FAIL_SAFE_LOCK state. The corresponding bit in the TURN_OFF_SR status register is set. Even when the FAIL_SAFE_LOCK is skipped, the PMIC waits for FLT_TMR expiration before restarting.
Note: If EN set in PKEY_EN_CFG bit in NVM, it is assumed that EN is kept asserted during the above sequence.
| Source | Fail-safe counters | Max fault iteration (NVM shadow register) | Wait before restart timer duration FLT_TMR[x] |
|---|---|---|---|
| VINOK_Fall | VIN_FLT_CNT [3:0] | VIN_FLT_CNT_MAX [3:0] | tVINOK_Fall |
| PONKEYn long press | PKEY_FLT_CNT [3:0] | PKEY_FLT_CNT_MAX [3:0] | 0 |
| Thermal shutdown | TSHDN_FLT_CNT [3:0] | TSHDN_FLT_CNT_MAX [3:0] | tTSHDN_DLY |
| Overcurrent protection (OCP) | OCP_FLT_CNT [3:0] | OCP_FLT_CNT_MAX [3:0] | tHICCUP_DLY |
| Watchdog | WDG_FLT_CNT [3:0] | WDG_FLT_CNT_MAX [3:0] | 0 |
Notes:
- 1 - When a counter (xxx_FLT_CNT [3:0]) reaches 0xF, all the next counter increments keep the counter value at 0xF (and not restart to 0). This allows for infinite PMIC restart iterations to be set when xxx_FLT_CNT_MAX [3:0] is set to 0xF.
- 2 - Setting 0 in xxx_FLT_CNT_MAX makes the PMIC go into the FAIL_SAFE_LOCK state after the first corresponding turn-off hard-fault condition (PMIC restarts 0 times).
- 3 - Setting 0xF in xxx_FLT_CNT_MAX makes the PMIC always restart after any corresponding urn-off fault condition as highlighted above in Note 1 (PMIC restarts indefinitely).
- 4 - Programming the NVM with tHICCUP_DLY =‘0’ means no wait before restart.
Hard-fault counters reset and auto-reset
To avoid reaching the FAIL_SAFE_LOCK state due to isolated turn-off hard-fault conditions, all counters can be reset automatically when no turn-off hard-fault condition occurs in RST_FTL_CNT_TMR timer duration (see Table 21 Reset fault counter timer settings for timer duration NVM settings).
From the NO_SUPPLY state and until a first turn-off condition occurs, the RST_FTL_CNT_TMR timer is disabled.
Each time a turn-off hard-fault condition occurs, the RST_FTL_CNT_TMR timer is reset to the RST_FLT_CNT_TMR[1:0] value and restarted.
When the RST_FTL_CNT_TMR timer elapses:
- All counters (*_FLT_CNT) are reset
- The RST_FTL_CNT_TMR timer is stopped until a new turn-off hard-fault condition occurs
If PMIC reaches the FAIL_SAFE_LOCK state before the RST_FTL_CNT_TMR timer elapses, then RST_FTL_CNT_TMR timer is reset and stopped.
A RSTn condition has no effect on the RST_FTL_CNT_TMR timer.
In the OFF state, the RST_FTL_CNT_TMR timer is reset and stopped, and all counters (*_FLT_CNT) are reset.
| RST_FLT_CNT_TMR [1:0] (NVM shadow register) | Timer duration |
|---|---|
| 00 | disabled |
| 01 | 1 min |
| 10 | 6 min |
| 11 | 60 min |
FAIL_SAFE_LOCK state skipping
When the PMIC enters FAIL_SAFE_LOCK state, it remains in this state until PMIC POR (VIN < VINPOR_Fall).
Alternatively, there are three programmable options to force the PMIC to switch from the FAIL_SAFE_LOCK state to the OFF state:
- Set the bit FAIL_SAFE_LOCK_DIS in the NVM. It disables the FAIL_SAFE_LOCK feature (when the PMIC enters the FAIL_SAFE_LOCK state, it immediately transitions to the OFF state).
- A PKEY_EN_FAIL_SAFE_LOCK_SKIP condition
- A PKEY_EN_FAIL_SAFE_LOCK_SKIP condition can be reached only if the PKEY_LKP_EN_FSLS (1) bit is set prior to entering the FAIL_SAFE_LOCK state (or if the NVM_PKEY_LKP_EN_FSLS bit is set in NVM, which automatically sets the PKEY_LKP_EN_FSLS bit) and:
- A PONKEYn long key press event (if PONKEYn is set in the PKEY_EN_CFG bit (NVM))
- An EN pin deassertion (if EN is set in the PKEY_EN_CFG bit (NVM))
- PKEY_LKP_EN_FSLS: PONKEY Long Key Press Fail-Safe-Lock-Skip bit / EN deasserted Fail-Safe-Lock-Skip bit)
Power control management (PWRCTRLx)
PWRCTRL1 and PWRCTRL2 are digital inputs controlled from an application processor (see PWRCTRL1, PWRCTRL2). They are dedicated to managing different application power modes or special regulator reset features.
PWRCTRL1 and PWRCTRL2 can be independently muxed onto each regulator instance (BUCKx, LDOx or GPOx).
For example, BUCK1 may be controlled by PWRCTRL2, and BUCK2, BUCK2, and LDO5 can be controlled by PWRCTRL1, and so on.
A regulator instance and external command (GPO) can be controlled by a single PWRCTRL signal. For each regulator instance, a PWRCTRL input can be used either to:
- Switch between the xxx_MAIN_CR register or the xxx_ALT_CR register of a regulator (where xxx is the regulator instance)
– The regulator behaves according to the selected xxx_MAIN_CR or xxx_ALT_CR register
- Reset a regulator instance to its default value (from the NVM)
PWRCTRL1 or PWRCTRL2 can be used to suspend the watchdog, typically when the AP is in low-power mode.
Figure 12 PWRCTRLx logic circuitry principle provides the logic circuitry principle showing:
- How a buck converter is controlled by a PWRCTRLx
PWRCTRL1_POL and PWRCTRL2_POL bits set the polarity of PWRCTRL1 and PWRCTRL2 respectively. Those settings are applicable to all regulators and external commands (GPO) (not linked to a single regulator).
PWRCTRLx_POL: polarity of PWRCTRLx signal (with x = 1, 2): 0: active low; 1: active high. See Table 22 PWRCTRLx polarity truth table.
| PWRCTRLx input level | PWRCTRLx_POL | PWRCTRLx logic level |
|---|---|---|
| 0 | 0 | Active |
| 1 | 0 | Inactive |
| 0 | 1 | Inactive |
| 1 | 1 | Active |
WDG_PWRCTRL_SEL [1:0]: Watchdog control source selection. When PWRCTRLx is active, the watchdog timer is suspended. When PWRCTRLx is inactive, the watchdog timer is running (if watchdog is enabled) (see Turn-OFF condition triggered by a hard fault).
Note: There is one instance of the following registers per regulator instance:
PWRCTRL_SEL [1:0]: BUCKx control/reset source selection.
PWRCTRL_DLY_H [1:0]: BUCKx control/reset source shift delay from low to high level (typically to perform the power ON sequence between different regulators; driven by a PWRCTRL signal). 0 = no delay; 1 = 1.5 ms delay; 2 = 3 ms delay; and 3 = 6 ms delay.
PWRCTRL_DLY_L [1:0]: BUCKx control/reset source shift delay from high to low level (typically to emulate the power OFF sequence between different regulators; driven by a PWRCTRL signal). 0 = no delay; 1 = 1.5 ms delay; 2 = 3 ms delay; and 3 = 6 ms delay.
PWRCTRL_EN: BUCKx control source enable. 0: disable, 1: enable. When enabled, BUCKx is controlled by a PWRCTRL signal:
- If PWRCTRL is inactive, the BUCKx_MAIN_CR register is used to control BUCKx
- If PWRCTRL is active, the BUCKx_ALT_CR register is used to control BUCKx
PWRCTRL_RST: BUCKx independent reset source enable. 0: disable, 1: enable. When enabled, BUCKx is reset by a PWRCTRL signal. See Regulator-independent reset detailed behaviors (PWRCTRL_RST) for details:
- If PWRCTRL is active
- BUCKx is disabled (forced by the DISABLEn signal in Figure 15 Reset power-cycle sequence example.)
- The BUCKx_MAIN_CR and BUCKx_ALT_CR registers are reset to default value (the NVM default value is reloaded in both registers).
- If PWRCTRL is inactive, the BUCKx_MAIN_CR register is used to control BUCKx.
Notes:
- If both PWRCTRL_EN and PWRCTRL_RST are set by mistake, both the control source and independent reset features are disabled (no effect).
- The above bit field descriptions are also applicable for LDOs and GPOs replacing BUCKx with LDOx and GPOx respectively.
| PWRCTRLx logic level | PWRCTRL_RST | PWRCTRL_EN | Regulator control register |
|---|---|---|---|
| Active or inactive | 0 | 0 | xxx_MAIN_CR |
| Active | 0 | 1 | xxx_ALT_CR |
| Inactive | 0 | 1 | xxx_MAIN_CR |
| Active | 1 | 0 | xxx regulator disabled (OFF) xxx_MAIN_CR & xxx_ALT_CR registers are reset to default value |
| Inactive | 1 | 0 | xxx_MAIN_CR |
| Active or inactive | 1 | 1 | xxx_MAIN_CR |
PWRCTRL delay high and delay low behaviors
PWRCTRL delay blocks are independent for each regulator. A delay block allows a PWRCTRLx signal to shift by preprogrammed delays. Each delay block is composed of two parts (a delay high and a delay low). The first operates at a high input level, and the second operates at a low input level.
Delay blocks are typically used to emulate power sequences between regulators when entering or leaving a low-power mode.
High-level delay behavior:
When the input signal goes from low to high level, the high-level delay timer (PWRCTRL_DLY_H [1:0]) is started. Once the timer expires, the output goes high.
If the input signal changes from high to low before the high-level delay timer expires, the “high-level delay timer” is stopped and reset, and the output keeps the previous value.
Low-level delay behavior:
Same behavior as for the high-level delay but on low-level input.
When the input signal goes from high to low level, the low-level delay timer (PWRCTRL_DLY_L [1:0]) is started. Once the timer expires, the output goes low.
If the input signal changes from low to high before the low-level delay timer expires, the “low-level delay timer” is stopped and reset, and the output keeps the previous value.
Figure 13 Delay rising and delay falling behaviors example. illustrates this example, using the PWRCTRL2 to control the BUCK1 and the BUCK2:
Settings for the Figure 13 Delay rising and delay falling behaviors example. example:
// BUCK1 settings
BUCK1_PWRCTRL_CR[PWRCTRL_SEL[1:0]] = 2; // PWRCTRL2 as BUCK1 control source
BUCK1_PWRCTRL_CR[PWRCTRL_DLY_H[1:0]] = 0; // no delay on PWRCTRL2 going from low to high forBUCK1
BUCK1_PWRCTRL_CR[PWRCTRL_DLY_L[1:0]] = 2; // 3 ms delay on PWRCTRL2 going from high to low forBUCK1
BUCK1_PWRCTRL_CR[PWRCTRL_EN] = 1; // enable the PWRCTRL input feature for BUCK1
// BUCK2 settings
BUCK2_PWRCTRL_CR[PWRCTRL_SEL[1:0]] = 2; // PWRCTRL2 as BUCK2 control source
BUCK2_PWRCTRL_CR[PWRCTRL_DLY_H[1:0]] = 2; // 3 ms delay on PWRCTRL2 going from low to high forBUCK2
BUCK2_PWRCTRL_CR[PWRCTRL_DLY_L[1:0]] = 0; // no delay on PWRCTRL2 going from high to low forBUCK2
BUCK2_PWRCTRL_CR[PWRCTRL_EN] = 1; // enable the PWRCTRL input feature for BUCK2.
Regulator-independent reset detailed behaviors (PWRCTRL_RST)
The independent reset feature is controlled by a PWRCTRLx input pin (PWRCTRL_SRC [1:0]) and it is enabled by setting the PWRCTRL_RST bit. This feature allows a regulator to reset to its default NVM value from an AP hardware signal “on the fly” (which cannot be done by I²C access).
When the PWRCTRLx input pin is active, regulator xxx is forced into OFF mode. xxx_MAIN_CR and xxx_ALT_CR registers are both reset to default values (the NVM default value is reloaded in both registers from the related NVM shadow register).
When the PWRCTRLx input pin is inactive, regulator xxx is controlled by xxx_MAIN_CR register content.
Figure 14 Regulator-independent reset behavior example provides an example to illustrate regulator-independent reset behaviors using the PWRCTRL2 to control the LDO2 independent reset.
LDO2 reset value (from the NVM):
- LDO2_MAIN_CR[VOUT] = 2.9 V
- LDO2_MAIN_CR[EN] = 1
Software settings:
PWRCTRL2_POL = 0; // PWRCTRL2 active low
// LDO2 settings
LDO2_PWRCTRL_CR[PWRCTRL_SEL [1:0]] = 3; // PWRCTRL2 as LDO2 control source
LDO2_PWRCTRL_CR[PWRCTRL_DLY_H [1:0]] = 0; // no delay on PWRCTRL2 going high for LDO2
LDO2_PWRCTRL_CR[PWRCTRL_DLY_L [1:0]] = 0; // no delay on PWRCTRL2 going low for LDO2
LDO2_PWRCTRL_CR[PWRCTRL_RST] = 1; // enable the PWRCTRL2 input to control LDO2 independent reset
Reset management (RSTn) and mask_reset software option
RSTn is a bidirectional reset pin both for the PMIC and the application processor. It has a digital input/open drain output topology with an internal pull-up resistor (RPU).
- When the PMIC asserts RSTn, it drives the RSTn signal low (open drain internal transistor). The application processor is forced into a reset state.
- When the PMIC does not assert RSTn, the RSTn pin is in high impedance and the RSTn signal goes high (due to the pull-up resistor) if the RSTn signal is not asserted low externally (for example by a reset push- button or from an application processor asserting the reset signal low). In that case, the PMIC RSTn pin becomes a digital input and it monitors the RSTn signal.
In the POWER_ON state, the RSTn pin can be driven by the application processor or a reset push-button.
When the application processor asserts RSTn low exceeding the tRSTnAS duration, it immediately triggers a reset sequence of the PMIC by performing a non-interruptible power cycle:
- The PMIC asserts RSTn low (forcing the AP to keep it in reset, and in case that the AP releases the reset before the end of the sequence)
- POWER_DOWN sequence
- CHECK&LOAD
- POWER_UP sequence
- PMIC deasserts RSTn and monitors RSTn
- PMIC waits for the RSTn signal to go high before entering POWER_ON (to prevent an infinite loop of reset sequences)
The PMIC can detect a negative pulse on RSTn shorter than the tRSTnAS duration. The PMIC must detect a negative pulse longer or equal to the tRSTnAS duration.
mask_reset software option
From step 2 to step 4 (in the above sequence), LDOs, GPOs and buck regulators follow a POWER_DOWN sequence followed by a POWER_UP sequence as defined in POWER_UP / POWER_DOWN sequence except for regulators with the mask_reset option bit set.
The mask_reset option can be defined for each regulator by setting the corresponding MRST bit in the corresponding BUCKS_MRST_CR or LDOS_MRST_CR or GPOS_MRST_CR registers.
When the mask_reset option is set to a regulator, the MAIN and ALTERNATE related registers are not reset and content is maintained during and after the reset power cycle. Nevertheless, the PWRCTRLx settings are reset for all regulators, including those with the mask_reset option set:
- POWER_DOWN is not performed.
- MAIN and ALTERNATE register values are not reset, and their contents are maintained with the current value
- PWRCTRLx register settings are reset (xxx_PWRCTRL_CR)
The PMIC always ends the power cycle in the POWER_ON state, regardless of the PWRCTRLx value, as all PWRCTRLx settings have been reset during the power cycle.
If RSTn is asserted in MAIN mode, regulators with the mask_reset option set are not impacted at all by the reset sequence, keeping VOUT, EN, and PREG_MODE unchanged.
If RSTn is asserted in the ALTERNATE mode, VOUT, EN, and PREG_MODE switch to the content of the [regulator]_MAIN_CR register values when the POWER_DOWN sequence ends before the POWER_UP sequence starts.
Figure 15 Reset power-cycle sequence example. illustrates a reset power cycle of the PMIC.
For RANK_DLY and RST_DLY, see Table 132 NVM_MAIN_CTRL_SHR2.
Settings related to the example in Figure 15 Reset power-cycle sequence example.:
LDO5 with mask_reset option set (LDOS_MRST_CR[LDO2_MRST] = 1) is not impacted by the reset power- cycle.
BUCK1, BUCK2, and LDO4 are powered down and up at their respective ranks defined in the NVM. LDO5 is enabled by I²C. So, it is powered down first and not restarted (as not defined in the NVM to start). Mask_reset is valid once. It is cleared in the CHECK&LOAD state. So, it is cleared following a turn-off condition, a VINPOR, and a RSTn assertion.
When RSTn is released by the application processor, the PMIC keeps RSTn asserted (the RSTn signal stays low), meaning that the application processor is kept in reset until the PMIC releases the RSTn signal.
Thermal protection
The PMIC implements a thermal protection to prevent overheating damage. PMIC junction temperature is permanently monitored by an embedded thermal sensor.
The first level of thermal protection consists of an alarm sent by an interrupt to the application processor:
- When Tj rises above the TWRN_Rise threshold, the PMIC generates a THW_RI interrupt
- When Tj falls below the TWRN_Fall threshold, the PMIC generates a THW_FA interrupt
The application processor can decrease the application activity load, in order to decrease the application power consumption. Alternatively, a second level of thermal protection may occur.
The second level of thermal protection consists of triggering a turn-off hard-fault condition:
- When Tj rises above the TSHDN_Rise threshold, the PMIC generates a turn-off hard-fault condition, and the thermal fail-safe counter is incremented (TSHDN_FLT_CNT ++):
- If the thermal fail-safe counter reaches the maximum number of power cycles defined in the NVM (TSHDN_FLT_CNT > TSHDN_FLT_CNT_MAX), then the PMIC goes into the FAIL_SAFE_LOCK state.
- Alternatively, when Tj falls below the TSHDN_Fall threshold and a tTSHDN_DLY delay ends, the PMIC restarts.
See Fail-safe management for details about fail-safe counter management.
Overcurrent (OCP) and Hiccup mode
All regulators implement protection against overcurrent (OC) on their output.
For each regulator, the PMIC embeds 2 levels of protection against overcurrent and short-circuits:
- Level 0 (default): independent regulator OCP Hiccup mode management
- Level 1: PMIC OCP fail-safe management (see Fail-safe management)
The default level of protection is defined in the NVM (NVM_FS_OCP_SHR1/2) for each regulator, and can be changed at runtime by software (FS_OCP_CR1/2).
Level 0: Independent regulator OCP Hiccup mode management
Each PMIC regulator operates independently in Hiccup mode:
- When a short-circuit or an overcurrent occurs, the output current is limited to ILDOLIM (for LDO) and IBKLIM (for buck).
- If the SC or OC lasts more than tOCPDB_LDO or tOCPDB_BUCK (respectively for LDO or buck):
- The regulator turns OFF for the tHICCUP_DLY duration
- An interrupt is generated (if the interrupt is unmasked by software)
- Once the tHICCUP_DLY timer elapses, the regulator turns ON
- If the SC or OC is removed, the LDO operates normally
- If the SC or OC stays present, the regulator goes into step 1, repeating the cycle until the overload disappears (hiccup)
Notes:
- 1) When the tHICCUP_DLY timer duration is set to 0, the regulator is turned-OFF (interrupt-generated) and it does not restart (step 3 is skipped).
- 2) The tHICCUP_DLY timer duration can be adjusted in the NVM by setting the HICCUP_DLY [1:0] bit field in the NVM_BUCKS_IOUT_SHR2 shadow register, then programming the NVM.
3) The tHICCUP_DLY timer is reset if a POWER_DOWN occurs at the same time. In this way, the IP can restart with its assigned RANK at the next POWER_UP. This happens even if the mask reset is set and/or tHICCUP_DLY is set to ‘0’.
Level 1: PMIC OCP fail-safe management
Each PMIC regulator can be set independently to trigger a hard-fault condition when an overcurrent or a short circuit occurs:
- When a short-circuit or an overcurrent occurs, the output current is limited to ILDOLIM(for LDO) and IBKLIM (for buck).
- If the SC or OC lasts more than tOCPDB_LDO or tOCPDB_BUCK (respectively for LDO or buck), the PMIC generates a turn-off hard-fault condition. OCP_SR1 or OCP_SR2 is updated with the OCP fault source, and the OCP fail-safe counter (1) is incremented (OCP_FLT_CNT ++):
- If the OCP fail-safe counter reaches the maximum number of power cycles defined in the NVM (OCP_FLT_CNT > OCP_FLT_CNT_MAX), the PMIC goes into FAIL_SAFE_LOCK state.
- Alternatively, when the tHICCUP_DLY delay ends, the PMIC restarts.
There is a single OCP fail-safe counter (OCP_FLT_CNT) for all regulators. It is incremented each time a regulator triggers a hard-fault regardless of the regulator instance.
Watchdog management
The PMIC has an internal watchdog timer. A watchdog timer expiration generates a turn-off hard-fault condition (see Turn-off conditions) followed either by a PMIC restart (power cycling) or by the PMIC going into the FAIL_SAFE_LOCK state.
The watchdog can be enabled/disabled by software or at power-up (NVM settings):
- Software: set/reset WDG_EN bit at runtime
- NVM: set/reset NVM_WDG_EN bit, then program the NVM
As soon as the watchdog is enabled, the software should periodically set the WDG_RST bit (self-cleared) to reload the timer down counter WDG_TMR_CNT [7:0] with the value defined in the WDG_TMR_SET [7:0] bit field.
The software can read the watchdog timer down counter (WDG_TMR_CNT [7:0]) to check the remaining duration before expiration.
A turn-OFF hard-fault condition occurs if the watchdog timer expires. The turn-off condition is followed by a POWER_DOWN sequence either by a PMIC restart (POWER_UP then POWER_ON) or by the PMIC going into the FAIL_SAFE_LOCK state. (See Fail-safe management for details about the behavior following a turn-off hard-fault event).
Enabling the watchdog (from WDG_EN = 0 to 1) to reload the timer down counter (WDG_TMR_CNT [7:0]) with the value defined in the WDG_TMR_SET [7:0] bit field.
When enabled, the watchdog timer remains active in the POWER_ON state.
The watchdog timer can be disabled at runtime by setting WDG_EN = 0. Alternatively, the watchdog timer is automatically disabled when PMIC goes into the OFF state or the FAIL_SAFE_LOCK state (regardless of turn- OFF condition source).
When enabled (WDG_EN = 1), the watchdog timer can be suspended automatically from one PWRCTRLx signal. The WDG_PWRCTRL_SEL [1:0] bit field allows for the selection of the PWRCTRLx source to suspend the watchdog. It is suitable to automatically suspend/freeze the watchdog when the application is in low-power mode:
- When PWRCTRLx is inactive (the application is running), the watchdog timer down counter is running. The software should set the WDG_RST bit periodically to reload the timer down counter.
- When PWRCTRLx is active (the application is in low-power mode), the watchdog timer down counter is suspended (frozen). When PWRCTRLx becomes inactive (the application leaves the low-power mode), the watchdog down counter restarts from the current WDG_TMR_CNT [7:0] value (counter WDG_TMR_CNT [7:0] is not reloaded from WDG_TMR_SET [7:0] value).
Programming
I²C interface
The I²C interface works in slave mode. It supports both standard and fast modes with a data rate up to 400 Kb/s. It also supports fast mode plus (FM+) with a data rate up to 1 Mb/s, which is a suitable frequency for DVS operations.
Slave address
There is an I²C slave address for the STPMIC1L.
The address is stored in the NVM_I²C_ADDR_SHR[6:0] shadow register bit field. The hard-coded I²C default address defined in the NVM is 0x33.
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
|---|---|---|---|---|---|---|---|
| AddID6 | AddID5 | AddID4 | AddID3 | AddID2 | AddID1 | AddID0 | R/W |
Read/write operation.
Each transaction is composed of a start condition followed by an 8-bit packet number representing either a device ID plus R/W command, register address, or register data coming to/from the slave.
SeeTable 30 . VERSION_SR. An acknowledgment is needed after each packet. This acknowledgment is given by the receiver of the packet. Transaction examples are given in Table 32 TURN_ON_SR and Table 34 TURN_OFF_SR. Multi-read and multi-write operations aresupported.
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
|---|---|---|---|---|---|---|---|
| RegAdd7 | RegAdd6 | RegAdd5 | RegAdd4 | RegAdd3 | RegAdd2 | RegAdd1 | RegAdd0 |
| b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
|---|---|---|---|---|---|---|---|
| DATA7 | DATA6 | DATA5 | DATA4 | DATA3 | DATA2 | DATA1 | DATA0 |