南京沁恒的 CH340 是非常好用的USB 转串口芯片,在日常使用中完全可以替代FT232R。美中不足的是CH340 虽然在 Datasheet中标明可以支持2 000 000的高速波特率,但是在实际测试中这个波特率会有丢失数据的问题(该问题可以使用 LoopBack 的方式看到)。CH340C 和CH340B 同样都是内置晶振的,但是C 表现会比B 的好一点。我用逻辑分析仪确认过,问题发生在接收的时候,概率性丢失数据。理论上这种问题可以通过通讯协议来克服,但这样做会导致代码复杂性增高可靠性降低。
经过和沁恒的工程师交流,更新的 CH343(貌似是21年6月新出品的)能够支持2000000的波特率,于是尝试之。新型号基本特性和CH340 一样:
●全速 USB 设备接口,兼容 USB V2.0。
●内置固件,仿真标准串口,用于升级原串口外围设备,或者通过 USB 增加额外串口。
● 计算机端 Windows 操作系统下的串口应用程序完全兼容,无需修改。
● 支持免安装的操作系统内置 CDC 类驱动程序或者多功能高速率的 VCP 厂商驱动程序。
● 硬件全双工串口,内置独立的收发缓冲区,支持通讯波特率 50bps~6Mbps。
● 可选自动识别和动态自适应在 115200bps 及以下的常用通讯波特率。
● 串口支持 5、6、7 或者 8 个数据位,支持奇校验、偶校验、空白、标志以及无校验。
● 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DSR、CTS。
● 支持 CTS 和 RTS 硬件自动流控。
● 支持半双工,提供正在发送状态 TNOW 支持 RS485 切换。
● 通过外加电平转换器件,支持 RS232 接口。
● USB 端支持 5V 电源电压和 3.3V 电源电压。
● 串口 I/O 独立供电,支持 5V、3.3V、2.5V、1.8V 电源电压。
● 内置上电复位,内置时钟,无需外部晶振。
● CH343P 内置 EEPROM,可配置芯片 VID、PID、最大电流值、厂商和产品信息字符串等参数。
● 芯片内置 Unique ID(USB Serial Number)。
● 提供 SOP16 和 ESSOP10 及 QFN16 无铅封装,兼容 RoHS。
CH343 这个型号有三种封装,基本功能相同。其中的 CH343P 还提供了修改定制VID,PID 以及其他信息的功能(对标 CH340B)。
这次尝试自己制作了一个 CH343P 的开发板,PCB 如下:
焊接之后发现无法工作,经过了3天的调试最终成功。总结如下:
- 务必准备热风枪,电烙铁焊接可靠性不强;
- 要想使这款芯片工作,只需要下面4个电设置正确即可
首先 VBUS, 需要接到USB接口上面的 VCC(5V);其次,VDD 是芯片供电输入位置,需要输入5V;接下来V3 是芯片内部将5V转为3.3V输出的Pin;最后 VIO 是用来决定UART 信号电平的输入Pin,如果这里是 3.3V 那么 TXD RXD 将会是3.3V,如果是5V 那么TXD RXD 将会是5V 电平。在DetaSheet中有如下描述:
特别注意:如果VIO给的是 3.3V ,而其他 VUART 送入了 5V,那么你的芯片就会损坏(我因为这个原因损坏了2个芯片)。
TXD RXD 工作电平为3.3V 最稳妥的电路如下:
- VBUS 和 VDD5 都使用 USB接口上的5V 供电
- V3 和 VIO 在一起,这样TXD RXD都是3.3V
当然更稳妥的是跟着参考电路设计(官网可以下载)
焊接时建议先焊接 USB 接口,然后焊接上这个芯片,焊接完成后即可插入PC 进行实验,在没有外围电容的情况下,这个芯片是能够正常工作的,确认之后再进行其他外围元件的焊接。