前言
對于一些電池供電的應用,很多都需要用低功耗的單片機。隨著國外單片機缺貨,也越來越多的工程師選擇國產華大低功耗系列的單片機,接下來就講一下華大低功耗系列的單片機怎么處理低功耗。
一、進低功耗的步驟
1、關閉外設時鐘
2、配置IO電平(重要)
3、內核進入睡眠
二、詳細說明
很多客戶說我執行Lpm_GotoDeepSleep()進入睡眠之后,怎么電流還那么大呢?一問調用睡眠函數之前啥都沒做,其實這是一個誤區,調用這個函數相當于執行了__WFI(),這個只是讓內核進入睡眠而已,前面的兩步還沒做。
1、關閉外設時鐘
根據手冊的說法,部分外設在進入睡眠后會自動關閉(見下圖),但還是建議進入睡眠前把不需要的外設時鐘手動關掉,喚醒之后再手動打開。以HC32L136為例,執行Sysctrl_SetPeripheralGate();可以打開關閉外設時鐘。
注意:ADC的關閉步驟,有一個BGR要關閉,調用Bgr_BgrDisable();即可關閉。這個是模擬模塊的使能寄存器,在使用模擬外設的時候會打開,像初始化ADC、VC比較器和LVD需要打開,但睡眠的時候打開會增加30~80uA的電流。
注意:看門狗WDT開了就關不了,睡眠下也是開著,無法喂狗會導致復位。睡眠使用看門狗建議用PCA模塊4的模擬看門狗,睡眠下可以關閉
2.配置IO電平(重要)
這點是很多工程師都會忽略的,以為把所有東西的時鐘關了,就是最低功耗。但其實外圍電路還是會耗電,比如IO外面接的是上拉電阻,IO輸出低的話,有電流流過,就帶來了功耗的升高。
還有一點最讓工程師忽略的,就是IO口懸空,認為我IO啥都沒接,怎么可能耗電呢。接下來我們來看一下。
首先,IO有接外圍電路的,睡眠之前根據外圍電路接法決定怎么設置IO電平,原則就是電平平衡,比如有上拉,那可以用輸入上拉、有LED就關閉LED、有下拉就輸入下拉或輸出低都可以,這部分也可以請硬件工程師幫忙分析。
注意:IO懸空的情況,包括有些型號的晶圓是比較多管腳的,但是某個型號沒有把管腳都封出來,沒有封出來的管腳也要當懸空處理。懸空的管腳建議設為輸入下拉。
舉個例子:曾經有個客戶懸空的管腳沒有配置,做幾十個樣品的時候睡眠電流都是正常的,只有5uA,量產的時候電流就60uA了,我過去一看就是把懸空的管腳配置成輸入下拉就都是5uA了。
接下來我們看下為什么懸空的管腳會導致電流不穩定的原因:
如下圖,IO口結構一般可以簡化為如下的圖,當以推薦的高電平或低電平驅動時,只有上管或下管導通,絕不會兩個同時導通。但是CMOS器件的驅動電壓中間都有一個不確定的電壓區間,但驅動電壓處在這個區間,則可能兩個管子都導通,從而VDD直接到地,造成大的電流損耗。當管腳懸空時,遇到雜散噪聲就可能出現這種情況,所以前面提到的客戶案例就會有時會電平偏大,而有時不會。
3、內核進入睡眠
處理完前面的東西后,最后一步就是執行Lpm_GotoDeepSleep()進入睡眠。
注意: 華大有些低功耗系列產品是有PLL倍頻器的,進睡眠前需要把PLL關掉,不然功耗也會偏高
總結
華大的低功耗系列單片機的調試步驟就這么多,其實其他品牌的單片機調低功耗方法也差不多。
審核編輯:符乾江
-
單片機
+關注
關注
6042文章
44617瀏覽量
637600 -
低功耗
+關注
關注
10文章
2418瀏覽量
103842 -
stm23
+關注
關注
0文章
2瀏覽量
1858
發布評論請先 登錄
相關推薦
評論