再調stm32產品低功耗

2021-10-25 02:32:54 字數 1111 閱讀 1608

最近入職了乙個公司,沒想到又是接到調低功耗的任務!

拿到公司的板子,第乙個事情是熟悉公司的硬體電路圖,把板子上的晶元捋清楚,查查它們的靜態工作電流,大概率會找到偷功耗的小偷,同時把這些資訊整理成乙個文件,表面工作尤其重要(功耗沒調下來,文件先輸出,顯得你工作做事有邏輯!)

第二個事情:做最小系統板,開始吹晶元,把板子上原有的晶元,用熱風槍吹下來(功耗也會接著下來),觀察功耗,如果晶元進入了低功耗模式,大概率是能夠達幾十微安或者兩、三百微安;

那麼,晶元都進入了低功耗模式了,外圍晶元都吹下來了,只剩最小系統板,剩下的功耗從哪幾個地方產生,這就是考驗你耐心(運氣)的時候了。

stm32進入低功耗模式,無論是sleep/standby/stop,都是10ua以下的,這個一般是依據產品設計的應用場景,選擇低功耗模式使用哪個,在這裡就不拓展

如果你在網上查詢過,你也可以很快判斷出漏電的原因大部分是io的設定,io漏電原理是因為io連線的外圍器件與晶元io內部形成了迴路。

按照一般設定方法,就是在晶元進入低功耗模式前,對所有的io進行設定

void

sys_standby

(void

)

其中包含使用io和非使用io

使用io為了思路更清晰,分使用模組,逐個io去設定

void

sys_low_power_io_init

(void

)

其中io設定原則模擬輸入/開漏輸出高電平/其他都可以,唯一要保持的原則是不要讓io和外圍電路形成迴路

或許你已經參照了我的流程對io設定了一遍,但是電流發現還是沒降下來

我在這裡分享兩個硬體除錯方法

2.1 用鑷子短路板子上的每乙個電阻,找到短路後讓整機電流異常的電阻,去除;

這個方法是用來判斷外圍電路沒清楚乾淨導致的漏電情況

2.2 用杜邦線,一頭接gnd/3.3v,直接在晶元的io上點,找到可以讓整機電流降低的io,注意別點到晶元上的vcc/gnd

這個方法我嘗試用過,但是沒成功找到對應io(非io漏電),但是也寫下來,保留分享用途

STM32低功耗設計

具體要點為 1 所有io管腳,如果高阻狀態埠是高電平,就設成上拉輸入,如果高阻狀態是低電平,設成下拉輸入,如果高阻是中間狀態,設成模擬輸入。這個很多人都提到過,必須的。作為輸出口就免了,待機你想輸出個什麼東西,一定要輸,硬體上加上下拉就可以了 2 兩個晶振輸入腳要remap成普通io!使用內部晶振。...

STM32低功耗模式 停止模式

停止模式是在cortex m3的深睡眠模式基礎上結合了外設的時鐘控制機制,在停止模式下電壓調節器可執行在正常或低功耗模式。此時在1.8v供電區域的的所有時鐘都被停止,pll hsi和hse rc振盪器的功能被禁止,sram和暫存器內容被保留下來。thumb指令不支援彙編內聯 採用如下方法實現執行彙編...

STM32的3種低功耗模式

睡眠模式 核心停止,外設如nvic,系統時鐘systick仍執行。停止模式 所有時鐘都已停止 1.8v核心電源工作 pll,his和hserc振盪器功能禁止 暫存器和sram內容保留。待機模式 1.8v核心電源關閉 只有備份暫存器和待機電路維持供電 暫存器和sram內容全部丟失 實現最低功耗。在待機...