STM32 进入Stop模式后电流还是很大怎么办?
STM32 進入Stop模式后電流還是很大怎么辦?
STM32 進入停止模式后電流還是很大,可能椒幾百個uA,怎么辦?
通常做法有如下幾點:
- MCU外圍管腳配置
- 檢查外圍有無閉合回路
- SWDIO,SWCLK 管腳
- 設備運行時的外設功能,逐一關閉。
1. MCU外圍管腳配置
要將MCU外圍管腳配置一番,那如何配置呢,特別是嵌入式的軟件工程師,因為對硬件電路不太熟悉,往往會感到疲憊感,調試了一整天,電流還是下不來,這怎么辦才好呢?
不妨我們從頭開始梳理。
STM32的GPIO工作方式
GPIO支持4種輸入模式(浮空輸入、上拉輸入、下拉輸入、模擬輸入)和4種輸出模式(開漏輸出、開漏復用輸出、推挽輸出、推挽復用輸出)。
GPIO_Mode_AIN 模擬輸入
GPIO_Mode_IN_FLOATING 浮空輸入
GPIO_Mode_IPD 下拉輸入
GPIO_Mode_IPU 上拉輸入
GPIO_Mode_Out_OD 開漏輸出
GPIO_Mode_Out_PP 推挽輸出
GPIO_Mode_AF_OD 復用開漏輸出
GPIO_Mode_AF_PP 復用推挽輸出
關于八種模式的詳細介紹,論壇里大牛已經給出:https://blog.csdn.net/qq_38410730/article/details/79858906
這里就聯相信展開了。
在進入Stop模式時候,通常是設置成為輸入模式。
根據設備原理圖查看IO外部引腳連接電路,
- 如果閑置狀態為懸空,設置為模擬輸入;
- 如果閑置狀態為低電平,設置為下拉輸入;
- 如果閑置狀態為高電平,設置為上拉輸入;
原因:
當懸空時,斯密特觸發器是打開的,要判斷輸入的是高電平還是低電平,需要一點電流損耗,但是設備模擬輸入,這個觸發器是關閉的
當IO通過外圍電路電阻接地被拉低時,如果設置為上拉輸入,則在芯片內部的上拉電阻和外圍的下拉電阻構成回路,電流損耗取決于這兩個電阻;
當IO通過外圍電路電阻接電源被拉高時,則在芯片內部的下拉電阻和外圍的上拉電阻構成回路,電流損耗也取決于這兩個電阻;
2. 檢查外圍有無閉合回路
排查外圍電路,某些驅動、電源轉換IC如果是由軟件使能,如果進入停止模式之后不需要則關閉,因為本身就有工作電流;如果是由硬件使能,則需要查看芯片手冊看靜態工作電流是多少,如果比較高,只能修改硬件電路或者用低耗ic代替。
外圍是否有一些閉合回路,比如電壓采集,雖然ADC已經關閉,但是這個分壓電路還是有損耗的,大小一般取決于電阻和電源電壓。
3、SWDIO,SWCLK 管腳
另外如果在線調試時,進入停止模式后,調試失去作用,看看是不是SWDIO、SWCLK兩個引腳也直接設置成了模擬輸入,還關閉了調試功能:GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);
4、設備運行時的外設功能,逐一關閉。
設備運行時開啟的外設功能,視情況關閉,可以依次關閉看電流減小情況,并和數據手冊做對比(要先關功能,再失能對應外設時鐘,否則會關閉不成功,會有電流損耗。
總結
以上是生活随笔為你收集整理的STM32 进入Stop模式后电流还是很大怎么办?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql root密码重置
- 下一篇: 基于STM32系列芯片的 IAP实现的探