CH343G 配合 CH34XSER_MAC.ZIP 1.7 会导致USB口不能使用。

你好,我使用CH343G来给ESP32烧录程序。但是烧录会回报Failed to write to target RAM错误。搜索结果表示使用官方驱动可以解决。


我使用http://www.wch.cn/downloads/CH34XSER_MAC_ZIP.html 确实可以正常烧录,但是会引入一个比较恶性的bug。CH343G第一次插入USB口,或者开机前插入,不会有任何问题。但是拔出以后,该USB口再插就不会识别硬件了。换其他USB设备也不行。


硬件我用自己的板子和官方淘宝店买的CH343适配器(仅连接VIO和3.3V)问题一样,应该可排除硬件问题。


我的操作系统是Mojave 10.14.6。使用console在系统日志里搜索CH34x,会返回以下的结果:



debug08:59:36.106969 -0500kextdentering /Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.107067 -0500kextdentering /Library/Extensions/CH34xVCPDriver.kext/Contents

debug08:59:36.107114 -0500kextdleaving /Library/Extensions/CH34xVCPDriver.kext/Contents

debug08:59:36.107164 -0500kextdleaving /Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.107320 -0500kextdopen(/Library/Extensions/CH34xVCPDriver.kext/Contents/MacOS/CH34xVCPDriver,0x0,0x1b6) = 4

debug08:59:36.107366 -0500kextdopen(/Library/Extensions/CH34xVCPDriver.kext/Contents/MacOS/CH34xVCPDriver,0x0,0x1b6) = 5

debug08:59:36.107538 -0500kextd10339 signing bytes in 4 blob(s) from /Library/Extensions/CH34xVCPDriver.kext/Contents/MacOS/CH34xVCPDriver(x86_64)

debug08:59:36.107600 -0500kextdfailed to fetch /Library/Extensions/CH34xVCPDriver.kext/Contents/_CodeSignature/CodeRequirements-2 error=-10

debug08:59:36.107638 -0500kextdExtracting ticket from bundle: /Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.107690 -0500kextdsuccessfully found stapled ticket for: /Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.139650 -0500kextdopen(/Library/Extensions/CH34xVCPDriver.kext/Contents/Info.plist,0x0,0x1b6) = 4

debug08:59:36.140086 -0500kextdfailed to fetch /Library/Extensions/CH34xVCPDriver.kext/Contents/_CodeSignature/CodeTopDirectory error=-10

debug08:59:36.140708 -0500kextdfailed to fetch /Library/Extensions/CH34xVCPDriver.kext/Contents/_CodeSignature/CodeEntitlements error=-10

debug08:59:36.141739 -0500kextdentering /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.141831 -0500kextdentering /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents

debug08:59:36.141869 -0500kextdleaving /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents

debug08:59:36.141901 -0500kextdleaving /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.142111 -0500kextdopen(/Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents/MacOS/CH34xVCPDriver,0x0,0x1b6) = 4

debug08:59:36.142182 -0500kextdopen(/Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents/MacOS/CH34xVCPDriver,0x0,0x1b6) = 5

debug08:59:36.142381 -0500kextd10339 signing bytes in 4 blob(s) from /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents/MacOS/CH34xVCPDriver(x86_64)

debug08:59:36.142449 -0500kextdfailed to fetch /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents/_CodeSignature/CodeRequirements-2 error=-10

debug08:59:36.142547 -0500kextdExtracting ticket from bundle: /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.142735 -0500kextdsuccessfully found stapled ticket for: /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext

debug08:59:36.177356 -0500kextdopen(/Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents/Info.plist,0x0,0x1b6) = 4

debug08:59:36.177583 -0500kextdfailed to fetch /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents/_CodeSignature/CodeTopDirectory error=-10

debug08:59:36.178001 -0500kextdfailed to fetch /Library/StagedExtensions/Library/Extensions/CH34xVCPDriver.kext/Contents/_CodeSignature/CodeEntitlements error=-10


而不能使用的时候,还会多以下两条


