NXP JN5169 電源管理和睡眠模式

2021-10-10 18:17:50 字數 3045 閱讀 6788

二、活動處理模式

三、睡眠模式

四、深度睡眠模式

五、進入睡眠模式和深度睡眠模式

jn5169 提供了三種工作模式,可以控制系統功耗以最大限度地延長電池壽命。

三種模式的功耗變化是由於晶元內具有一系列可通過可控方式導通或關斷電源的電源域而導致的。

jn5169 具有以下電源域:

jn5169 中的活動處理模式是所有應用程式處理發生的地方。 預設情況下,cpu 將以選定的時鐘速度執行應用程式韌體。 所有外圍裝置均可**用程式使用,也可以選擇啟用或禁用它們以控制功耗。

在活動處理模式下,可以選擇 cpu 休眠,但保持晶元其餘部分處於活動狀態。 這對於不需要 cpu 操作的無線電傳送和接收操作特別有用,因此可以節省功耗。

在休眠模式下,cpu 操作停止,但晶元仍保持供電,並且數字外圍裝置繼續執行。 休眠模式通過軟體進入,並通過任何中斷請求終止。 一旦執行了中斷服務程式,便會恢復正常的程式執行。 休眠模式比睡眠和深度睡眠模式使用更多的功率,但是重新啟動所需的時間更少,因此可以用作空閒迴圈的低功耗替代方案。cpu 可以通過呼叫函式 vahi_cpudoze() 來進入休眠模式,之後通過任何乙個中斷退出休眠模式。

在進行 cpu 休眠時,cpu 不會消耗電流,因此基本裝置電流會減小。

jn5169 通過軟體控制進入睡眠模式。 在這種模式下,大多數內部晶元功能都將關閉以節省功耗。 但是,dio 引腳的狀態得以保留,包括輸出值和上拉使能,因此保留了與外界的任何介面。

進入睡眠模式時,可以選擇在整個睡眠期間保留 ram 內容。 如果喚醒定時器不用於喚醒事件,並且應用程式不要求它們連續執行,則可以通過關閉 32 khz 振盪器來節省功率(如果通過軟體控制將其選作 32 khz 系統時鐘) 。 發生喚醒事件時,振盪器將重新啟動。

在睡眠模式下,四個可能的事件之一可能導致喚醒發生:dio 輸入中斷,喚醒定時器中斷,脈衝計數器中斷或比較器中斷。 如果發生這些事件中的任何乙個並且使能了相關的中斷,就會產生乙個中斷,將其從睡眠中喚醒。 多個喚醒源有可能在同一時刻觸發乙個事件,但是只有乙個對喚醒時間負責。 因此,在軟體中有必要在請求重新進入睡眠模式之前刪除所有其他未決的喚醒事件。 否則,裝置將立即喚醒。

發生喚醒時,會發生與復位過程類似的事件序列,包括由電源電壓監視器檢查電源電壓。 高速 rc 振盪器啟動,一旦穩定,便啟用 cpu 系統的電源並清除復位。 軟體確定這是從睡眠中重置的,因此從喚醒過程開始。 如果 ram 內容是通過睡眠儲存的,則喚醒速度更快,因為該軟體無需初始化 ram 內容,這意味著應用程式可以更快地重新啟動。

jn5169 包含兩個 41 位喚醒定時器,它們是由 32 khz 振盪器提供時鐘的計數器,並且可以進行程式設計以產生喚醒事件。 發生喚醒事件後,計時器繼續執行。 計時器事件可以從兩個計時器生成: 乙個供 ieee802.15.4 協議使用,另乙個可供執行在 cpu 上的應用程式使用。 這些計時器可隨時執行,即使在睡眠模式下也可以。

任何 dio 引腳用作輸入時,都有能力通過檢測跳變來產生喚醒事件。 啟用此功能後,即可指定過渡型別(上公升沿或下降沿)。 即使將 dio 線組配置為替代功能(例如 uart 或計時器),該組中的任何輸入線仍可用於提供喚醒事件。 這意味著通過 uart 通訊的外部裝置可以通過置位其 rts 訊號引腳(即 jn5169 的 cts 輸入)來喚醒睡眠裝置。

