【官方发布】CH9344 USB转四串口芯片Linux驱动

CH9344和CH348的Linux驱动,可前往如下链接下载:http://www.wch.cn/downloads/CH9344SER_LINUX_ZIP.html 

简介:CH9344/CH348的USB转多串口Linux驱动程序,支持32/64位操作系统,内有使用说明文档。

NXP i.MX6ULL+Linux 4.1.15+CH9344 v1.15问题,在发送数据时,调用linux的Write()无法返回。


更确切地说,我的问题是在调用write()函数前,需要等缓冲区待发送的数据发送完,因此调用了tcdrain()函数,但是驱动可能写的不够完善,会出现通讯一段时间后,应用程序卡在tcdrain()。


你好,看到9344上有12个IO口复用,请问下我这边想用这些IO口时,我该如何配置,谢谢


您好,关于IO的使用,请使用我们配套的上位机动态库来操作即可。


关于tcdrain的问题,可以把你的测试code发送给我们确认。正常我们在设定串口后,执行tcflush刷新缓冲区即可。


您好,我们想使用GPIO功能,请问如何获取对应的操作 库?


您好,V1.16版本合入GPIO功能,同时提供应用库与测试例程。下周更新在本贴中。


你好,我这边CH9342G,两路串口一路外接了232,一路外接了485,然后出现完全没办法通讯,串口没有数据传输的时候,我量了DP DM为什么一直有信号?


您好,CH9342G转接的串口均为TTL电平,外接电平转换芯片并不会影响串口通讯。

1、注意芯片H_F引脚是否处于有效状态,也即芯片是否处于硬件流控使能状态;

2、串口发送时建议直接测试TXD引脚,是否有信号输出,若有信号时,短接TXD与RXD引脚看下回环测试是否OK;

3、串口不通讯的时候,主机会定时1ms发送SOF包给全速及低速usb设备,所以会有波形输出;


另,USB转双串口芯片建议客户选用CH342芯片支,其具备以下优势:

支持串口IO独立供电;

支持CDC免驱(也可安装VCP驱动,无需切换硬件模式);

支持高达3Mbps波特率;

提供RS485硬件控制引脚;

内置时钟,外围精简;

提供QFN/ESSOP封装;

详细信息可阅读该链接:http://www.wch.cn/bbs/thread-70942-1.html 



你好,这边是我打开节点方式有问题,所以没有交互。

关于你说的第3点,在没有加载驱动的时候,是可以看到1ms的SOF包;

加载驱动以后,DP DM上可以看到下图这样,微信图片_20201214223343.jpg


加载驱动之前只有SOF包,加载驱动后,驱动会不停对端点发送IN包读取数据,会有很多IN+NAK数据包。附件资料包包含串口测试用例,可以使用demo中的tty_uart例程做下测试验证。


谢谢,这样解释,明白了;

请教下,这个只能主机主动拉吗?芯片有数据的时候主动发送到主机可以吗?

这样如果芯片和其它USB模块挂到同一个HUB上,是不是会有点影响其它模块工作?我们现在HUB上面挂了4G模块,一个WIFI模块,一个U口,一个就是我们这个CH9342G芯片


USB通讯时,所有行为由主机发起,设备只能被动响应。对于提到的其他USB主机和设备通讯是一样的过程。区别是经过HUB时,所有设备会共享带宽,且USB包经过HUB转发效率会有所下降。


谢谢。如果我的使用通讯速率和频率不高的情况下,这个主机端发起的查询我是否能在驱动中修改,如果可以我应该修改什么位置?


对于CH9344,如果不希望设备接入就发起USB读请求,可以在驱动中修改提交USB读请求的时机,可以在串口打开的时候再发起读。关闭时取消所有读请求。


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