CH9102 USB转串口应用体验

        近期使用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的整个流程下来还是相当顺利的,最重要的是芯片的产能和供应也有优势,这也增加了我们对自身产品市场持续供应能力的信心。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CH9101 USB转串口替换FT232R和FT230XQ

学生党一枚,前段时间跟着导师做的项目因为上面用到USB转串口芯片FT232R迟迟买不到,所以打算更换成国产USB转串口芯片CH340,对CH340的认识也很早了,很多年前开始直到现在各种开发板上基本都会标配一颗CH340,像某宝上的S…

FT230X芯片的国产化替代

之前有些项目用到FT230XQ芯片,无奈不好买(价格高),想找些替代的型号。原先使用国产CH340芯片比较多,顺带去官网找下有没有其他小封装的芯片型号。导航比较方便,从官网的产品中心,选择“USB”分类…

Java Code之多态

Java代码 package com.iteye.badpie.javacode.duotai; /** * 人民警察 */public interface IPolice { /** * 抓小偷 */public void catchThief(); }package com.iteye.badpie.javacode.duotai;/*** 人民警察*/ public interface IPolice {/*** 抓小偷*/public void catch…

最小生成树之prim

prim是设置一个初始结点,寻找其周围最小的边权值,并将该结点作为初始结点,继续寻找现在结点周围的边权值的最小值,但要注意如果这次寻找的某个边权值没有上次的小的话仍然保留上一次的边权值,即lowcast的值将会不变。 …

element-ui自定义表头;el-table自定义表头;render-header自定义表头

自定义表头有两种方式&#xff1a;一种是使用render-header 一种是通过设置 Scoped slot 来自定义表头 一、render-header方式 场景&#xff1a;给表头设置自定义按钮&#xff0c;点击时候 批量下载或做其他事件 给当前的那列设置 :render-header <el-table-column align&…

八皇后算法

From: http://blog.csdn.net/feixiaoxing/article/details/6877965 【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 八皇后是一道很具典型性的题目。它的基本要求是这样的&#xff1a;在一个8*8的…

手机进水急救——爆米花可用来吸干水分

第一步&#xff1a;切断电源一旦手机掉到水里或进了水&#xff0c;请马上断开电源。因为手机的损害往往不是由水本身导致的&#xff0c;而是因为水引发的内部元件的短路&#xff0c;甚至进一步导致元件烧坏或电池爆炸。一旦不能立马关掉手机电源的话&#xff0c;如果你的手机电…

NOIP2011 选择客栈

题目描述 Description丽江河边有 n 家很有特色的客栈&#xff0c;客栈按照其位置顺序从1 到n 编号。每家客栈都按照某一种色调进行装饰&#xff08;总共k 种&#xff0c;用整数0 ~ k-1 表示&#xff09;&#xff0c;且每家客栈都设有一家咖啡店&#xff0c;每家咖啡店均有各自的…

vue项目转rem;H5配置rem;px转rem

H5可以配合vant组件库书写项目&#xff0c;和使用rem后vant组件样式变小了解决办法。&#xff08;引入方式&#xff09; 以下是配置rem步骤&#xff1a; 1.安装 flexible和 postcss-px2rem&#xff08;命令行安装&#xff09; lib-flexible 会自动在为你添加 meta name“viewp…

rip

如何使rip中实现等价均衡 目的&#xff0c;使r3收到的关于172.16.0.0的metric值由2变成5r1的出接口做首先定义访问控制列表access-list 1 permit 172.16.0.0 0.0.0.0router ripoffset-list 1 out 3 s1 172.16.1.0 12.1.10.0 13.1.1.0r2 ----------- r1 ------------…

通过进程ID获取基地址

From: http://blog.csdn.net/firefoxbug/article/details/7201351 下面代码是通过进程ID来获取进程的基地址&#xff0c;创建一个进程快照后&#xff0c;读取进程模块&#xff0c;一般情况下第一个模块就是进程的基地址&#xff0c;下面的程序通过模块的字符串匹配来找到基地址…

git代码回滚到以前某一版本

1.使用 git log 查看之前提交的版本&#xff0c;每一版对应的hash值&#xff0c;默认展示几条&#xff0c;如果想查看更多&#xff0c;一直按回车。 git reset --hard 目标版本hash值 &#xff0c;注意&#xff1a;这一步操作完后&#xff0c;目标版本之后的代码将全部清掉&am…

滑冰为什么这么难

春天快到了&#xff0c;冬天马上要过去了&#xff0c;不好好利用东北这地方的天然优势实在是可惜。所以趁着冰还没化的时候&#xff0c;我决定尝试滑冰。小时候也滑过&#xff0c;但是不像现在这么害怕&#xff0c;从穿起冰鞋的那一刻起&#xff0c;紧张感随之而来&#xff0c;…

python发送各类邮件的主要方法

From: http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html python中email模块使得处理邮件变得比较简单&#xff0c;今天着重学习了一下发送邮件的具体做法&#xff0c;这里写写自己的的心得,也请高手给些指点。 一、相关模块介绍 发送邮件主要用到了smtplib和e…

codevs4343 找回密码

题目描述 DescriptionjrMz 很喜欢动漫《叛逆的鲁鲁修》(额 不知道是不是因为他盯上了动画片里的 MM),他准备以一种神奇的方式降临《叛逆的鲁鲁修》世界,所以他先从《变形金刚》里把大黄蜂拐了出来,然后成功加入了黑色骑士团。不过比较坑的事情出现了,正在与机甲激烈战斗中的大黄…

图片保持比例自适应大小;图片保持比例自动充满父元素;图片保持比例充满盒子

需求&#xff1a;经常会有一个div盒子&#xff0c;里面放入一个img图片。需要是图片保持比例&#xff0c;缩放充满div盒子。 思路&#xff1a; 1.必须给父元素设置固定的宽高。2.给img设置 object-fit: scale-down; 属性 object-fit使用学习 先看效果&#xff1a; <!DOCTYP…

如何利用好新浪微博

本文可以简要概括为如何利用新浪微博并安全的使用微博等社交网站或工具。 随着互联网和计算机技术的发展&#xff0c;涌现了许许多多的技术应用。从以前的电子邮件到论坛到博客再到微博。尽管我们在许许多多的技术方面引用了国外成功的例子&#xff08;特别是在IT领域&#xff…

HibernateTemplate的一些常用方法总结

1&#xff1a;get/load存取单条数据public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get(Teacher.class, id); } public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.load(Teacher.class, id); } 2&#xff…

解决SVN提交代码时的错误:“Could not execute PROPPATCH”

今天在提交代码的时候&#xff0c;SVN报出了一个错误&#xff08;斜体黑字部分&#xff09;&#xff1a; 提交失败(细节如下): 至少有一个属性变更失败&#xff1b;版本库未改变 设置属性 “log” 出错: Could not execute PROPPATCH. 最初&#xff0c;在我Google了一些信…

Python序列之元组

系列文章目录 Python序列之列表 Python序列之元组 系列文章目录前言一、元组是什么&#xff1f;二、元组操作1.元组的创建&#xff08;1&#xff09;通过()创建。小括号可以省略。&#xff08;2&#xff09;通过tuple()函数创建。&#xff08;3&#xff09;通过生成器推导式创…