如图,RTS#通过二极管与MCU的pin相连,希望当连接USB口后RTS#的电平变化来引起中断。
经测量,当连接时该脚电平5V,当没有连接时,其它各脚均接近0(0.0xV),但是RTS#为3.3V。
这个是怎么回事?
RTS#到MCU的连接不对吗?
如图,RTS#通过二极管与MCU的pin相连,希望当连接USB口后RTS#的电平变化来引起中断。
经测量,当连接时该脚电平5V,当没有连接时,其它各脚均接近0(0.0xV),但是RTS#为3.3V。
这个是怎么回事?
RTS#到MCU的连接不对吗?
您好,如上原理图设计无明显问题,如上图所示,若CH340的VCC没有供电,连接TXD、RXD和RTS的情况下。因RTS外加二极管,倒灌电流从串口引入CH340芯片的可能性较高。建议测试下此时的CH340的TXD和RXD信号。若存在此情况,可以参考CH340技术手册关于电流倒灌措施的处理,使用二极管或MOS管进行隔离。
此外,使用串口IO状态引脚仅能判断CH340的供电状态,不能判断芯片USB是否正常接入并工作,默认情况下建议选用提供ACT引脚的芯片,ACT引脚用于指示USB配置完成状态,只有当芯片供电且USB正常工作时才输出低电平,其余情况保持高电平。支持此功能的USB转单串口芯片有:CH340T、CH343、CH347、CH9101、CH9102等芯片。若需要测试验证,可联系我司商务申请样品和评估板。
TXD/RXD在MCU端已经禁止PIN输出,因此没有电流输出。
通过取消RTS#脚对应的MCU pin上拉电阻,电压已经消失,猜测可能是MCU VDD 在MCU内部上拉电阻、外部下拉电阻上产生压降带来的,但是我还是不能理解为什么会在右边存在电压会导致左边也有电压。
关于RTS#的信号变化,根据贵公司的文件,可以通过PC上位机程序进行改变,这个能否提供一点信息。
您好,根据您的反馈建议分别测试下RTS和MCU的IO处具体的电压值,如果MCU的IO电压高于RTS电压,则应该是二极管失效,(如极性反相或损坏等)。
USB转串口芯片提供的Modem信号,RTS和DTR均可以当作普通输出IO使用,芯片上电后默认RTS和DTR均为高电平输出,在打开虚拟串口后,使用系统原生串口API即可自由控制其输出高低电平。
关于Windows系统上串口编程可参考如下资料:
https://blog.csdn.net/WCH_TechGroup/article/details/104264100?
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-escapecommfunction?
谢谢,测试确实可用。
我找到的参考信息:
https://blog.csdn.net/tanmx219/article/details/105653936?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165309875116782248540657%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165309875116782248540657&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-105653936-null-null.142^v10^control,157^v4^control&utm_term=com%E6%8E%A7%E5%88%B6RTS%E8%BE%93%E5%87%BA&spm=1018.2226.3001.4187
我目前已经改成RTS与MCU.RESETN相连,用上位机控制MCU重启。
我有一点不明白的是:当MCU重启的时候,上位机打开的COM端口失效(读写都失败),确实也看到PC的设备管理器进行了端口刷新动作。
问题是MCU根本就没有打开USART端口,MCU重启的时候也不会影响CH340N的电源,也就是说MCU重启与否应该是与COM口无关的吧?
技术支持能否给个解释?
根据如上现象,应该是MCU重启的时候影响到了CH340芯片的供电导致,应该是因为MCU使用的电源也来自于VBUS,当MCU启动时吸收电源较大电流导致VBUS出现压降然后又恢复,可尝试在VBUS端并联一个大电容以消除电源抖动。可尝试47uF/100uF等。
测量了电压,5V供电时,在reset时会下降一点,但是也是4.9+V,根据参数文件,CH340的工作电压最低可以到4V,所以由于MCU reset导致的电压降使得CH340重置似乎不太可能。
另外,我也测试了板上的reset按钮,结果是一样的。
电容手头没有上百uF的,换了个22uF,按理应该足够了。
更新:
同时把电池也接上后确实稳定了。
这个怎么理解?我敢肯定电压跌落肯定没到4v以下。
如上描述的VBUS压降是瞬时态,使用万用表无法测量出来的。需要监控的话可以用示波器触发查看,根据电源情况不同,电压低于芯片可工作电压的时间可能是ns或us级。接上电池,要看下设计从VBUS吸收电流是不是会减小考虑。做实验的话VBUS可以多并接一些电容看效果。