SX1262 實驗室 #8:貪睡的藝術 —— 160nA 極致省電與暖啟動 (Warm Start)

更新 發佈閱讀 10 分鐘

作者:ZeroGrid實驗室

🎯 本篇目標

  1. 數據闢謠:SX1262 到底多耗電?RX 5mA vs Sleep 160nA 的巨大鴻溝。
  2. 指令解密:深入解析 SetSleep 的位元操作,什麼是 Retention RAM
  3. 喚醒機制:為什麼睡眠時晶片是「聾」的?如何用 NSS 的下降緣 (Falling Edge) 叫醒它?
  4. 實驗驗證:不靠昂貴的電流鉤表,用程式邏輯證明「暖啟動」是否成功。

1. 前言:IoT 的宿命是等待

如果你的 LoRa 裝置是用電池供電的(例如 18650 或鈕扣電池),你必須認清一個殘酷的現實:裝置 99% 的時間都必須在睡覺

我們來看看 SX1262 的三種狀態電流對比:

  • RX (接收模式):約 5 ~ 8 mA
    • (取決於是否開啟 DC-DC Converter)。
  • TX (發射模式):約 118 mA (典型值 @ +22dBm)。
    • 系統設計通常會預留到 140mA 以策安全。
  • Sleep (睡眠模式)160 nA (0.00016 mA)。

160 nA 是什麼概念?它比接收模式省電 30,000 倍。 掌握睡眠模式,是你的產品能用「天」計算壽命,還是用「年」計算壽命的關鍵分水嶺。


2. 深入底層:怎麼睡進去? (Enter Sleep)

SX1262 不會自己睡著,MCU 必須透過 SPI 發送指令 0x84 (SetSleep) 強制它去睡。 這個指令後面必須跟著一個 Byte 的設定值:SleepConfig

很多開發者只知道填 0x00 或 0x04,卻不知道背後的意義。讓我們拆解這個 Byte:

SleepConfig Byte 解析

  • Bit 2: Warm Start (暖啟動控制) —— 這是最關鍵的位元!
    • 設定為 1 (0x04)保留記憶模式。晶片進入睡眠,但保留 Retention RAM 的供電。這意味著你的頻率設定、擴頻因子 (SF)、Sync Word 等參數都會被鎖在記憶體裡。醒來後可以直接發射,無需重新初始化。
    • 設定為 0 (0x00)斷電重置模式。晶片完全斷電(除了喚醒電路)。醒來後,所有暫存器變回原廠預設值,你必須重新跑一次初始化流程 (Init)。
  • Bit 0: Wake Up RTC (RTC 喚醒)
    • 設定為 1:使用晶片內部的 Timer 定時喚醒。
    • 設定為 0:停用內部 Timer,完全依賴外部 MCU 叫醒它 (最省電)。

實驗室建議設定

我們通常使用 Warm Start (0x04)。 因為 LoRa 參數配置很繁瑣,保留記憶可以讓裝置在喚醒後 0.5ms 內 就準備好發射,大幅降低喚醒過程的功耗。

💻 代碼邏輯:SetSleep

C

// 讓 SX1262 進入睡眠
// is_warm_start: 決定是否保留暫存器設定
void SX1262_SetSleep(bool is_warm_start) {
// 構造 Config Byte
// 如果是暖啟動,Bit 2 設為 1 (0x04)
// 如果是冷啟動,Bit 2 設為 0 (0x00)
uint8_t sleep_config = is_warm_start ? 0x04 : 0x00;

// 發送指令 0x84
SX1262_WriteCmd(0x84, &sleep_config, 1);
}

3. 物理機制:怎麼醒過來? (Wake Up)

這部分是新手最容易卡關的地方。 請記住:在睡眠模式下,SX1262 的 SPI 介面是「聾」的。

晶片內部的數位電路時脈 (Clock) 已經停止,它無法解讀你送過來的 SPI 指令(MOSI/SCK 對它來說只是無意義的電位跳動)。

喚醒的唯一途徑:NSS 下降緣

Datasheet 明確指出:"The chip wakes up from Sleep mode when the NSS pin is driven low."

晶片內部保留了一個極低功耗的類比電路,專門監控 NSS (Chip Select) 腳位。當它偵測到 NSS 從 High 變成 Low (Falling Edge) 時,會觸發電源管理單元 (PMU) 重啟主振盪器 (RC Oscillator)。

