CP210x是Silicon Labs 公司出品的一系列USB转串口芯片。目前这一系列有:CP2101, CP2102, CP2103, CP2104, CP2105, 和CP2108。其中不同版本差别在下图可以看到【参考1】:
最近我拿到一个 CP2102 的USB转串口卡,发现Windows10可以通过Windows Update直接安装驱动无需额外下载。另外,它的官方网站提供了大量的资料和参考给人感觉很好。我的目标是使用 Arduino 来直接驱动,因此还需要进行一些额外的研究。非常遗憾,之前介绍的USBlyser抓包结果让人看起来一头雾水,最后只能使用USB逻辑分析仪抓包。一端通过 Arduino 按照 9600,8,None,1,None 模式发送。另外一端使用串口工具读取。数据是单独的 A 2秒后发送“string from www.lab-z.com” 字符串。对照网站提供的AN571可以解读全部数据。
1.打开/关闭串口
2.查询CTS/RTS等等线的状态
设备返回状态信息
3.查询 Serial Status
返回一个19Bytes的结构体
4.设置通讯参数
0x0800 : 1 Stop bit, None Parity, Data bits=8
5.设置流控制
发送一个 20Bytes 的数值,上面发送多次的原因是前两次被NAK 了,第三次才成功。
6.设置特殊控制字符(实际上我们不需要)
7.设置波特率
这个 0x01C200 是 115200 的波特率。紧接着又设置了一次,这次是 9600
8.设置 Modem 握手方式(我们没有用),这里用了 0x0200, 设置了 RTS
随后又设置用 DTS
参考: