近期使用CH9102 USB转串口芯片成功用在原有使用CP2102的产品板上,整个替换和验证过程还是很顺利的,顺带写个blog做个记录。
原项目上使用CP2102搭载ESP32实现Arduino物联网应用,采用USB转串口芯片实现串口下载,代码的Debug调试,以及编程软件的控制与交互。公司其他项目在用的比较多的USB转串口芯片还有CH340。因为使用CP2102的项目和产品用量不是很大,所以原项目设计更改也一直没有提上日程。
因疫情原因,原使用CP2102的产品一度因为芯片供应问题暂停,本以为缺货只是暂时的,可从2020年至现在国外的芯片供应情况并不乐观。价格波动也十分大,对于公司的芯片采购和囤货也造成不小的麻烦。
为解决该问题,几个月前已经计划使用国产芯片CH340来替换CH9102,功能和通讯速率是可以满足要求的。就是需要修改设计,而且之前批量加工的产品板也会浪费掉。简单梳理了有关项目中能使用到的串口功能,除了必要的串口收发引脚TXD和RXD信号以外,还是用了MODEM控制引脚DTR和RTS,只不过这里并不是用于真正的MODEM通讯,只是因为这2个信号脚可以通过串口软件当作普通输出引脚来用,也即GPO。这个功能和特性用在免按键串口下载电路和IO控制电路中比较普通。原电路:
本来计划是和沁恒的技术支持沟通CH340和CP2102的应用差异点的,聊到了关于上面提到的CP芯片供应问题,哪想原来和CP2102/CP2014/CP2109引脚兼容的USB转高速串口芯片CH9102早已批量供应,很多与我们有同样经历的客户也导入了这颗物料。看了下手册,CH9102有2种封装,和CP芯片常用的QFN24和QFN28的封装都可以兼容,且串口波特率最高支持4Mbps。
得知这个消息后,第一时间和官方申请了样片和demo板。收到芯片之后,二话不说直接将CH9102芯片焊接到原有产品板上(注:原产品板上USB串联的电阻直接改成0R)。未手工安装驱动的情况下,接入计算机后居然直接识别到了串口,显示:
下面开始测试功能,串口收发功能验证通过,当进行串口免按键下载的时候发现下载会失败。咨询技术支持,是因为CH9102芯片支持多种驱动方式,默认上来直接使用的系统内置的CDC串口驱动,好处是免驱动安装应用方便,但是也有如下应用限制。这里就不展开描述了,需要了解具体差异的可以看该网站的说明:USB转串口方案 - 南京沁恒微电子股份有限公司
重新安装厂家给的VCP驱动,下载成功搞定!下面是安装VCP驱动的设备管理器截图:
使用CH9102替换CP2102/CP2104的整个流程下来还是相当顺利的,最重要的是芯片的产能和供应也有优势,这也增加了我们对自身产品市场持续供应能力的信心。