標準喚醒時序 (Sequence)

  1. 拉低 NSS (Drive Low):MCU 將 CS 腳位拉低。
  2. 保持 (Hold):雖然 Datasheet 說瞬間即可,但為了訊號穩定,建議保持 Low 至少 20~50µs。
  3. 釋放 NSS (Release):將 CS 拉回 High。
  4. 等待忙碌訊號 (Wait BUSY)這是最重要的一步。 晶片醒來後,需要時間啟動 LDO、校正 RC 振盪器。這段期間 BUSY 腳位會保持 High。 MCU 必須死盯著 BUSY 腳位,直到它變回 Low,才能發送下一道指令(例如 SetRx)。

💻 代碼實作:Wakeup

C

void SX1262_Wakeup(void) {
// 1. 物理敲門:產生 NSS Falling Edge
gpio_put(PIN_CS, 0);

// 保持一下,確保觸發內部喚醒電路
sleep_us(100);

// 釋放
gpio_put(PIN_CS, 1);

// 2. 等待起床氣:晶片初始化期間 BUSY 會是 High
// 必須等到 BUSY 變 Low 才能繼續操作
SX1262_WaitBusy();

// 醒來後,晶片預設處於 RC Standby 模式
}

4. 韌體架構:如何安全地入睡?

寫程式不能只管驅動層,應用層的邏輯更重要。 如果你的 MCU 還有背景任務(例如每 60 秒發送一次心跳包或感測器數據),你必須確保在晶片睡覺時,這些任務絕對不能去動 SPI

否則,當時間一到,背景任務嘗試發送 SPI 指令時,會發生兩個災難:

  1. 喚醒失敗:因為沒有照標準喚醒流程,指令被晶片吃掉。
  2. 通訊錯亂:晶片被意外的 SPI 訊號吵醒,處於不穩定的狀態。

狀態機保護機制 (State Machine Protection)

  1. 定義狀態旗標:在主程式中,你需要一個變數來記錄目前的 RF 狀態(例如 IdleTxRxSleep)。
  2. 鎖定背景任務: 當使用者下達 /sleep 指令時,將狀態旗標切換為 Sleep Mode。 在主迴圈 (main loop) 中,執行背景任務前必須先檢查這個旗標:

如果系統處於 Sleep Mode,則跳過所有週期性發送任務(如 Heartbeat、Beacon)。

這樣能確保 MCU 尊重晶片的睡眠時間,直到使用者手動喚醒為止。


5. 實驗驗證:如何證明記憶還在?

很多工程師問:「我怎麼知道 記憶保持 (Warm Start) 真的有效?也許晶片其實重置了,只是我不知道?」

我們不需要昂貴的電流鉤表,只要利用 暫存器殘留值 就能證明。 SX1262 有一個同步字暫存器 0x0740 (Sync Word MSB),原廠預設值是 0x14

🧪 實驗 A:暖啟動測試 (Warm Start)

  1. 竄改記憶:使用指令將 Sync Word 改為 0x33
    • 指令:/reg write 0740 33
  2. 保留記憶睡眠:發送指令讓晶片進入 Warm Sleep (0x04)。
    • 指令:/sleep warm
  3. 喚醒晶片:觸發 NSS 喚醒序列。
    • 指令:/wake
  4. 檢查記憶:讀取 0x0740 的值。
    • 指令:/reg read 0740
    • 結果驗證:如果讀回來是 0x33,代表記憶體在睡眠期間有持續供電,暖啟動成功!

🧪 實驗 B:冷啟動測試 (Cold Start)

  1. 竄改記憶:同樣將 Sync Word 改為 0x33
  2. 斷電睡眠:發送指令讓晶片進入 Cold Sleep (0x00)。
    • 指令:/sleep cold
  3. 喚醒晶片:觸發 NSS 喚醒序列。
  4. 檢查記憶:讀取 0x0740 的值。
    • 結果驗證:讀回來會變回原廠預設值 0x14。這證明晶片經歷了 Reset,所有設定都遺失了。

下一課預告

我們現在學會了怎麼讓晶片「秒睡秒醒」。 但在它醒來開始發射訊號的那一瞬間 (SetTx),如果功率直接從 0 跳到 22dBm,會在頻譜上產生一個巨大的「突波 (Glitch)」,干擾隔壁頻道的通訊,甚至損壞功率放大器。

