CH340电路设计注意事项

在前面两篇博客提到了CH340的电路设计以及芯片选型,本文将重点放在使用CH340芯片进行电路设计的一些细节与注意事项。

电压匹配问题

CH340 芯片通过 USB 转换出来的 TTL 串口输出和输入电压是根据芯片供电电压是自适应的。也即,如果芯片是 5V 供电,那么串口输出和采样都是  5V;如果是 3.3V 供电,那么标准就成了 3.3V,因此在实际使用的时候,串口连接到的对端设备需要注意电压匹配的问题。其中在 5V 供电模式下,是可以与 3.3V 系统兼容的,反过来则不可以,如果 CH340 是 3.3V 供电,那么不可以接 5V 系统,会损坏芯片。另外如果对端是 1.8V 系统,那么是不能与 CH340 的 3.3V 模式兼容的,此时输出和采样会出错。最好加一些器件来升降压来进行电压匹配。因此设计时确认好对端串口电平范围,然后决定 CH340 工作在 3.3V 或者 5V 工作模式。在前面文章中也有提及,在电路设计原理上,5V 供电时芯片 V3 引脚需要接一个 104 电容到地,3.3V  供电时直接将 V3 脚与 3.3V 电源引脚短接就可以了。

防止电流倒灌问题

在实际应用中,当 CH340 与其他 IC 譬如 MCU 等器件一同使用时,如果串口直连的双方器件有一方不需要供电工作时,要注意电流倒灌导致未供电的芯片继续工作的情况,或者是在串口下载场景中,当 MCU 需要复位以实现下载时,发现复位不成功,可能也是由于该原因造成的。因此,在电路设计中可以做如下改动来防止 CH340 与对端 IC 出现任何一方被倒灌电的情况。原理图如下:


也就是在 CH340 芯片的 发送引脚 TXD 上接一个反向二极管,然后再连接到对端 IC。在接收引脚上加一个限流电阻来防止对端 IC 对CH340 倒灌电。

通过反向二极管的原理是:在 CH340 发送数据时,发送高电平时二极管截止,但是由于对端 RXD 默认上拉也是高电平不会有采样问题,而发送低电平时二极管导通,对端 RXD 接收到低电平,因此可以正常通讯。并防止了 CH340 的 TXD 发送引脚将电流倒灌到对端 IC。

通过限流电阻的原理是:倒灌电流导致芯片工作甚至闩锁效应,是由于引脚电流过大超过了芯片设计时容忍的上限导致芯片内部电路出现异常。因此加一个限流电阻就可以了,其他通讯场景也可以仿照此方法进行尝试。

晶体以及电容的选用


对于 CH340 系列需要外部晶振的芯片,在选用晶振时如果选择 12MHz 的石英晶体,那么旁路电容选择 22pF 的独石或高频瓷片电容。如果选用的低成本陶瓷晶体,那么旁路电路的容量必须用该晶体厂家的推荐值,一般情况下是 47pF。对起振困难的晶体,建议电容数值减半。如果仍然无法起振,最好参考下选用晶振的官方推荐电容值。

芯片CH340的V3引脚作用

V3 的引脚除了在不同电压供电模式下接法不同,对于电容数值选用也是需要注意的。V3 引脚的电容用于内部电源节点退耦,来改善 USB 传输过程中的 EMI,通常容量在 4700pF 到 0.1uF 范围,建议容量为 0.01uF,即 103 电容。

提高工作稳定性和抗干扰

在这里参考了沁恒官网提供的文章《USB芯片的电路及PCB设计的重要注意事项》。需要设计 USB 电路的工程师可以下载下来参考学习。 因为 USB 信号属于模拟信号,所以在 CH340 等 USB 芯片内部包含数字电路和一些模拟电路,另外,USB 芯片中还包含时钟震荡及 PLL 倍频电路,电路的公共地端在芯片内部已经连接在一起并连接到芯片的 GND 引脚。

如果 USB 芯片有时工作不正常、或者 USB 数据传输随机性失败、或者抗干扰能力差,那么就应该考虑 USB 芯片是否稳定工作。影响 USB 芯片工作稳定性的几大因素有:

  • 时钟信号不稳定 这是主要原因,下面将详细分析。
  • 时钟信号受干扰 - 解决方法:PCB 设计时尽量不再晶体及震荡电容附近走线,尤其是不要走继电器、电动机等带有瞬时冲击电流的电源线和强信号线;在晶体及震荡电容周边布置 GND 铺铜屏蔽干扰;将晶体外壳接地(任何需要晶体工作的电流都可以这样设计);或者使用有源晶振等。
  • USB信号受干扰解决办法:PCB 设计时使 USB 信号线 D+ 与 D- 平行布线,最好在两侧布置 GND 铺铜,减少干扰。使用符合 USB 规范的带屏蔽层的传输线,不能使用普通排线或者非 USB 线缆。