debug09:00:30.356210 -0500DockOSErr AEEventImpl::putAttributeDesc(OSType, const AEDesc *)(shas = ["d36608cc1e39f272d10b89eb1287231c9d8cccef;00;00000000;00000000;00000000;0000000000000020;com.apple.app-sandbox.read-write;01;01000004;00000002041f0fa3;01;/users/sundeqing/downloads/ch34xser_mac 3"] result=0

debug09:00:30.356256 -0500DockOSErr AEPutAttributeDesc(AppleEvent *, AEKeyword, const AEDesc *)(shas desc=["d36608cc1e39f272d10b89eb1287231c9d8cccef;00;00000000;00000000;00000000;0000000000000020;com.apple.app-sandbox.read-write;01;01000004;00000002041f0fa3;01;/users/sundeqing/downloads/ch34xser_mac 3"] err=0/noErr



补充一下,刚才另找了一台10.15.7的电脑,可以正常工作。

在10.14.6上,使用USB prober和System Information分别查看USB设备。

USB prober可检测到第一次插入,第一次拔出,不可检测到第二次插入。

System Information可检测到第一次插入,不可检测到第一次拔出。即使拔出后,设备仍然挂在设备树上。


您好,目前未接收到其他客户有类似反馈情况,针对您在当前系统遇到的这个特殊现象,可联系我们工程师在线排查。请按以下技术联系方式与我们沟通:http://www.wch.cn/services/technical_support.html,拨打“USB转接系列”技术支持电话。


好的谢谢,我工作时间尝试拨打一下。

同一台电脑CH340N没有问题,CH343G有。


回报一下,沁恒工程师已修复了这个BUG,我这边测试没问题,之后会加到下个版本发布。


你好,请问这个问题修复了吗?最新版本在哪里下载呢?我也遇到了类似的问题


您好,苹果驱动V1.7近期会更新至官网,您可以先发送邮件到:tech@wch.cn获取。


这个问题我在我这边的环境上依然稳定复现,很确定V1.7版本的驱动没有修复该问题,下面是我的环境


笔记本型号:MacBookPro 2015 Mid、2.2 GHz Intel Core i7、16 GB 1600 MHz DDR3、Intel Iris Pro 1536 MB

系统版本:MacOS 10.14.6 Mojave

连接开发板:合宙ESP32C3核心板_带CH343串口TypeC版本

开发板原理图:https://cdn.openluat-luatcommunity.openluat.com/attachment/CORE-ESP32-C3设计原理图_V1.2.pdf

现象描述:

a.安装驱动后不正常的情况:

    1.安装驱动后关机

    2.不插入核心板,然后开机

    3.开机后首次插入核心板

    4.ls /dev/cu.*  ->  /dev/cu.Bluetooth-Incoming-Port/dev/cu.usbmodem544C0009671(发现并不是正确的设备名称)

    5.拔掉核心板再重新插入

    6.ls /dev/cu.*  ->  /dev/cu.Bluetooth-Incoming-Port(发现/dev节点下没有出现串口设备)

    7.后面不管怎么插拔,/dev下面都不会再有串口设备,不管是正确名字的,还是错误名字的;系统报告里面有两个USB Single Serial,下面是此时USB设备树详情:

        USB 3.0 总线:

          主控制器驱动器:AppleUSBXHCILPTH

          PCI 设备 ID:0x8c31 

          PCI 修订版 ID:0x0005 

          PCI 供应商 ID:0x8086 

        Apple 内置键盘/触控板:

          产品 ID:0x0274

          厂商 ID:0x05ac (Apple Inc.)

          版本:6.24

          序列号:D3H82720E61G

          速度:最高可达 12 Mb/秒

          制造商:Apple Inc.

          位置 ID:0x14400000 / 4

          可用电流 (mA):500

          所需电流 (mA):500

          额外的操作电流 (mA):0

          内建:是

        蓝牙 USB 主机控制器:

          产品 ID:0x8290

          厂商 ID:0x05ac (Apple Inc.)

          版本:1.68

          制造商:Broadcom Corp.

          位置 ID:0x14300000

        USB Single Serial:

          产品 ID:0x55d3

          厂商 ID:0x1a86

          版本:4.43

          序列号:544C000967

          位置 ID:0x14100000

        USB Single Serial:

          产品 ID:0x55d3

          厂商 ID:0x1a86

          版本:4.43

          序列号:544C000967

          位置 ID:0x14100000

b.安装驱动后插入设备开机正常的情况:

    1.安装驱动后关机

    2.插入核心板然后开机

    3.ls /dev/cu.*  ->  /dev/cu.Bluetooth-Incoming-Port/dev/cu.wchusbserial544C0009671(正确的设备名称)

    4.此时USB总线设备树

        USB 3.0 总线:

          主控制器驱动器:AppleUSBXHCILPTH

          PCI 设备 ID:0x8c31 

          PCI 修订版 ID:0x0005 

          PCI 供应商 ID:0x8086 

        内置存储卡阅读器:

          产品 ID:0x8406

          厂商 ID:0x05ac (Apple Inc.)

          版本:8.20

          序列号:000000000820

          速度:最高可达 5 Gb/秒

          制造商:Apple

          位置 ID:0x14700000 / 4

          可用电流 (mA):900

          所需电流 (mA):896

          额外的操作电流 (mA):0

          内建:是

        Apple 内置键盘/触控板:

          产品 ID:0x0274

          厂商 ID:0x05ac (Apple Inc.)

          版本:6.24

          序列号:D3H82720E61G

          速度:最高可达 12 Mb/秒

          制造商:Apple Inc.

          位置 ID:0x14400000 / 2

          可用电流 (mA):500

          所需电流 (mA):500

          额外的操作电流 (mA):0

          内建:是

        蓝牙 USB 主机控制器:

          产品 ID:0x8290

          厂商 ID:0x05ac (Apple Inc.)

          版本:1.68

          制造商:Broadcom Corp.

          位置 ID:0x14300000

        USB Single Serial:

          产品 ID:0x55d3

          厂商 ID:0x1a86

          版本:4.43

          序列号:544C000967

          速度:最高可达 12 Mb/秒

          位置 ID:0x14100000 / 5

          可用电流 (mA):500

          所需电流 (mA):134

          额外的操作电流 (mA):05.拔下再插入核心板

    6.ls /dev/cu.*  ->  /dev/cu.Bluetooth-Incoming-Port/dev/cu.usbmodem544C0009671(发现又变回错误的名称)

    7.再次拔下再插入核心板

    8.ls /dev/cu.*  ->  /dev/cu.Bluetooth-Incoming-Port

    9.接下来不管怎么拔插核心板,都不会再挂载串口设备


我的联系方式:企鹅544324974,加好友注明来意


您好,您可对照安装说明文档中的操作步骤看下是否仍有问题。安装驱动完成后对应设备的串口设备名称为:/dev/tty.wchusbserialxx,具体如下所示:

因CH343可同时使用VCP和CDC驱动,匹配CDC驱动时串口名为:usbmodemxx,VCP驱动时如上所示。

当不识别串口的时候,需看下usb设备[1a86]:[55d3]是否还存在,这边安排同事加下您。

image.png


插入设备然后开机,显示的是/dev/tty.wchusbserialxx名称,然后拔掉重新插入,就是usbmodemxx,再插拔串口设备就没法挂载到/dev节点下了。


好的,您那边安排下,看看到底是什么问题……


icon_rar.gifCH34xVCPDriver.pkg.zip

今天看起来官网的mac驱动还是停留在回报bug前2022年1月发布的1.7版本。

这是FAE在2月发给我的修正包。我记得当时重启到Safe Mode然后把旧的驱动kext删掉。然后进正常模式装一下就好了。


您好,本月会提交版本更新,版本V1.8,用户可直接从官网链接下载:https://www.wch.cn/downloads/CH34XSER_MAC_ZIP.html 


该问题已在新版驱动中修复,感谢沁恒的工程师在国庆节期间,加班帮忙解决问题,太感谢了。


只有登录才能回复,可以选择微信账号登录