在贵司技术建议下,采用CH347T 进行串口通信方案的设计。
设计目标,在Linux 环境(Kernel 3.10)下使用 CH347T 支持非标波特率传输。预设波特率 23040 368640 46080等。
以下测试均为 8bit 数据位 1停止位 无硬件流控 无奇偶校验
测试结果:
在 Windows 环境使用 CH347T 使用上述波特率AB通道回环测试,正常,无误码。
在 Windows 环境使用 CH347T与FTDI FT232RL采用上述波特率测试,正常,无误码。
在 Linux 环境使用 CH347T与AB通道回环测试(波特率设定为23040),可以正常通信,但是实际波特率是多少,不确定。
在 Linux 环境使用 CH347T与FTDI FT232RL测试(波特率设定为23040),无法通信FTDI FT232RL发送的数据在CH347T端 16进制读到都是0, CH347T对FTDI FT232RL发送的数据无法被FTDI FT232RL正确识别。切换为115200 /9600等标准波特率,工作正常,切换到38400波特率无法工作,现象和23040状态下一致。
由于设备端采用FPGA设计,时钟经过验证无误,FTDI方案可以与FPGA端进行通信,波特率为23040,数据可靠。
在切换为CH347T后 Windows 环境下可以配置成23040波特率,且可以正常通信,说明IC设计没有问题。但是在Linux环境下,相同硬件无法完成通信,且使用开源软件gtkterm 写入到硬件的波特率23040是否正确不得而知。
结论:有可能是驱动问题导致该设备无法在linux环境正常工作。期待解决。