nrf52832芯片手册_nRF52832低功耗问题不完全总结
0.前言
技術和經歷經驗都有限,以下內容僅供初學者參考和個人總結記錄,不定期更新。
都是使能協議棧開啟BLE廣播的情況
協議棧:s132_nrf52_6.1.1
SDK:nRF5_SDK_15.3.0_59ac345
1.進入低功耗方式
nRF52832進入低功耗或保持低功耗方式比較簡單,關閉所有能喚醒的定時器中斷(包括但不限于:協議棧模擬定時器app_timer、各種軟硬件定時器、RTC)。
注意是喚醒進入定時服務函數的動作要關閉,有的定時器本身可以不關閉(例如RTC,PS:app_timer也是RTC實現的),具體的可以測試。
然后執行下面的函數,仿真打斷點發現進入此函數后不再出來,進入低功耗成功。此時功耗最低點可以下降到<30uA。
/**@brief Function for handling the idle state (main loop).** @details If there is no pending log operation, then sleep until next the next event occurs.*/ void idle_state_handle(void) {nrf_pwr_mgmt_run(); }硬件上IO口的拉高低問題,所有MCU都差不多,不贅述。
2.如果可能,打開DCDC功能
需要硬件支持,芯片的46、47腳接電感,具體參考手冊。
3.有些用到DMA的外設進入低功耗前必須關閉,否則會不斷喚醒,功耗激增
比如UART,只要使能(NRF_UART0->ENABLE = 1),就會無法進入休眠,一定要關閉。否則將會導致第1條中的進入低功耗失敗。
4.GPIO設置為輸入可能并不是最省電的方式
某些情況下,直接輸出高或低比設置為輸入更省電。
5.硬件SPI可能會與協議棧沖突,導致功耗增加
硬件SPI簡單的關閉失能后,還是會導致功耗增高,關閉協議棧后正常,原因未知,正確關閉方法暫時未知,只能暫時使用模擬SPI。
評論區朋友反饋,這可能是 GPIOTE與TWI(SPI)沖突造成,可以嘗試如下方式解決
TWI: Static 400 μA current while using GPIOTE?infocenter.nordicsemi.com6.看門狗的坑:可能偷偷復位系統
該芯片看門狗比較特別,開啟后就無法軟件關閉,此外,在休眠期間協議棧會喚醒CPU導致看門狗會偷偷計數而用戶代碼完全不知道,如果只是單純一直休眠而不定期喚醒喂狗,可能會導致系統不久后自動復位。
7.FPU的問題
此問題聽說過還沒遇到過,可以參看
書生:Nordic nRF52832 SDK12.3 關于FPU未關閉引起的功耗問題?zhuanlan.zhihu.com8.外部中斷的選擇
外部中斷分為port event(GPIO Sense)和GPIOET,兩者功耗可能不一樣(前者是低功耗,實測2uA;或者是高功耗,實測9uA)
但是port event的使用局限性比較大,比如:一個IO口進入中斷后,除非再解除,否則其他IO口無法檢測、只能檢測高電平或低電平,且速度不能太快,等
詳見:
nRF5芯片外設GPIO和GPIOTE介紹-CSDN論壇?bbs.csdn.net9.待續。
總結
以上是生活随笔為你收集整理的nrf52832芯片手册_nRF52832低功耗问题不完全总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于二叉树的程序 c语言,请教关于建立二
- 下一篇: 飞思卡尔imx7 html5,i.MX6