时钟信号不稳定解决

时钟信号不稳定通常是 PCB 布线中 GND 走线不佳。参考下图,该图适用于 USB 类芯片,图中有 6个接地点,分别是 A、B、C、D、E、F,设计电路及 PCB 时应该尽量避免这 6 个 GND 点之间存在电压差(主要是指数字电路中的高频毛刺电压,也就是数字噪声)。


解决方法是:

1.尽量缩短这 6 个点之间的距离;

2.类似模拟电路设计中的单点接地;

3.大面积 GND 铺铜及 GND 多点过孔 VIA 降低高频信号阻抗。图中最关键的是 E 点、F 点与 D 点之间不能存在高频毛刺电压差,可以用示波器探头接 D 点测量时钟输入端 XI 引脚的 12MHz 时钟波形是否有抖动。

参考PCB设计

下图适用于 CH375 或 CH374 或者 CH341 等 GND 引脚紧靠 XI 引脚和 XO 引脚的 USB 芯片,比较容易走线。


下图适用于 CH372/CH374 等 GND 在时钟脚对侧的 USB 系列芯片,此时 GND 引脚借助过孔 VIA 及冗余 GND 线连接时钟振荡电路等。


下图适用于 CH372/CH374 等 GND 远离 XI 引脚和 XO 引脚的 USB 芯片,GND 走线和时钟信号线都比较短,时钟信号受到 GND 屏蔽保护。


不良设计

下图中 USB 芯片 CH372 的引脚 D 点远离电容 C1 和 C2 的 GND 端 E 点 和 F 点,并且 C1 和 C2 的 GND 端与单片机 MCU 的 GND 连接,所以 MCU 的数字噪声将被引入 CH372 的 XI 引脚和 XO 引脚。建议改为:在 C1 和 C2 的 GND 端与 CH372 的 GND 引脚之间连接短线甚至断开 MCU 的GND(实际上这几个 GND 之间仍然是物理相通的)。

客观地讲,CH372、CH375、CH341 等 USB 芯片时钟的稳定性要求较高,稍有不稳定就会影响 USB 传输甚至不工作。因此,类似于下图的设计,强烈建议改进 PCB 布线以提高稳定性。


以上就是在 CH340 或者 USB 芯片电路设计时经常遇到的问题了,实际应用中还会有很多未提及的问题出现,当然也有相应的解决方案,譬如进行对电路进行电气隔离和增加电流保护,提升 ESD 性能等。


如果有疑问或者好的想法,可以给我邮件或者评论~:-D

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

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

相关文章

解决 Visual Studio 中代码注释自动折叠的问题

今天突发奇想,打算把存储过程以注释的形式放在代码中进行版本管理,比如下面的代码: 由于存储过程很长,注释占了很多行,严复影响了正常代码的排版与阅读体验。之前也遇到过这样的场景,当时通过手动添加regio…

Newtonsoft.Json高级用法

From: http://www.cnblogs.com/yanweidie/p/4605212.html 手机端应用讲究速度快,体验好。刚好手头上的一个项目服务端接口有性能问题,需要进行优化。在接口多次修改中,实体添加了很多字段用于中间计算或者存储,然后最终用Newtonso…

Android 经典示例,初学者的绝好源码资料

2019独角兽企业重金招聘Python工程师标准>>> Android 经典示例,初学者的绝好源码资料 附上源码: 转载:http://www.adobex.com/android/source/details/00000374.htm 转载于:https://my.oschina.net/androidcode/blog/104696

CH340 Linux驱动使用教程

在官方Linux内核版本中自Kernel2.6以后就默认包含了对CH340/CH341芯片的驱动支持了,但比较遗憾的是该自带驱动版本较老(由开源社区开发者提交)已不能满足使用需求了,因此我们需要用芯片官网提供的新驱动进行替换链接。 1. 首先去…

h5开发实时预览;真机调试开发;拼接ip的地址直接微信打开或者浏览器打开也可以实时预览

http://192.168.10.135:2277/#/Write1 本地启动vue项目 将地址栏复制 放在微信开发者工具 可以借助微信开发者工具预览 找到自己电脑的ip 也可以电脑输入自己的ip和对应端口号地址进行预览 最后将拼接ip和端口号的地址直接微信打开或者浏览器打开也可以实时预览

python基础2

本节内容 列表、元组操作字符串操作字典操作集合操作文件操作字符编码与转码 一、列表、元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作 定义列表 >>> name [hongpeng,21,ops] 通过下标访问列表中的元素…

element-ui嵌套弹框遮罩层解决

:modal-append-to-body“false” :append-to-body“true” 嵌套的 Dialog 必须指定该属性并赋值为 true <template><el-button type"text" click"outerVisible true">点击打开外层 Dialog</el-button><el-dialog title"外层 D…

Linux 串口调试工具汇总

