某工程師反饋:他們的板子當初始化串口后,進入低功耗模式時,電流會有幾百個uA;如果不初始化串口進入低功耗,電流則正常為幾個uA。
此現象自然是不正常的,為此我用開發板搭建了測試環境,板子飛線外接了一個USB轉串口(芯片是CH340,連接了TX、RX、GND)
當進入低功耗模式后,實測電流確實是幾百uA。
但是當把USB轉串口插到電腦上時,電流就一下子小了很多。
上述現象是什么原因呢?
當MCU串口初始化后,在串口不發送數據時TX引腳是高電平,當USB轉串口沒有供電時,此時MCU TX引腳會給這一部分電路供電,從而消耗能量,產生了幾百uA的電流,從上圖它的指示燈亮也能驗證這一點。
上述其實現象叫倒灌,即USB轉串口RX引腳上的電壓倒灌到其VCC上。同理反方向,如果USB轉串口一直接著電腦,MCU主電源斷了,USB轉串口也會通過它的TX引腳電壓使MCU產生倒灌。雖然倒灌有時看起來也能工作,但是實際使用中要避免這種情況的產生,因為它是工作在非正常狀態的。不僅串口引腳,GPIO引腳也會經常引起倒灌的產生。
倒灌可通過外部加保護電路避免,舉個栗子,比如為了防止MCU通過串口RX引腳產生倒灌,可以加一個邏輯器件,當3.3V斷開時就不會產生倒灌。
另外很多芯片內部也會做防倒灌的設計。
當USB轉串口正常供電時,它所需能量由外部電源提供,RX引腳阻抗大,此時雖然MCU TX引腳為高電平,也不會額外增加多少電流。
后來和該工程師溝通得知,他就是因為在進入低功耗前把串口相連接的通訊模塊斷了電,導致TX引腳漏電引腳的上述電流大的問題。
要解決他的問題也很簡單,在進入低功耗模式前,重新配置MCU TX引腳(配置為輸入或者模擬模式),不讓其輸出高電平即可。
最后總結一下,MCU進入低功耗前要確保各IO引腳處于合適的引腳狀態,避免漏電引起功耗的增加,避免倒灌現象的產生。
-
電源
+關注
關注
184文章
17841瀏覽量
251809 -
芯片
+關注
關注
456文章
51188瀏覽量
427284 -
usb
+關注
關注
60文章
7980瀏覽量
266098 -
數據
+關注
關注
8文章
7145瀏覽量
89581
原文標題:初始化串口后,低功耗模式下電流高是怎么回事?
文章出處:【微信號:TopSemic,微信公眾號:TopSemic嵌入式】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
RT-Thread自動初始化詳解
![RT-Thread自動<b class='flag-5'>初始化</b>詳解](https://file.elecfans.com//web2/M00/4D/5D/poYBAGK2552AP3IhAAERUWXJgTY466.png)
esp8266_rtos_sdk串口初始化異常是什么原因呢?
STM32串口燒錄時,串口初始化和LCD初始化的先后問題
請問協調器初始化后,節點仍舊不能入網是什么原因?
請問初始化TIM寫不進去是什么原因?
arm調用c函數初始化失敗
為什么串口初始化程序會影響LCD?
沒有初始化UART1
初始化串口后低功耗模式下電流高是什么原因呢?
STM32F446 RTC初始化失敗是什么原因?
Itc250032初始化的時候DRL不變化,初始化一直失敗的原因?
關于lcd1602初始化后只有第一行有黑塊的問題
![關于lcd1602<b class='flag-5'>初始化</b><b class='flag-5'>后</b>只有第一行有黑塊的問題](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論