當正輸入和負輸入的相對電平發生變化時,比較器可以產生喚醒中斷。 連續監視模擬訊號時喚醒的能力在超低功耗應用中很有用。 例如,jn5169 可以保持在睡眠模式,直到電壓下降到閾值以下,然後被喚醒以處理警報情況。 比較器具有低電流模式以簡化此操作。

jn5169 包含兩個 16 位脈衝計數器,可以對其進行程式設計以產生喚醒事件。 在喚醒事件之後,計數器將繼續執行,因此在喚醒過程中不會丟失任何脈衝。為使睡眠電流最小,可以禁用 32 khz rc 振盪器,並且在不需要去抖動模式的情況下,仍可以使用脈衝計數器來引起喚醒事件。

深度睡眠模式提供最低的功耗。 所有可切換電源域均已關閉,並且 vdd 電源電源域中的大多數功能都已停止,包括 32 khz rc 振盪器。 但是,欠壓復位以及所有 dio 單元仍然有效。 可以通過 reset_n 引腳上的硬體復位或啟用的 dio 或比較器喚醒事件來退出該模式。 在所有情況下,喚醒序列都等效於上電序列,不保留裝置先前喚醒時的知識。

當可以選擇4 種睡眠模式中的其中一種時,睡眠模式使用函式 vahi_sleep() 來啟動,選擇哪種睡眠模式取決於 ram 和 32khz 振盪器是否關斷。睡眠過程中 32khz 振盪器和 ram 是否有效如下:

注:正常睡眠模式期間外部 nvm 繼續供電。如果需要,使用者可以使用函式 ahi_flashpowerdown() 來關斷乙個外部 flash 儲存器裝置,如果使用者正在使用乙個相容的 flash 器件,vahi_flashpowerdown() 必須在vahi_sleep() 之前呼叫。

當器件重啟時,在冷啟動或熱啟動入口點開始處理,由器件從中喚醒的睡眠模式決定。

4 種睡眠模式(傳入函式 vahi_sleep() 的引數)

睡眠模式列舉

32khz 振盪器執行狀態

片內 ram 供電開關

冷啟動或熱啟動

e_ahi_sleep_oscon_ramon開開

熱啟動e_ahi_sleep_oscon_ramoff開關

冷啟動e_ahi_sleep_oscoff_ramon關開

熱啟動e_ahi_sleep_oscoff_ramoff關關

冷啟動進入睡眠模式:

vahi_sleep

(e_ahi_sleep_oscon_ramon)

;//模式1

vahi_sleep

(e_ahi_sleep_oscon_ramoff)

;//模式2

vahi_sleep

(e_ahi_sleep_oscoff_ramon)

;//模式3

vahi_sleep

(e_ahi_sleep_oscoff_ramoff)

;//模式4

器件可以通過 reset_n 引腳上的硬體復位或啟用的 dio 中斷或比較器喚醒中斷來退出該模式。

進入深度睡眠模式:

vahi_sleep

(e_ahi_sleep_deep)

;

電源管理 電源變動試驗 CRANKING

需求描述 主機廠一般要求做emc試驗 如掉電試驗 時產品不能復位。比如da跑android系統,重啟的話需要20s左右 比如tbox cranking時候復位了,重啟約要1min 期間不能正常使用,影響使用者體驗。解決辦法 法1 很多情況下都是硬體計算好儲能電容,保證產品掉電後還能給mcu 4g w...

arm電源管理

由於arm系統中沒有bios裝置,所以只能為arm系統建立乙個虛擬的字元裝置與使用者空間進行通訊.這就是 arch arm kernel amp.c 1.工作原理 這個apm中實現乙個misc裝置,實質上也是乙個字元裝置,misc裝置的主裝置號是10,而apm bios作為一 個misc裝置,次裝置...

Andriod 電源管理

android 的電源管理還是比較簡單的 主要就是通過鎖和定時器來切換系統的狀態 使系統的功耗降至最低 整個系統的電源管理架構圖如下 注該圖來自 steve guo static struct platform driver mxcbl driver 取乙個例子 加入suspend 和resume ...