ZHCU917B November 2020 – June 2022 LP8764-Q1 , TPS6594-Q1
本節(jié)列出了可用的不同命令和資源。本節(jié)內(nèi)容參考了器件數(shù)據(jù)表中介紹的 PMIC 指令集。
并非所有命令都適用于所有器件。請參閱器件數(shù)據(jù)表。
BUCK 資源是匯編指令 REG_WRITE_VCTRL_IMM 和 REG_WRITE_VOUT_IMM 的抽象概念。在“Update action”(更新操作)窗口中選擇“VCTRL”或“VOUT”選項(xiàng)卡將確定要應(yīng)用的指令。每個(gè)選項(xiàng)卡中都包含每條指令的各種參數(shù)。
BUCKx 命令可用于每個(gè)可用的 BUCK。如果 BUCK 是多相的,則分組反映在資源名稱中(例如 BUCK1_2_3_4),但“Parameter”窗口中僅顯示主 BUCK 信息。在生成的程序中,主 BUCK 將是指令中唯一反映的壓降。
BUCK Monitor 是 REG_WRITE_VCTRL_IMM 和 REG_WRITE_VOUT_IMM 指令的特殊子集。未用于該資源的參數(shù)是不可選的。“VIN”選項(xiàng)卡相同,但表示監(jiān)視器電壓設(shè)置。
與 BUCKx 監(jiān)視器類似,VMONx 是 LP876x-Q1 系列器件上的專用電壓監(jiān)視器。此資源僅在 GPIO 函數(shù)配置為 VMONx 函數(shù)時(shí)才可用。VMONx 是一個(gè)抽象的 REG_WRITE_MASK_IMM,用于寄存器地址 0×2B (VCCA_VMON_CTRL)。
與“BUCK”和“BUCK Monitor”資源類似,這是匯編指令 REG_WRITE_VCTRL_IMM 和 REG_WRITE_VOUT_IMM 的抽象概念。在“Update action”(更新操作)窗口中選擇“VCTRL”或“VOUT”選項(xiàng)卡將確定要應(yīng)用的指令。每個(gè)選項(xiàng)卡中包含每條指令的參數(shù)。
nRSTOUT 命令寫入或清除 MISC_CTRL 寄存器中的 nRSTOUT 位。該命令是應(yīng)用于寄存器 MISC_CTRL(地址為 0x81)的 REG_WRITE_MASK_IMM 匯編指令的抽象概念。通過選擇“unchanged”(未改變)、“high”(高)或“l(fā)ow”(低)來確定數(shù)據(jù)和掩碼。選項(xiàng) unchanged(未改變)不會(huì)產(chǎn)生任何影響,僅作為一個(gè)指令周期的延遲。
nRSTOUT_SOC 命令寫入或清除 MISC_CTRL 寄存器中的 nRSTOUT_SOC 位。該命令是應(yīng)用于寄存器 MISC_CTRL(地址為 0x81)的 REG_WRITE_MASK_IMM 匯編指令的抽象概念。通過選擇“unchanged”(未改變)、“high”(高)或“l(fā)ow”(低)來確定數(shù)據(jù)和掩碼。選項(xiàng) unchanged(未改變)不會(huì)產(chǎn)生任何影響,僅作為一個(gè)指令周期的延遲。
WAIT 命令在指令集中提供條件分支,類似于 if 或 while 語句。當(dāng)提供超時(shí)時(shí),WAIT 條件實(shí)際上是一條 if 語句,如果條件為真,則繼續(xù)執(zhí)行下一條指令,如果條件為假,則跳轉(zhuǎn)到目標(biāo)。如果超時(shí)不為零,則 PMIC 將等待,直到條件為真,然后執(zhí)行下一條指令,或直到超時(shí),然后跳轉(zhuǎn)到目標(biāo)。目標(biāo)必須始終位于 WAIT 命令之后,因?yàn)?WAIT 指令的跳過計(jì)數(shù)始終為正。在版本 3.0.0 中,超時(shí)值必須可以通過電流 PFSM_DELAY_STEP 來實(shí)現(xiàn)。如果無法實(shí)現(xiàn)超時(shí),GUI 將在 PFSM 驗(yàn)證中返回錯(cuò)誤。使用 PFSM_DELAY_STEP 命令以更新 PFSM_DELAY_STEP。
JUMP 命令是 WAIT 命令的特殊實(shí)現(xiàn),其超時(shí)時(shí)間為 0,并且條件始終為假。目標(biāo)必須位于 JUMP 命令之后。
RESET_BUCKs 命令直接寫入地址 0×87 的 BUCK_RESET_REG 寄存器中。在該命令中,復(fù)位是針對每個(gè) BUCK 進(jìn)行的,即使 BUCK 是多相的,也必須對每個(gè) BUCK 進(jìn)行配置。RESET_BUCKs 命令被轉(zhuǎn)換為 REG_WRITE_MASK_IMM 命令以尋址 0×87,以清除或設(shè)置位 0 至 4(表示 BUCKS 1-5)。
GO_TO_LP_STANDBY 命令直接將 1 寫入 LDOINT_CTRL 寄存器中的 LDOINT 禁用位,地址為 0x21。LDOINT 是一個(gè)自行清除位。GO_TO_LP_STANDBY 命令被轉(zhuǎn)換為 REG_WRITE_MASK_IMM 命令以尋址 0×21,數(shù)據(jù)值為 0x01,掩碼為 0xFE。
將 SET_WD_LONGWINDOW 命令直接寫入 WD_LONGWIN_CFG 寄存器中的 WD_LONGWIN 字段,地址為 0x405。該字段用于對看門狗長窗口的持續(xù)時(shí)間進(jìn)行編程。SET_WD_LONGWINDOW 命令被轉(zhuǎn)換為 REG_WRITE_MASK_IMM 命令以尋址 0×405,數(shù)據(jù)值為 0x00 至 0xFF,掩碼為 0x00。 0x00 的值約為 100ms,而 0xFF 的值約為 12 分鐘。
GO_TO_LONGWIN 命令直接將 1 寫入 WD_MODE_REG 寄存器中的 WD_RETURN_LONGWIN 位,地址為 0x406。此命令將使看門狗在當(dāng)前看門狗序列完成后返回長窗口。GO_TO_LONGWIN 命令被轉(zhuǎn)換為 REG_WRITE_MASK_IMM 命令以尋址 0x406,數(shù)據(jù)值為 0x01,掩碼為 0xFE。
FIRST_STARTUP_DONE 命令直接將 1 寫入 RTC_CTRL_2 寄存器中的 FIRST_STARTUP_DONE 位,地址為 0xC3。FIRST_STARTUP_DONE 命令被轉(zhuǎn)換為 REG_WRITE_MASK_IMM 命令以尋址 0×C3,數(shù)據(jù)值為 0×80,掩碼為 0×7F。
INCREASE_RECOVERY_COUNT 命令直接將 1 寫入 RECOV_CNT_PFSM_INCR 中的 INCREASE_RECOVERY_COUNT 位,地址為 0×A5。該位會(huì)自行清除,因此每條命令都會(huì)使恢復(fù)計(jì)數(shù)器遞增。INCREASE_RECOVERY_COUNT 命令被轉(zhuǎn)換為 REG_WRITE_MASK_IMM 指令以尋址 0×A5,數(shù)據(jù)值為 0x01,掩碼為 0xFE。
ACTIVATE 命令是與上電序列相關(guān)的若干命令的組合。這些命令包括:
DEACTIVATE 命令是與斷電序列相關(guān)的幾個(gè)命令的組合。不建議在多 PMIC 應(yīng)用中使用此命令。這些命令包括:
不建議將 Deactivate 命令用于多 PMIC 應(yīng)用。 SPMI_LPM_EN、VCCA_VMON_EN、AMUXOUT_EN/REFOUT_EN、CLKMON_EN 和 LPM_EN 等參數(shù)的控制由 ACTIVATE 和 DEACTIVATE 命令抽象。SPMI_LPM_EN 將 SPMI 設(shè)置為停止 SPMI WD(總線檢測信號(hào))的低功耗模式。在多 PMIC 應(yīng)用中,必須同時(shí)處理 SPMI_LPM_EN 以防止 SPMI WD 故障。因此,為了緩解時(shí)鐘變化,必須在每個(gè) PMIC 序列中盡早設(shè)置和清除 SPMI_LPM_EN 。
LPM_EN 參數(shù)將 PMIC 置于低功耗模式。預(yù)期的用例是 PFSM 在進(jìn)入低功耗狀態(tài)時(shí)設(shè)置 LPM_EN。最終目標(biāo)是禁用數(shù)字振蕩器以減少功耗。有關(guān)設(shè)置 LPM_EN 時(shí)禁用的函數(shù),請參閱數(shù)據(jù)表。
| TO_SAFE | TO_STANDBY | TO_RETENTION | TO_ACTIVE |
|---|---|---|---|
| SPMI_LPM_EN=1,F(xiàn)ORCE_EN_DRV_LOW =1 | SPMI_LPM_EN=1,F(xiàn)ORCE_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,F(xiàn)ORCE_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 解決方案的關(guān)鍵要求是 SPMI_LPM_EN 應(yīng)首先出現(xiàn),而 LPM_EN 應(yīng)在序列最后出現(xiàn)。因?yàn)?DEACTIVATE 命令將 LPM_EN 和 SPMI_LPM_EN 封裝在一組執(zhí)行中,因此,在開頭或結(jié)束時(shí)放置 DEACTIVATE 將違反其中一個(gè)要求。
ENDRV 命令是直接寫入 ENABLE_DRV_STAT 寄存器中的 FORCE_EN_DRV_LOW 位,地址 0×82。ENDRV 命令被轉(zhuǎn)換為 REG_WRITE_MASK_IMM 命令,地址為 0×82,數(shù)據(jù)值為 0×08 或 0×00,掩碼為 0×F7。
DELAY_IMM 命令是 DELAY_IMM 指令的直接表示。該命令中指定的延遲應(yīng)用于所有器件。在版本 3.0.0 中,如果現(xiàn)有 PFSM_STEP_SIZE 無法實(shí)現(xiàn) DELAY_IMM 的大小,GUI 將不再自動(dòng)調(diào)整 PFSM_STEP_SIZE。用戶負(fù)責(zé)管理所需延遲的 PFSM_STEP_SIZE。這也適用于所有具有定時(shí)元件的指令。如果無法實(shí)現(xiàn)延遲,會(huì)在 PFSM 驗(yàn)證中提供錯(cuò)誤。
REG_WRITE_MASK_IMM 命令是 REG_WRITE_MASK_IMM 指令的直接表示。REG_WRITE_MASK_IMM 命令包含一個(gè)掩碼,用于在不影響寄存器中的其他位的情況下寫入或清除特定的位。
TRIG_MASK 命令是 TRIG_MASK 指令的直接表示。觸發(fā)條件掩碼將決定要啟用和禁用的中斷。如果使用自動(dòng)觸發(fā)條件,則會(huì)根據(jù)“TARGET STATE”中的觸發(fā)條件設(shè)置來設(shè)置觸發(fā)條件。
REG_WRITE_IMM 命令是 REG_WRITE_IMM 指令的直接表示。REG_WRITE_IMM 命令覆蓋指定的寄存器中的所有位。
REG_WRITE_MASK_SREG 命令是 REG_WRITE_ MASK_SREG 指令的直接表示。REG_WRITE_MASK_SREG 命令包含一個(gè)掩碼,用于在不影響寄存器中的其他位的情況下寫入或清除特定位。數(shù)據(jù)來自指定的擦除寄存器。
SREG_READ_REG 命令是 SREG_READ_REG 指令的直接表示。該命令將寄存器的內(nèi)容復(fù)制到指定的擦除寄存器。
SREG_WRITE_IMM 命令是 SREG_WRITE_IMM 指令的直接表示。
DELAY_SREG 命令是 DELAY_SREG 指令的直接表示。該延遲不同于資源和命令中的其他延遲。該延遲僅應(yīng)用于指定的器件。
PFSM_DELAY_STEP 是寫入 PFSM_DELAY_STEP 寄存器的 SET_DELAY 指令的直接表示。
END 命令是 END 指令的直接表示。這可以用于終止在 PFSM 序列中使用 JUMP 和 WAIT 命令創(chuàng)建分支。