ZHCU917B November 2020 – June 2022 LP8764-Q1 , TPS6594-Q1
本节列出了可用的不同命令和资源。本节内容参考了器件数据表中介绍的 PMIC 指令集。
并非所有命令都适用于所有器件。请参阅器件数据表。
BUCK 资源是汇编指令 REG_WRITE_VCTRL_IMM 和 REG_WRITE_VOUT_IMM 的抽象概念。在“Update action”(更新操作)窗口中选择“VCTRL”或“VOUT”选项卡将确定要应用的指令。每个选项卡中都包含每条指令的各种参数。
BUCKx 命令可用于每个可用的 BUCK。如果 BUCK 是多相的,则分组反映在资源名称中(例如 BUCK1_2_3_4),但“Parameter”窗口中仅显示主 BUCK 信息。在生成的程序中,主 BUCK 将是指令中唯一反映的压降。
BUCK Monitor 是 REG_WRITE_VCTRL_IMM 和 REG_WRITE_VOUT_IMM 指令的特殊子集。未用于该资源的参数是不可选的。“VIN”选项卡相同,但表示监视器电压设置。
与 BUCKx 监视器类似,VMONx 是 LP876x-Q1 系列器件上的专用电压监视器。此资源仅在 GPIO 函数配置为 VMONx 函数时才可用。VMONx 是一个抽象的 REG_WRITE_MASK_IMM,用于寄存器地址 0×2B (VCCA_VMON_CTRL)。
与“BUCK”和“BUCK Monitor”资源类似,这是汇编指令 REG_WRITE_VCTRL_IMM 和 REG_WRITE_VOUT_IMM 的抽象概念。在“Update action”(更新操作)窗口中选择“VCTRL”或“VOUT”选项卡将确定要应用的指令。每个选项卡中包含每条指令的参数。
nRSTOUT 命令写入或清除 MISC_CTRL 寄存器中的 nRSTOUT 位。该命令是应用于寄存器 MISC_CTRL(地址为 0x81)的 REG_WRITE_MASK_IMM 汇编指令的抽象概念。通过选择“unchanged”(未改变)、“high”(高)或“low”(低)来确定数据和掩码。选项 unchanged(未改变)不会产生任何影响,仅作为一个指令周期的延迟。
nRSTOUT_SOC 命令写入或清除 MISC_CTRL 寄存器中的 nRSTOUT_SOC 位。该命令是应用于寄存器 MISC_CTRL(地址为 0x81)的 REG_WRITE_MASK_IMM 汇编指令的抽象概念。通过选择“unchanged”(未改变)、“high”(高)或“low”(低)来确定数据和掩码。选项 unchanged(未改变)不会产生任何影响,仅作为一个指令周期的延迟。
WAIT 命令在指令集中提供条件分支,类似于 if 或 while 语句。当提供超时时,WAIT 条件实际上是一条 if 语句,如果条件为真,则继续执行下一条指令,如果条件为假,则跳转到目标。如果超时不为零,则 PMIC 将等待,直到条件为真,然后执行下一条指令,或直到超时,然后跳转到目标。目标必须始终位于 WAIT 命令之后,因为 WAIT 指令的跳过计数始终为正。在版本 3.0.0 中,超时值必须可以通过电流 PFSM_DELAY_STEP 来实现。如果无法实现超时,GUI 将在 PFSM 验证中返回错误。使用 PFSM_DELAY_STEP 命令以更新 PFSM_DELAY_STEP。
JUMP 命令是 WAIT 命令的特殊实现,其超时时间为 0,并且条件始终为假。目标必须位于 JUMP 命令之后。
RESET_BUCKs 命令直接写入地址 0×87 的 BUCK_RESET_REG 寄存器中。在该命令中,复位是针对每个 BUCK 进行的,即使 BUCK 是多相的,也必须对每个 BUCK 进行配置。RESET_BUCKs 命令被转换为 REG_WRITE_MASK_IMM 命令以寻址 0×87,以清除或设置位 0 至 4(表示 BUCKS 1-5)。
GO_TO_LP_STANDBY 命令直接将 1 写入 LDOINT_CTRL 寄存器中的 LDOINT 禁用位,地址为 0x21。LDOINT 是一个自行清除位。GO_TO_LP_STANDBY 命令被转换为 REG_WRITE_MASK_IMM 命令以寻址 0×21,数据值为 0x01,掩码为 0xFE。
将 SET_WD_LONGWINDOW 命令直接写入 WD_LONGWIN_CFG 寄存器中的 WD_LONGWIN 字段,地址为 0x405。该字段用于对看门狗长窗口的持续时间进行编程。SET_WD_LONGWINDOW 命令被转换为 REG_WRITE_MASK_IMM 命令以寻址 0×405,数据值为 0x00 至 0xFF,掩码为 0x00。 0x00 的值约为 100ms,而 0xFF 的值约为 12 分钟。
GO_TO_LONGWIN 命令直接将 1 写入 WD_MODE_REG 寄存器中的 WD_RETURN_LONGWIN 位,地址为 0x406。此命令将使看门狗在当前看门狗序列完成后返回长窗口。GO_TO_LONGWIN 命令被转换为 REG_WRITE_MASK_IMM 命令以寻址 0x406,数据值为 0x01,掩码为 0xFE。
FIRST_STARTUP_DONE 命令直接将 1 写入 RTC_CTRL_2 寄存器中的 FIRST_STARTUP_DONE 位,地址为 0xC3。FIRST_STARTUP_DONE 命令被转换为 REG_WRITE_MASK_IMM 命令以寻址 0×C3,数据值为 0×80,掩码为 0×7F。
INCREASE_RECOVERY_COUNT 命令直接将 1 写入 RECOV_CNT_PFSM_INCR 中的 INCREASE_RECOVERY_COUNT 位,地址为 0×A5。该位会自行清除,因此每条命令都会使恢复计数器递增。INCREASE_RECOVERY_COUNT 命令被转换为 REG_WRITE_MASK_IMM 指令以寻址 0×A5,数据值为 0x01,掩码为 0xFE。
ACTIVATE 命令是与上电序列相关的若干命令的组合。这些命令包括:
DEACTIVATE 命令是与断电序列相关的几个命令的组合。不建议在多 PMIC 应用中使用此命令。这些命令包括:
不建议将 Deactivate 命令用于多 PMIC 应用。 SPMI_LPM_EN、VCCA_VMON_EN、AMUXOUT_EN/REFOUT_EN、CLKMON_EN 和 LPM_EN 等参数的控制由 ACTIVATE 和 DEACTIVATE 命令抽象。SPMI_LPM_EN 将 SPMI 设置为停止 SPMI WD(总线检测信号)的低功耗模式。在多 PMIC 应用中,必须同时处理 SPMI_LPM_EN 以防止 SPMI WD 故障。因此,为了缓解时钟变化,必须在每个 PMIC 序列中尽早设置和清除 SPMI_LPM_EN 。
LPM_EN 参数将 PMIC 置于低功耗模式。预期的用例是 PFSM 在进入低功耗状态时设置 LPM_EN。最终目标是禁用数字振荡器以减少功耗。有关设置 LPM_EN 时禁用的函数,请参阅数据表。
TO_SAFE | TO_STANDBY | TO_RETENTION | TO_ACTIVE |
---|---|---|---|
SPMI_LPM_EN=1,FORCE_EN_DRV_LOW =1 | SPMI_LPM_EN=1,FORCE_EN_DRV_LOW =1 | nRSTOUT = 0,nRSTOUT_SOC=0 | LPM_EN=0,AMUXOUT_EN = 1,CLKMON_EN = 1 |
nRSTOUT = 0,nRSTOUT_SOC=0 | nRSTOUT = 0,nRSTOUT_SOC=0 | SPMI_LPM_EN=1,FORCE_EN_DRV_LOW =1 | SPMI_LPM_EN = 0 |
... | ... | ... | ... |
LPM_EN=1,AMUXOUT_EN = 0,CLKMON_EN = 0 | LPM_EN=1,AMUXOUT_EN = 0,CLKMON_EN = 0 | LPM_EN=1,AMUXOUT_EN = 0,CLKMON_EN = 0 | FORCE_EN_DRV_LOW =0 |
nRSTOUT = 1,nRSTOUT_SOC=1 |
多 PMIC 解决方案的关键要求是 SPMI_LPM_EN 应首先出现,而 LPM_EN 应在序列最后出现。因为 DEACTIVATE 命令将 LPM_EN 和 SPMI_LPM_EN 封装在一组执行中,因此,在开头或结束时放置 DEACTIVATE 将违反其中一个要求。
ENDRV 命令是直接写入 ENABLE_DRV_STAT 寄存器中的 FORCE_EN_DRV_LOW 位,地址 0×82。ENDRV 命令被转换为 REG_WRITE_MASK_IMM 命令,地址为 0×82,数据值为 0×08 或 0×00,掩码为 0×F7。
DELAY_IMM 命令是 DELAY_IMM 指令的直接表示。该命令中指定的延迟应用于所有器件。在版本 3.0.0 中,如果现有 PFSM_STEP_SIZE 无法实现 DELAY_IMM 的大小,GUI 将不再自动调整 PFSM_STEP_SIZE。用户负责管理所需延迟的 PFSM_STEP_SIZE。这也适用于所有具有定时元件的指令。如果无法实现延迟,会在 PFSM 验证中提供错误。
REG_WRITE_MASK_IMM 命令是 REG_WRITE_MASK_IMM 指令的直接表示。REG_WRITE_MASK_IMM 命令包含一个掩码,用于在不影响寄存器中的其他位的情况下写入或清除特定的位。
TRIG_MASK 命令是 TRIG_MASK 指令的直接表示。触发条件掩码将决定要启用和禁用的中断。如果使用自动触发条件,则会根据“TARGET STATE”中的触发条件设置来设置触发条件。
REG_WRITE_IMM 命令是 REG_WRITE_IMM 指令的直接表示。REG_WRITE_IMM 命令覆盖指定的寄存器中的所有位。
REG_WRITE_MASK_SREG 命令是 REG_WRITE_ MASK_SREG 指令的直接表示。REG_WRITE_MASK_SREG 命令包含一个掩码,用于在不影响寄存器中的其他位的情况下写入或清除特定位。数据来自指定的擦除寄存器。
SREG_READ_REG 命令是 SREG_READ_REG 指令的直接表示。该命令将寄存器的内容复制到指定的擦除寄存器。
SREG_WRITE_IMM 命令是 SREG_WRITE_IMM 指令的直接表示。
DELAY_SREG 命令是 DELAY_SREG 指令的直接表示。该延迟不同于资源和命令中的其他延迟。该延迟仅应用于指定的器件。
PFSM_DELAY_STEP 是写入 PFSM_DELAY_STEP 寄存器的 SET_DELAY 指令的直接表示。
END 命令是 END 指令的直接表示。这可以用于终止在 PFSM 序列中使用 JUMP 和 WAIT 命令创建分支。