[USB芯片] 使用pyserial控制CH343G的RTS引脚无反应

[复制链接]
 楼主| XIVN1987 发表于 2023-4-7 14:43 | 显示全部楼层 |阅读模式
本帖最后由 XIVN1987 于 2023-4-7 14:47 编辑


在用CH343G做一个串口烧录器,需要用CH343G的RTS、DTR引脚分别控制目标芯片的Reset和Boot引脚,,

使用pyserial控制CH343G的RTS、DTR引脚,,现象如下:

(1)如下代码控制CH343G的DTR引脚,,DTR引脚正常翻转
  1. from serial import Serial

  2. ser = Serial(port='com10', baudrate=4800)

  3. while True:
  4.     ser.dtr = True
  5.     time.sleep(1)
  6.     ser.dtr = False
  7.     time.sleep(1)


(2)如下代码控制CH343G的RTS引脚,,RTS引脚无反应
  1. while True:
  2.     ser.rts = True
  3.     time.sleep(1)
  4.     ser.rts = False
  5.     time.sleep(1)


(3)如下代码控制CH343G的RTS引脚,,RTS引脚正常翻转
  1. while True:
  2.     ser.rts = True
  3.     ser.dtr = ser.dtr
  4.     time.sleep(1)
  5.     ser.rts = False
  6.     ser.dtr = ser.dtr
  7.     time.sleep(1)
也就是说,,必须写一下CH343G的DTR引脚状态,,RTS引脚状态才能被写入

(4)使用(2)中的代码控制CH340N的RTS引脚,,RTS引脚正常翻转,,不需要写DTR状态即可控制RTS引脚

请问,,为什么CH340的RTS可以正常控制,,CH343的RTS引脚却不能??
这个是CH343的bug,,还是故意改成这种行为的??

chenjun89 发表于 2023-4-13 07:50 来自手机 | 显示全部楼层
看下数据手册,两个芯片的控制模式是不是有区别
WCH@TECH39 发表于 2023-4-24 14:58 | 显示全部楼层
您好,CH343是支持使用CDC-ACM串口协议和厂商VCP协议的,但CDC串口有部分功能和标准串口不同,如上RTS不能正常控制也是因为此原因。您这边安装使用厂商VCP驱动即可,链接:https://www.wch.cn/downloads/CH343SER_EXE.html
 楼主| XIVN1987 发表于 2023-4-25 09:27 | 显示全部楼层
WCH@TECH39 发表于 2023-4-24 14:58
您好,CH343是支持使用CDC-ACM串口协议和厂商VCP协议的,但CDC串口有部分功能和标准串口不同,如上RTS不能 ...

原来是这样啊。。

为什么不做成和CDC标准完全兼容的??有点儿坑啊。。

而且你们官网选型表下面以及手册上都没标注这个问题,,这么重要的问题应该重点标注出来才对啊。。
WCH@TECH39 发表于 2023-4-25 19:23 | 显示全部楼层
XIVN1987 发表于 2023-4-25 09:27
原来是这样啊。。

为什么不做成和CDC标准完全兼容的??有点儿坑啊。。

您好,该问题是CDC驱动的问题,非芯片端实现不完整的问题。关于CDC串口驱动的使用限制,可以查看这个方案说明:https://www.wch.cn/application/357.html
 楼主| XIVN1987 发表于 2023-4-25 20:55 | 显示全部楼层
WCH@TECH39 发表于 2023-4-25 19:23
您好,该问题是CDC驱动的问题,非芯片端实现不完整的问题。关于CDC串口驱动的使用限制,可以查看这个方案 ...



感谢说明,,

QQ截图20230425205315.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

342

帖子

20

粉丝
快速回复 在线客服 返回列表 返回顶部