在 linux 系统下进行串口调试或者开发时配合简单易用的串口调试工具那是必不可少。这篇博客对当前用的较多的&#xff0c;且我自己经常用的一些串口工具做一下汇总&#xff0c;大家可以参考一下。 实验环境&#xff1a; OS: Ubuntu16.04 Kernel: 4.4.0 --------------------…

[翻译] effective go 之 Names Semicolons

2019独角兽企业重金招聘Python工程师标准>>> Names Names are as important in Go as in any other language. In some cases they even have semantic effect: for instance, the visibility of a name outside a package is determined by whether its first cha…

75.Android之基本架构

转载&#xff1a;http://www.cnblogs.com/lijunamneg/archive/2013/01/18/2866953.html Android其本质就是在标准的Linux系统上增加了Java虚拟机Dalvik&#xff0c;并在Dalvik虚拟机上搭建了一个JAVA的application framework&#xff0c;所有的应用程序都是基于JAVA的applicati…

TTL转485电路设计

在 TTL/CMOS 转接半双工 RS485 的电路设计中&#xff0c;由于半双工的特性&#xff0c;需要有信号来控制 485 转接芯片的发送和接收使能端&#xff0c;因此需要具体场景具体分析。 如果是使用 MCU 或者自带发送状态指示脚功能&#xff08;指示当前是否在进行串口发送&#xff0…

flash 动画

浏览着网页不知道该干些什么&#xff0c;突然看到好看的flash动画&#xff0c;其实虽然自己编程序&#xff0c;可是真的觉得很羡慕那些美工同事&#xff0c;做的东东真的很漂亮。看着讲解做着做着&#xff0c;唉&#xff0c;跟人家的对不上了&#xff0c;呵呵&#xff0c;成了另…

USB芯片选型

从 USB 芯片的使用角度来说&#xff0c;USB 系列芯片可以划分为 USB 接口芯片与内置 USB 功能的微控制器。前者对于跨平台和易用性方面比较有优势&#xff0c;无需了解芯片内部工作机制&#xff0c;按照芯片的手册以及官方例程来操作就可以了&#xff0c;而使用平台也比较开放&…

CH340安卓驱动使用教程

使用 CH340/CH341 可以很容易在 Android 平台下实现 USB 转串口的功能&#xff0c;由于 CH340/CH341 是 USB 设备&#xff0c;如果使用手机或者平板来操作该芯片的话&#xff0c;就需要满足以下需求&#xff1a; 1. 需要基于 Android 3.1 及以上的系统 2. Android 设备具有 U…

undefined reference to

关于undefined reference这样的问题&#xff0c;大家其实经常会遇到&#xff0c;在此&#xff0c;我以详细地示例给出常见错误的各种原因以及解决方法&#xff0c;希望对初学者有所帮助。 1. 链接时缺失了相关目标文件&#xff08;.o&#xff09; 测试代码如下&#xff1a; 然…

Android 系统使用USB OTG功能/打开USB Host API功能

步骤一&#xff1a;确定 Android 设备是否支持 USB Host 功能&#xff0c;具体可以通过以下步骤进行确认&#xff1a; 1. 查看手机或平板设备参数&#xff0c;或者直接联系厂家咨询&#xff1b; 2. 使用 UsbHostDiagnostics.APK 安卓应用软件直接进行检测&#xff0c;汉化版软件…

Android日志Log使用

Android开发中日志工具的使用是十分重要的&#xff0c;可以帮助我们定位和查找程序执行的问题&#xff0c;了解程序执行过程等。这里以 Eclipse 下的的安卓开发为例进行说明。 打开 LogCat 功能 首先&#xff0c;确保 Eclipse 软件中已经打开了日志工具 LogCat 功能&#xff…

Android项目目录结构

在 Eclipse 中新建或者打开一个 Android 项目&#xff0c;可以看到目录视图如下所示&#xff1a; 其实项目开发中&#xff0c;使用频率较高的并不多&#xff0c;我们只要了解清楚不同类型的文件和不同目录的对应关系就可以了。 1. src src 目录用于存放 Java 代码&#xff0…

Libusb开发教程二 API介绍与使用

背景介绍 上一篇博文主要介绍了 Libusb 在 Linux 系统下的详细安装过程&#xff0c;除了 libusb-1.0.9.tar.bz2 离线包之外&#xff0c;还安装了 libusb-compat-0.1.4.tar.bz2。顾名思义&#xff0c;第二个是先前版本的兼容包&#xff0c;因此在使用过程中&#xff0c;开发者就…

tty,串口,控制台与驱动程序

tty 设备的名称是从过去的电传打字机缩写而来&#xff0c;最初是指链接到 Unix 系统上的物理或者虚拟终端。随着时间的推移&#xff0c;当通过串行口能够建立起终端连接后&#xff0c;这个名字也用来指任何的串口设备。物理 tty 设备的例子有串口、USB 到串口的转换器&#xff…