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 指令的特殊子集。未用于該資源的參數是不可選的?!癡IN”選項卡相同,但表示監視器電壓設置。
與 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 命令創建分支。