CP2102 USB 转串口芯片数据分析-Arduino中文社区 - Powered by Discuz! Archiver

Zoologist 发表于 2019-8-28 20:46

CP2102 USB 转串口芯片数据分析

CP210x是Silicon Labs 公司出品的一系列USB转串口芯片。目前这一系列有:CP2101,CP2102, CP2103, CP2104, CP2105, 和CP2108。其中不同版本差别在下图可以看到【参考1】:                              最近我拿到一个 CP2102 的USB转串口卡,发现Windows10可以通过WindowsUpdate直接安装驱动无需额外下载。另外,它的官方网站提供了大量的资料和参考给人感觉很好。我的目标是使用 Arduino 来直接驱动,因此还需要进行一些额外的研究。非常遗憾,之前介绍的USBlyser抓包结果让人看起来一头雾水,最后只能使用USB逻辑分析仪抓包。一端通过Arduino 按照9600,8,None,1,None 模式发送。另外一端使用串口工具读取。数据是单独的A2秒后发送“string from www.lab-z.com” 字符串。对照网站提供的AN571可以解读全部数据。1.      打开/关闭串口



2.查询CTS/RTS等等线的状态

设备返回状态信息
3.查询 Serial Status
返回一个19Bytes的结构体



4.设置通讯参数



0x0800 : 1 Stop bit, None Parity, Data bits=85.设置流控制



发送一个 20Bytes 的数值,上面发送多次的原因是前两次被NAK 了,第三次才成功。6.设置特殊控制字符(实际上我们不需要)



7.设置波特率
这个 0x01C200 是 115200 的波特率。紧接着又设置了一次,这次是9600
8.设置 Modem 握手方式(我们没有用),这里用了 0x0200,设置了RTS
随后又设置用 DTS


参考:
1. https://www.silabs.com/documents/public/application-notes/an976-cp2102-3-4-9-to-cp2102n-porting-guide.pdf

fangfang120 发表于 2020-3-19 10:54

好好学习,天天向上
页: [1]
查看完整版本: CP2102 USB 转串口芯片数据分析