1.引言
STM32 L4 系列作為一款高性能的低功耗芯片,具有強大的運算處理性能和極低的運行和待機功耗,廣泛應用于各種需要節(jié)能設備上。
2. 問題描述
客戶使用 STM32L431 作為主控項目開發(fā)電子煙產(chǎn)品,使用了 ST 的 HAL 軟件庫開發(fā)。各種驅(qū)動功能正常??臻e時進入待機狀態(tài)。在研發(fā)階段測試時一切正常,但是批量生產(chǎn)時發(fā)現(xiàn)產(chǎn)品無法進入低功耗或者說表現(xiàn)為耗電過大。
3. 問題分析與定位
首先查找軟件設計本身,包括各種外設的配置以及進入低功耗前的各種處理,并未發(fā)現(xiàn)任何異常,隨即簡化軟件在評估板上燒錄代碼,然后連接電流表,功耗一切正常。經(jīng)過多次驗證,每次都能進入低功耗。
這樣看起來就非常奇怪了,客戶的硬件也沒什么特殊地方。后來再次檢查客戶的整個流程發(fā)現(xiàn),客戶的燒錄和測試是一直帶電的,因為是電子煙產(chǎn)品,上面的電池是一直連接的。設計調(diào)查實驗發(fā)現(xiàn),客戶的產(chǎn)品只要經(jīng)過一次斷電過程,再次上電就全部正常。而我們平時因測試低功耗電流需求,通常都是去掉燒錄器的連接,避免額外電流消耗,所以都經(jīng)過了斷電過程,沒有發(fā)現(xiàn)任何異常。而這種帶有電池的產(chǎn)品,才會有機會發(fā)現(xiàn)?;谏a(chǎn)效率和產(chǎn)品終身帶電池的特殊性,進行斷電工序很難,不利于大規(guī)模生產(chǎn)。
那么問題來了,究竟是什么原因引起燒錄完不能正常進入低功耗模式呢?帶著問題進行查找原因。外設的查找比較容易,都是標準的并且簡化掉了很多外設,那么會不會是傳統(tǒng)外設之外的因素呢?
按照這個方向查找,想到了調(diào)試模塊。
進一步查看發(fā)現(xiàn)燒錄器將 DBG_STOP 位置 1。如上圖。
如手冊所描述,如果該位被置位的話,那么在低功耗下時鐘并沒有關閉,并且可以繼續(xù)執(zhí)行代碼,所以芯片不能進入低功耗模式。于是對應的解決辦法也出來了,進入低功耗前增加語句清除代碼即可。
4.問題解決
找到了線索后,針對問題解決起來就不復雜了,簡單說,打一個補丁。
從調(diào)試界面上看,增加一句清除該位的函數(shù)即可禁止在低功耗模式下的調(diào)試功能,進而解決該問題。實際測量不需要斷電也可正常進入期望的低功耗模式。
小結(jié)
由于低功耗調(diào)試位被置 1,引起超低功耗芯片 STM32L431 在不斷電情況下不能正常進入低功耗模式,引起電流偏大。由于該產(chǎn)品特殊,從生產(chǎn)一直到用戶手中,產(chǎn)品始終與電池連接(固定),才有可能導致此類問題發(fā)生,需要早研發(fā)階段軟件增加補丁的方式解決,使產(chǎn)品生產(chǎn)不用增加工序。
另外,筆者使用的 STM32 ST-LINK Utility 工具會引起該問題,而另一款常用的燒錄軟件 STM32CubeProgrammer v2.7.0 并未發(fā)現(xiàn)此問題,因此與用戶采用的燒錄軟件有直接關系。市面上支持 STM32 低功耗產(chǎn)品燒錄軟件很多,如遇到此類問題,可以參考以上方式查找原因是否一致。
審核編輯 :李倩
-
芯片
+關注
關注
460文章
52520瀏覽量
441194 -
STM32
+關注
關注
2293文章
11032瀏覽量
365151 -
低功耗
+關注
關注
11文章
2808瀏覽量
104950
原文標題:STM32L4 單片機進入低功耗異常的一種情況
文章出處:【微信號:mcugeek,微信公眾號:MCU開發(fā)加油站】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
(芯源半導體)32位 無線射頻,超低功耗,通用高性能MCU,存儲芯片 選型
高性能低功耗雙核Wi-Fi6+BLE5.3二合一
昂科燒錄器支持ST意法半導體的超低功耗微控制器STM32L4S5VIT

評論