下一篇 #9 射頻的細節,我們將探討 PA Ramping (功率爬升時間) 的設定,以及如何設定 Rx Timeout 來防止接收死鎖,這是讓你的裝置從「能用」變成「專業」的最後一哩路。

留言
avatar-img
ZeroGrid 實驗室
0會員
13內容數
專注於災難復原通訊與 LoRa 網狀網絡實驗。尋找倖存者。
ZeroGrid 實驗室的其他內容
2026/01/18
作者:ZeroGrid 實驗室 🎯 本篇目標 倉庫地圖:深入理解 256 Bytes Data Buffer 的記憶體配置 (TxBaseAddress vs RxBaseAddress)。 聽懂門鈴:解析 IRQ (中斷) 的觸發邏輯,特別是 RxDone, CrcErr, HeaderE
Thumbnail
2026/01/18
作者:ZeroGrid 實驗室 🎯 本篇目標 倉庫地圖:深入理解 256 Bytes Data Buffer 的記憶體配置 (TxBaseAddress vs RxBaseAddress)。 聽懂門鈴:解析 IRQ (中斷) 的觸發邏輯,特別是 RxDone, CrcErr, HeaderE
Thumbnail
2026/01/18
作者:ZeroGrid 實驗室 🎯 本篇目標 聽覺特訓:分清楚「現在有多吵」(0x15) 與「剛才那句話有多清楚」(0x14) 的差別。 應用指南:給你一張「訊號指標選用表」,告訴你什麼時候看 RSSI,什麼時候看 SNR。 空中交通規則:深入理解 LBT (Listen Before T
2026/01/18
作者:ZeroGrid 實驗室 🎯 本篇目標 聽覺特訓:分清楚「現在有多吵」(0x15) 與「剛才那句話有多清楚」(0x14) 的差別。 應用指南:給你一張「訊號指標選用表」,告訴你什麼時候看 RSSI,什麼時候看 SNR。 空中交通規則:深入理解 LBT (Listen Before T
2026/01/18
作者:ZeroGrid 實驗室 🎯 本篇目標 透視信封:看懂 LoRa 封包的五大結構與 Header 內部秘密。 看見聲音:想像 Preamble 在頻譜上的形狀。 鏡像世界:理解 IQ Inverted 的原理與用途。 錯誤診斷:當 Sync Word 錯、Header 爛掉或 CR
Thumbnail
2026/01/18
作者:ZeroGrid 實驗室 🎯 本篇目標 透視信封:看懂 LoRa 封包的五大結構與 Header 內部秘密。 看見聲音:想像 Preamble 在頻譜上的形狀。 鏡像世界:理解 IQ Inverted 的原理與用途。 錯誤診斷:當 Sync Word 錯、Header 爛掉或 CR
Thumbnail
看更多
你可能也想看
Thumbnail
#振樺電 這次回測到第一階段滿足位置160~165元範圍 現在就看能不能挑戰第二階段滿足220~230 持續享受過程,無人商機就是操作到沒有想像風報比為止 只有贏家能享受過程,任何未來產業都是如此 從113操作到現在已經不需要過多的分析跟策略
Thumbnail
#振樺電 這次回測到第一階段滿足位置160~165元範圍 現在就看能不能挑戰第二階段滿足220~230 持續享受過程,無人商機就是操作到沒有想像風報比為止 只有贏家能享受過程,任何未來產業都是如此 從113操作到現在已經不需要過多的分析跟策略
Thumbnail
能源之星X是一個Github上的專案,主要用來提升Windows 11裝置的電池續航時間,可以省去出門在外需要頻繁充電的麻煩,延長使用時間。
Thumbnail
能源之星X是一個Github上的專案,主要用來提升Windows 11裝置的電池續航時間,可以省去出門在外需要頻繁充電的麻煩,延長使用時間。
Thumbnail
你是否曾經想早睡早起,卻一直滑手機,結果隔天上班睡過頭遲到;想著要用功念書,卻忍不住一滑再滑,結果幾個小時就過去。 明明手機為現代人帶來方便的生活,但就是如此方便的手機,也令我們深陷其中無法自拔。 若你曾經有過這些經驗,那麼你該看看這本書,讓你擺脫手機腦,找回人生的掌控權。
Thumbnail
你是否曾經想早睡早起,卻一直滑手機,結果隔天上班睡過頭遲到;想著要用功念書,卻忍不住一滑再滑,結果幾個小時就過去。 明明手機為現代人帶來方便的生活,但就是如此方便的手機,也令我們深陷其中無法自拔。 若你曾經有過這些經驗,那麼你該看看這本書,讓你擺脫手機腦,找回人生的掌控權。
Thumbnail
電池續航對於筆電來說可說是在重要不過了,出門在外的我們都希望在非高負載下電腦盡可能省電來換取更長使用時間,這樣可以降低找插座充電的頻率。只不過剛安裝好的Linux的筆電可不是這麼一回事......
Thumbnail
電池續航對於筆電來說可說是在重要不過了,出門在外的我們都希望在非高負載下電腦盡可能省電來換取更長使用時間,這樣可以降低找插座充電的頻率。只不過剛安裝好的Linux的筆電可不是這麼一回事......
Thumbnail
最近總有疑惑,為何我的手機總是耗電太快,一天要充二次電,查詢網路資訊能關的都關了,電力還是消耗很快,過了好久,今天不經意的查到瀏覽器網頁開太多沒關,雖然把瀏覽器關了,它還是會快速用電,看到這個訊息,還沒測試是否真的是原因,但我想到的是使用習慣問題。 為何我會開那麼多畫面都不關呢?這些畫面資訊,對我
Thumbnail
最近總有疑惑,為何我的手機總是耗電太快,一天要充二次電,查詢網路資訊能關的都關了,電力還是消耗很快,過了好久,今天不經意的查到瀏覽器網頁開太多沒關,雖然把瀏覽器關了,它還是會快速用電,看到這個訊息,還沒測試是否真的是原因,但我想到的是使用習慣問題。 為何我會開那麼多畫面都不關呢?這些畫面資訊,對我
Thumbnail
❗六合一 大容量 15000mAH 行動電源 自帶線 自帶插頭 QC3.0 雙向快充 22.5W 📌BSMI認證 台灣出貨 📌支援蘋果及type c #Pp貓 #BSMI認證 #台灣出貨 #行動電源 #自帶線 #口袋行動 #蘋果 #type_c #充電寶 #渣男行動電源 #KCS #大
Thumbnail
❗六合一 大容量 15000mAH 行動電源 自帶線 自帶插頭 QC3.0 雙向快充 22.5W 📌BSMI認證 台灣出貨 📌支援蘋果及type c #Pp貓 #BSMI認證 #台灣出貨 #行動電源 #自帶線 #口袋行動 #蘋果 #type_c #充電寶 #渣男行動電源 #KCS #大
Thumbnail
你都會在手機什麼時候充電呢? 剩10%? 剩50%? 還是最後3% 因為手機沒電讓你很不方便,所以你會記得充電... 那你自己呢? 短暫的閃過一個節目,看到一段很值得分享的一句話.... 如果錢花在對的地方,那麼將會有更多正向的金錢流向你~給願意花時間充電的你。 我們就跟手機一樣
Thumbnail
你都會在手機什麼時候充電呢? 剩10%? 剩50%? 還是最後3% 因為手機沒電讓你很不方便,所以你會記得充電... 那你自己呢? 短暫的閃過一個節目,看到一段很值得分享的一句話.... 如果錢花在對的地方,那麼將會有更多正向的金錢流向你~給願意花時間充電的你。 我們就跟手機一樣
Thumbnail
也是有能量很低的時候, 沒能多寫兩個字,連看點什麼都是煩躁, 「來,來,來。再試一次看看吧!」 自我鼓勵,更像是催命符, 好似即刻隨意點下一個按鍵,就會原地爆炸的毀滅。 所有的所有,灰飛煙滅。 會錯過打招呼的時間點,面無表情地經過所有的誰。 失去對進食的快樂,連當沙發馬鈴薯都嫌熱。 身體非
Thumbnail
也是有能量很低的時候, 沒能多寫兩個字,連看點什麼都是煩躁, 「來,來,來。再試一次看看吧!」 自我鼓勵,更像是催命符, 好似即刻隨意點下一個按鍵,就會原地爆炸的毀滅。 所有的所有,灰飛煙滅。 會錯過打招呼的時間點,面無表情地經過所有的誰。 失去對進食的快樂,連當沙發馬鈴薯都嫌熱。 身體非
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News