系统要求的上电时序如下:使能拉起->BUCK1上电->
延时2000us->BUCK2上电->
延时2000us->BUCK3上电->
延时2000us ->BUCK4上电->
延时2000us ->外部LDO上电
-> 延时2000us
->外部LDO上电,下电时序和上电时序完全相反。
结合前面的电源rail
group设置,安排以下几个PFSM状态:
-
PFSM_START:PFSM的开始位置,是FFSM和PFSM的桥梁状态。
- WAIT4ENABLE:PFSM
START到ACTIVE之间的状态,PMIC电源轨无输出,可以在进入此状态过程中完成器件的一些初始化动作。
-
ACTIVE:系统正常工作状态,所有电源轨都正常输出。
-
STANDBY:系统休眠状态,所有电源关闭。
- MCU_ONLY:MCU
only模式,仅BUCK1的3.3V有输出。
- TO_SAFE:是PFSM中到FFSM的SAFE
RERCOVERY状态的桥梁。
-
RUNTIME_BIST:由MCU主动触发的BIST动作。
设定好了状态,需要规划切换状态的trigger:
-
ENABLE拉起作为启动进入ACTIVE的条件。
- SOC power error 和I2C
trigger0置位作为ACTIVE进入MCU
ONLY的条件。
- ENABLE拉低和I2C
trigger2置位作为ACTIVE/MCU
ONLY进入STANDBY的条件。
- ENABLE拉起和I2C
trigger1置位作为STANDBY/MCU
ONLY恢复到ACTIVE的条件。
- I2C
trigger3置位作为进入RUNTIME
BIST的条件。
- MCU POWER ERROR、ORDERLY SHUTDOWN和IMMEDIATE
SHUTDOWN作为进入SAFE
RECOVERY的条件。
-
GPIO9下降沿作为ANY2WARM的触发。
设定好了状态和trigger,还需要设置状态切换时PMIC的动作,即上下电时序:
-
WAIT4ENABLE时序,进入WAIT4ENABLE状态时执行,这个应用里面设置了使能
VCCA 的VMON。
- ANY2ACTIVE时序,
进入ACTIVE状态时运行。时序为BUCK1
rise-> 2000us delay-> BUCK2 rise-> 2000us delay-> BUCK3
rise-> 2000us delay-> BUCK4 rise-> 2000us delay-> GPIO1
rise-> 2000us delay-> GPIO2 rise-> 30ms delay-> VMON1
enable-> 30ms delay-> VMON2 enable-> nRSTOUT rise
这里考虑到外部的LDO和BOOST上电斜率比较慢,需要额外的延时才能确保输出电压稳定在预期值,因此,在GPIO2拉起后增加额外的30ms和60ms延时。
-
ANY2MCU时序,从ACTIVE进入MCU
ONLY状态时执行,时序为
VMON2 disable-> 30ms delay -> VMON1 disable-> 30ms delay
->GPIO2 down-> 2000us delay-> GPIO1 down-> 2000us
delay-> BUCK4 off-> 2000us delay -> BUCK3 off-> 2000us
delay-> BUCK2 off
- ORDERLYOFF 时序,从ACTIVE/MCU
ONLY状态到STANDBY状态时执行,时序为
nRSTOUT down-> VMON2 disable-> 30ms delay -> VMON1
disable-> 30ms delay ->GPIO2 down-> 2000us delay->
GPIO1 down-> 2000us delay-> BUCK4 off-> 2000us delay ->
BUCK3 off-> 2000us delay-> BUCK2 off-> 2000us delay->
BUCK1 off
-
ORDERLYOFF2SAFE时序,从任意状态切换到TO
SAFE状态执行,时序同ORDERLYOFF。
- IMMEDIATELYOFF2SAFE时序,
从任意状态切换到TO
SAFE状态执行,立即关闭所有电源轨。
- ANY2WARM时序,在ACTIVE和MCU
ONLY模式使用,复位当前使能的BUCK并toggle
nRSTOUT以复位MCU。
最终的状态机如图 2-10所示。