先簡單介紹下stm8l151g6u6,該mcu是stm8l超低功耗系列,與152系列相比只是少了lcd的功能,官方手冊介紹的各個低功耗模式的功耗如下:
其低功耗效能還是很不錯的,在本文中是基於活躍停機低功耗模式來測試的。
要實現stm8l151g6的低功耗,主要可以注意以下幾點:
1. 不需要用到的外設一律不使能外設時鐘,對於臨時使用的外設,只需在使用時臨時開啟即可,使用完畢關閉時鐘
2.合理配置gpio口的狀態,對於沒有使用到的gpio,可將其設為上拉輸出低,gpio_init(gpiof, gpio_pin_0, gpio_mode_out_pp_low_slow);對於使用到的gpio口,則要看你外電路的接法,如用乙個gpio低電平來控制led亮燈,則要實現低功耗時,需把gpio口置高;另一種情況是對於使用到的中斷管腳,將該管腳上拉時,當發生中斷電路接地時,該電阻則形成迴路,有一定的消耗電流,可選用較大的電阻做外部上拉電阻,則大大減低電流。
3. 最重要的一點,由於stm8l151g6有電源管理部分,故必須在進入睡眠之前使能低功耗模式,具體庫函式為:
pwr_ultralowpowercmd(enable);
4. stm8l系列的mcu資料手冊表明工作電壓可低到1.65v,當要實現這個功能是有要求的,必須勾選選項位元組中的bor_on brownout reset off,不啟用bor,這個可以在燒錄軟體中選擇,這個在參考手冊中有下面的描述
in low density devices, medium density devices and in the medium+ and high density
devices operating from 1.8v to 3.6v (device part numbers without "d" suffix), the bor starts
to work above the por threshold (see section 6.3: brownout reset (bor) on page 66). to
ensure the minimum operating voltage (1.65 v), the bor should be configured to bor
level 0.
我根據上述幾點,對自己的專案進行測試,使用活躍停機模式,rtc 30s自動喚醒,最後測試的休眠電流能做到4.7ua。
STVD 新建STM8L151工程
最近從iar轉到stvd來進行stm8l151的開發,看了一下如何配置stvd的開發環境以及如何新建工程,在這個就做個備忘吧。1.先安裝stvd 和 cosmic c編譯器,cosmic 編譯器有8k的編譯限制,但據官網上說好像可以免費到32k了。2.新建一 個workspace,3.填寫works...
STM8L151G6U6 之實現低功耗RTC喚醒
所謂低功耗產品,一般來講就是在大多數時間讓mcu進入睡眠模式,在有資料更新時喚醒,將資料顯示或者傳送上報。對於中斷型別的,可以採用中斷直接喚醒mcu的方式,而對於溫濕度之類的感測器,只能採用定時喚醒,然後取樣並比較判斷當前的值是否傳送變化,然後顯示或者上報。如果使用了顯示屏,wifi 藍芽等模組,則...
STVD下STM8L151使用官方韌體庫開發
相信很多朋友在stm8的開發中很多是使用官方的韌體庫來進行開發的,這樣開發速度快,並且程式不易出錯。前面的部落格講到了如何在stvd中新建乙個新的stm8l151的工程,最後新建成功後,出現下面的工程目錄 在stm8 interrupt vector.c 檔案中,如下 basic interrupt...