最近在使用 stm8l152 做一款遙控器產(chǎn)品,剛用這個,還不太熟,發(fā)現(xiàn)stm8l的資料也比較少,官方中文資料幾乎沒有。所以花了點時間,把功耗部分測試了一下,在此分享。如有問題,可跟帖討論。至于與MSP430的比較,發(fā)現(xiàn)自動喚醒功耗比MSP430(G2553)更大。在測試時,感覺STM8L更不省心,也可能是還不太熟加上資料有限吧,不過做完所有的功耗測試,基本都達到官方指標。
停機狀態(tài)(無喚醒)
1. PCB僅焊接MCU,電源3.3V,復位電容(10nF)和一個退偶電容(0.1uF), 程序中將所有GPIO確定輸出低電平,主函數(shù)中直接halt(),電流約 1.730uA
2. 在1的基礎(chǔ)上,增加一條語句,PWR_UltraLowPowerCmd(ENABLE),或者 PWR->CSR2 = 0x2,再執(zhí)行halt,電流下降至最低,0.400uA,達到官方指標
3. 在實際產(chǎn)品上的測試(電路上增加了LCD,LSE晶振等),GPIO確定電平,超低功耗開啟,停機狀態(tài) halt(),電流約 0.38uA
4. 在3的基礎(chǔ)上,開啟RTC日歷,電流約 1.3uA
5. 初始化并開啟LCD(未顯示),最低電流約 2.25uA (LCD顯示參數(shù): 死區(qū)時間 7, 持續(xù)周期 0, HD=0,LCD外部電源)
6. LCD正常工作,電流約 5.95uA (LCD顯示參數(shù): 死去時間 3, 持續(xù)周期 5, HD=0,LCD外部電源),顯示效果均衡,LCD電流與LCD玻璃相關(guān)
7. 在6的基礎(chǔ)上,HD=1 電流約 18uA
低功耗運行狀態(tài)
1. 將主時鐘切換為 LSI,所有GPIO確定電平,開超低功耗,關(guān)RTC、LCD、LSE等,主函數(shù)執(zhí)行 while(1), 電流約 95uA
2. 在1的基礎(chǔ)上,關(guān)電壓調(diào)節(jié)器(默認開啟),電流約 3.75uA; 達到標稱電流值。
3. 在2的基礎(chǔ)上,將主時鐘切換為 LSE,電流約為 4.32uA
4. 在3的基礎(chǔ)上,開啟RTC,電流約為 4.59uA
5. 在4的基礎(chǔ)上,開啟LCD(不顯示),電流約為 8.8uA,LCD顯示,電流約為 9.25uA
正常工作狀態(tài)
1. PCB僅焊接MCU,電源3.3V,復位電容(10nF)和一個退偶電容(0.1uF),程序中將所有GPIO確定輸出低電平
2. 在1的基礎(chǔ)上,主函數(shù)直接執(zhí)行 while(1),功耗在 930~950uA 波動 (默認2MHz)
3. 在2的基礎(chǔ)上,while(1) 中加入5個 nop(),功耗降低 200uA(即在730~750uA波動)
4. 在3的基礎(chǔ)上,將時鐘配置位16MHz,功耗約為 3.7mA
5. 在4的基礎(chǔ)上,在while(1)中加入 wfi()/wfe(),功耗約為 720uA
6. 在5的基礎(chǔ)上,將時鐘配置位1MHz,功耗約為 325uA
說明: 對于 stm8l 這類低功耗芯片,多數(shù)時候應(yīng)該工作在停止或者等待狀態(tài),全速運行功耗意義不大,以下兩個實際工作模擬
1. 在一般定時顯示程序中(主函數(shù)中延時500ms刷新顯示),16MHz時鐘,延時函數(shù)使用wfe功耗約1mA, 使用while(flag)功耗約4.5mA
2. 在實際低功耗項目中,RTC和LCD一直工作,CPU脈沖工作,RTC約500ms喚醒一次,刷新顯示,其電池壽命主要取決于LCD顯示效果,正常一般可做到6uA,顯示均衡
3. 以上測試所用的LCD均為4*34段,如果更小的LCD,可能功耗更小