我有一个 USB 到 RS232 转换器适配器,带有 WinChipHead 的中国芯片 CH340(武昌新闻网)
CH340 芯片不仅用于转接线,在假冒产品中也能找到Arduino来自中国。
1.) 我发现一个错误,该适配器有时会发送损坏的数据。
2.) 除此之外,我的 CH340 驱动程序也有一个错误。
真正让我吃惊的是,虽然 CH340 是一种应用非常广泛的芯片,但我找不到任何讨论这些错误的网页。其他人能证实这些错误吗?
答案1
1.) 我使用的驱动程序(版本 3.4)创建了一个蓝屏幕当我的计算机进入睡眠模式或关闭时,USB 转 RS232 适配器已连接。
我发现有一个较新的驱动程序(版本 3.5),它经过了 WHQL 认证并且修复了这个错误。
2.) 第二个问题更严重。我时不时地会发送一个字节0xFA但电缆上出现了一个字节0x00相反。我在示波器上确认了这一点。有时其他字节也会损坏,但主要是 0xFA。
3.) 第三个错误是,每当您传输单个字节时,速度比在数据包中发送相同数量的字节慢 10 倍。这可能是驱动程序中的一个错误,导致在等待更多数据时超时。此错误存在于驱动程序的所有版本中。
我对此进行了调查,当我单独发送一个字节 0xFA 时,发生这种情况的频率要比当我将其放在其他字节之间的数据包中发送时高得多。
我测试了我所有的 CH340 适配器,发现其中 4 个有相同的错误。但我也发现一个没有这个错误。我研究了它们以检查它们之间是否有任何差异,结果确实有。使用工具UsbLyzer我分析了 USB 描述符,发现设备描述符存在以下差异:
供应商 ID 1A86 是勤恒电子该公司似乎与 WinChipHead 是同一家公司。
如您所见,正常工作的适配器的固件版本为 2.63,而有缺陷的适配器的固件版本为 2.54。这意味着他们同时修复了该错误。
我是一名软件开发人员,在编写程序时发现了这个问题HUD ECU 黑客它使用 USB 至 RS232 适配器。HUD ECU Hacker 是一款 OBD 软件(车辆扫描仪)。
我需要我的软件的用户可以测试他们的适配器以了解它是否有错误。因此我实现了一个回声测试进入我的程序。要执行测试,用户必须连接 RS232 适配器的 RxD 和 TxD 引脚,以便所有发送的字节都回传到计算机。此回传测试还会测量传输速度。
在这里您可以看到越野车和工作适配器的结果:
我的程序将一个数据包作为整个字节块发送,然后逐字节发送下一个数据包。因此,您会看到发送的一行(蓝色)正常,而下一行有错误。
如果你有一个 CH340 适配器,并且想测试它是否正常工作,你可以下载 HUD ECU Hacker这里。
要执行测试,请连接 RS232 适配器上的 RxD 和 TxD,选择 COM 端口,设置以下配置,然后单击“连接”:
您还可以通过单击上面的工具栏,使用我的程序安装固定的 WinChipHead 驱动程序版本 3.5。