初始化串口后,低功耗模式下电流高是怎么回事?
某工程师反馈:他们的板子当初始化串口后,进入低功耗模式时,电流会有几百个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引脚处于合适的引脚状态,避免漏电引起功耗的增加,避免倒灌现象的产生。
相关文章
- 实战代理模式,模拟Mybatis
- 分布式事务中的Saga模式「建议收藏」
- 区块链游戏链改代币分红模式dapp系统开发原理
- 【设计模式 15】备忘录模式
- 为什么云计算数据保护需要“备份即服务”模式
- 设计模式-模板方法模式
- 设计模式 | 结构型 | 适配器模式
- 【嵌入式开发】时钟初始化 ( 时钟相关概念 | 嵌入式时钟体系 | Lock Time | 分频参数设置 | CPU 异步模式设置 | APLL MPLL 时钟频率设置 )
- Linux的分支:一个模式多样化的操作系统(linux的分支)
- 如何用云计算模式,实现生物信息分析 | 雷锋网公开课
- MVC模式与Oracle数据库的高效集成(mvc连oracle)
- MySQL双主键模式提高数据库性能的好方法(mysql中双主键模式)
- JavaScript异步调用框架(Part6-实例&模式)
- PHP中数据库单例模式的实现代码分享