初始化串口后,低功耗模式下电流高是怎么回事?

简介: 初始化串口后,低功耗模式下电流高是怎么回事?

某工程师反馈:他们的板子当初始化串口后,进入低功耗模式时,电流会有几百个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引脚处于合适的引脚状态,避免漏电引起功耗的增加,避免倒灌现象的产生。


相关文章
|
自然语言处理 索引
大模型开发: 解释自然语言处理(NLP)中的词嵌入。
**词嵌入技术在NLP中将文本转为数值表示,捕获词汇的语义和语法关系。过程包括:词汇索引、训练嵌入矩阵(如Word2Vec、GloVe、BERT)、文本向量化及向量输入到NLP模型(如情感分析、命名实体识别)。词嵌入是连接文本与机器理解的关键桥梁。**
380 2
|
机器学习/深度学习 传感器 算法
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
【信号去噪】基于Sage-Husa自适应卡尔曼滤波器实现海浪磁场噪声抑制及海浪磁场噪声的产生附matlab代码
|
Ubuntu 安全 网络协议
|
机器人 异构计算 SoC
实例2:树莓派GPIO控制外部LED灯闪烁
本文是一个关于使用树莓派GPIO控制外部LED灯闪烁的实验教程,介绍了树莓派的基本概念、GPIO接口的使用、RPi.GPIO库的基本操作,以及通过Python编程实现LED灯周期性闪烁的详细步骤和代码示例。
533 1
实例2:树莓派GPIO控制外部LED灯闪烁
|
负载均衡 NoSQL 关系型数据库
性能基础之全链路压测知识整理
【2月更文挑战第16天】性能基础之全链路压测知识整理
790 11
|
编译器 Linux 开发工具
openwrt软路由基础探索
openwrt软路由基础探索
396 0
|
Ubuntu 编译器 Linux
交叉编译环境搭建
交叉编译环境搭建
428 0
|
Web App开发 数据安全/隐私保护 虚拟化
WSL2安装及图形界面使用
WSL2安装及图形界面使用
915 0
|
编译器
[DTS]设备树语法
[DTS]设备树语法