0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

初始化串口后,电流小了很多是什么原因

TopSemic嵌入式 来源:TopSemic嵌入式 作者:TopSemic嵌入式 2022-10-24 09:13 次阅读

工程师反馈:他们的板子当初始化串口后,进入低功耗模式时,电流会有几百个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断开时就不会产生倒灌。

1a34adc2-5331-11ed-a3b6-dac502259ad0.png

另外很多芯片内部也会做防倒灌的设计。

当USB转串口正常供电时,它所需能量由外部电源提供,RX引脚阻抗大,此时虽然MCU TX引脚为高电平,也不会额外增加多少电流。

后来和该工程师沟通得知,他就是因为在进入低功耗前把串口相连接的通讯模块断了电,导致TX引脚漏电引脚的上述电流大的问题。

要解决他的问题也很简单,在进入低功耗模式前,重新配置MCU TX引脚(配置为输入或者模拟模式),不让其输出高电平即可。

最后总结一下,MCU进入低功耗前要确保各IO引脚处于合适的引脚状态,避免漏电引起功耗的增加,避免倒灌现象的产生。

审核编辑:彭静
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 电源
    +关注

    关注

    184

    文章

    17466

    浏览量

    249044
  • 芯片
    +关注

    关注

    452

    文章

    50134

    浏览量

    420446
  • usb
    usb
    +关注

    关注

    60

    文章

    7864

    浏览量

    263582
  • 数据
    +关注

    关注

    8

    文章

    6790

    浏览量

    88722

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

文章出处:【微信号:TopSemic,微信公众号:TopSemic嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    RT-Thread自动初始化详解

    我们知道,在写裸机程序时,当我们完成硬件初始化,就需要在主函数中进行调用。当我们使用RT-Thread,完全不需要这样做了,我们可以将硬件等自动初始化。 RT-Thread 自动
    的头像 发表于 06-25 21:38 1.1w次阅读
    RT-Thread自动<b class='flag-5'>初始化</b>详解

    esp8266_rtos_sdk串口初始化异常是什么原因呢?

    硬件环境:nodeMCU 我从github下载了最新的RTOS SDK,并且仅仅在初始化 user_init() 函数里添加了一个函数 uart_init_new() 然后编译。生成bin文件,下载
    发表于 07-11 06:04

    STM32串口烧录时,串口初始化和LCD初始化的先后问题

    本帖最后由 zcw2016 于 2017-7-13 10:45 编辑 我用的是STM32F103ZET6,在程序里LCD初始化函数在前,串口初始化函数在后,再利用串口烧录软件Fl
    发表于 07-13 10:41

    请问协调器初始化,节点仍旧不能入网是什么原因

    ,节点 设置相同PANID = 1111;如果先启动节点,再启动协调器完全初始化建网,节点可以加入协调器。 但是将协调器再重新一次初始化建网, 节点无法连接协调器,可能是节点保留的先前的网络信息。 此时
    发表于 05-22 06:39

    请问初始化TIM写不进去是什么原因

    同一个程序,不同的芯片,有些可以,有些不行。在初始化完时钟初始化TIM,发现调用Init的API时,进去一看,什么TIMx->ARR那些明明写了数,走下一步看,还是0,查看Register
    发表于 10-16 11:19

    arm调用c函数初始化失败

    指令可以正常的初始化。 但是我另外定义了一个main.c 文件,通过man.c中的 main() 函数调用 uart0_init() 进行初始化。然后在汇编中通过指令 bl main 初始化
    发表于 03-21 07:45

    为什么串口初始化程序会影响LCD?

    今天在弄TFTLCD显示 实验的时候没把例程里串口初始化加进去,结果烧进去屏幕一片空白,我又加上了这个语句,结果居然灯也不亮。我看了一下串口初始
    发表于 11-08 04:35

    没有初始化UART1

    创龙工程师你好,在使用创龙TL-6748-EVM时,发现UART1例程中管脚初始化,没有初始化UART1,初始化的是核心板的LED,PSC初始化也是LED,请问这是
    发表于 04-08 07:54

    初始化串口低功耗模式下电流高是什么原因呢?

    USB转串口(芯片是CH340,连接了TX、RX、GND)当进入低功耗模式,实测电流确实是几百uA。但是当把USB转串口插到电脑上时,电流
    发表于 11-30 14:52

    STM32F446 RTC初始化失败是什么原因

    初始化RTC失败,请帮忙看看具体是什么原因导致初始化不能成功输入date,会等很久,好像卡住了一般系统版本:4.1.0
    发表于 02-07 10:30

    Itc250032初始化的时候DRL不变化,初始化一直失败的原因

    初始化LTC250032时的波形如上图,图中DRL一直是低电平,按照数据手册提示,MCLK上升沿以后DRL也应该变为高电平,然后DRL下降沿开始写入数据。 当把PRE置为高电平以后,DRL 能够输出脉冲。 现在的问题是,初始化的时候DRL不变化,
    发表于 12-05 06:40

    RDA1846S初始化设置

    RDA1846S初始化设置RDA1846S初始化设置RDA1846S初始化设置
    发表于 01-15 17:08 0次下载

    关于lcd1602初始化只有第一行有黑块的问题

    关于lcd1602初始化只有第一行有黑块的问题将初始化代码: write_com(0x38);delay(5); //显示模式设置重复使用至4次即可解决问题(其他初始化步骤正常
    发表于 01-14 09:33 7次下载
    关于lcd1602<b class='flag-5'>初始化</b><b class='flag-5'>后</b>只有第一行有黑块的问题

    labview运行如何初始化

    LabVIEW是一款强大的图形编程软件,在运行之前通常需要进行一些初始化操作。本文将详细介绍LabVIEW运行前的初始化过程,并提供了一些常用的初始化方法。 创建新项目: 在LabV
    的头像 发表于 12-28 17:24 2371次阅读

    串口初始化一般是初始化哪些内容

    串口初始化是指在使用串口进行数据通信之前,对串口进行一系列的设置和配置,以确保串口能够正常工作。串口
    的头像 发表于 01-04 09:39 2959次阅读