Ubuntu20.04, CH340c, 未打开串口时持续disconnect

嗯, 我再换其它机器试试


之前用的是thinkpad L480, 晚上换了另一台thinkpad T450s, 系统也是20.04, 测试也还是有这个问题. 在这台机器上, 断开的间隔更短, 3~4秒就会断开一次.


因为还有一块W801的开发板, 也用到了CH340N, 所以直接在开发板上设置了UART发送. 但是这个开发板上的CH340N测试却是好的, 不存在这个问题, 不管cutecom连接或不连接, dmesg里CH341设备均不会断开


于是比较了最近测试的几个不同的CH340的dmesg输出, 发现一个区别


凡是没问题的(W801开发板板载的CH340N, USB2TTL的CH340G), 显示都是

[ ] usb 2-3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.64


凡是有问题的, 我之前测有问题的CH340C和CH340N 显示都是

[ ] usb 2-3: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice=81.32


在网上搜这个 bcdDevice=81.32 看到的结果非常少, 想请问下, 这个编号正常么??


另外, 有问题的CH340C和CH340N还是从不同的两家买的, 但丝印编号都是4114开头, 而原有的没问题的丝印都是2开头.?


是批次工艺有区别, 还是我买到了假货?


之前注意过这个CH340C通信时的情况和USB2TTL上的CH340G不太一样, 


使用这个CH340C对STC8H烧录时, 每次可以读入32bytes, 然后间隔100ms以上再读一组, 而以前用CH340G时则是每次两三个byte, 间隔很小. 可以看这个问题里不同输出记录的差别

https://gitee.com/iosetting/stc8prog/issues/I5DQET


不知道是否属于正常情况?



您好,如之前所述USB设备反复断连现象较奇怪。但如上提示的bcdDevice并无异常,贴中的芯片型号和版本均为正常大批量应用和供货的版本。我们可以安排贴中的同版本芯片和评估板给贵司做下交叉验证。

同时,可看下USB连接windows电脑或Ubuntu下先经过Hub再连接主机,这2种情形下的识别和工作情况。


Windows测过的没这个问题, 经USBHub接没测过, 今天会测一下


在ch340产品页上提了样品申请了.


好的,我们今天安排下。


在Ubuntu20.04下通过USBHub连接的也测了, 也存在disconnected的问题

等样品到了之后我再测吧


今天收到样品了, 感谢! 白天一直没机会测. 晚上初步测试的结果, bcdDevice没错是相同的, 从测试看还是存在同样的问题. 


CH340C

1663252999923947.png


CH340N

1663252999923085.png


有点怀疑是Ubuntu系统中某个组件与CH340有冲突, 做一个系统盘用干净的系统启动试一下


用Ubuntu20.04.1安装盘启动的系统测试了, 没有问题, 不会出现disconnected的现象.

因此问题范围可以缩小为Ubuntu的某个软件造成的影响了.


回到原系统, 又排查了一圈udev规则, 没有进展. 

非常奇怪, 问题仅仅存在于bcdDevice=81.32的设备上, 一样的idVendor和idProduct, bcdDevice=2.64的就稳得很.

可能要找块硬盘重装系统排查了.


今天装了两遍系统, 重装各种软件, 终于定位到问题了, 和 TLP 这个软件有关系.


这是一个Ubuntu下, 笔记本的电源管理软件 https://linrunner.de/tlp/index.html

安装完这个软件然后重启, 就能复现CH341设备不断disconnect的问题, 卸载完这个软件, 问题就消失了.

因为我用的几个thinkpad默认都会装TLP, 所以都存在这个问题. 具体是怎样产生冲突的, 还需要再研究下.


又进一步了解了这个软件关于USB设备的配置,

https://linrunner.de/tlp/settings/usb.html

根据这个配置说明, 将CH340设备ID加入USB_DENYLIST(20.04的tlp版本还是1.3.1, 配置为USB_BLACKLIST)后可以避免被disconnect:


$ sudo vi 00-template.conf


# PARAM="value"

增加这行

USB_BLACKLIST="1a86:7523"

保存后, 等CH340下一次disconnect后再连上就会生效.



沁恒可能要调查一下, 为什么这个软件只针对81.32而不会针对2.5x, 2.6x?


感谢您的反馈,我们这边安排测试并提交下相关信息给此软件作者。


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