本篇文章将带领大家全面解析USB转串口芯片CH340,主要分为以下几个方面:
一、CH340芯片介绍
二、CH340芯片特点
三、CH340芯片封装
四、CH340芯片引脚说明
五、CH340芯片功能说明
六、CH340芯片应用电路
一、CH340芯片介绍
CH340是一个USB总线的转接芯片,可实现USB转串口或者USB转打印口。
在串口方式下,CH340提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB总线。
图1 CH340实物图
图2 CH340转换
二、CH340芯片特点
● 全速USB设备接口,兼容USBV2.0。
● 仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。
● 计算机端Windows操作系统下的串口应用程序完全兼容,无需修改。
● 硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。
● 支持常用的MODEM联络信号RTS、DTR、DCD、RI、DSR、CTS。
● 通过外加电平转换器件,提供RS232、RS485、RS422等接口。
● CH340R芯片支持IrDA规范SIR红外线通讯,支持波特率2400bps到115200bps。
● 内置固件,软件兼容CH341,可以直接使用CH341的VCP驱动程序。
● 支持5V电源电压和3.3V电源电压。
● CH340C/N/K/E/X/B内置时钟,无需外部晶振,CH340B还内置EEPROM用于配置序列号等。
● 提供SOP-16、SOP-8和SSOP-20以及ESSOP-10、MSOP-10无铅封装,兼容RoHS
三、CH340芯片封装
图3 CH340封装图
CH340系列芯片:
CH340C、CH340N、CH340K、CH340E、CH340X和CH340B内置时钟,无需外部晶振。
CH340B内置EEPROM用于配置序列号,以及部分功能可定制等。如需小体积建议用CH343P。
CH340K内置三只二极管用于防止独立供电时MCU通过I/O引脚对CH340电流倒灌。
CH340K的底板是0#引脚GND,是可选连接;3#引脚GND是必要连接。
CH340X基于CH340E改进,增加了3.3V供电时的IO耐受5V特性。
CH340X的6引脚如果外加电阻可以将6#引脚从TNOW切换为DTR#CH340C如果批号4开头且末3位大于B40,则可为8#引脚加4.7KΩ下拉电阻将其改为DTR#。
CH340R提供反极性TXD和MODEM信号,已停产。
CH340的USB收发器按USB2.0全内置设计,UD+和UD-引脚建议不要额外串接电阻。
四、CH340芯片引脚说明
注:CH340未用到的I/O引脚可以悬空,应用图以CH340T等举例,也适用CH340G/C/N/K/E/X/B等。
五、CH340芯片功能说明
5.1 时钟
CH340G/CH340T/CH340R芯片正常工作时需要外部向XI引脚提供12MHz的时钟信号。一般情况下,时钟信号由CH340内置的反相器通过晶体稳频振荡产生。外围电路只需要在XI和XO引脚之间连接一个12MHz的晶体,并且分别为XI和XO引脚对地连接振荡电容。
CH340C/N/K/E/X/B芯片都已内置时钟发生器,无需外部晶体及电容。
5.2 复位
CH340芯片内置了电源上电复位电路。CH340B芯片还提供了低电平有效的外部复位输入引脚。
5.3 电源
CH340芯片支持5V电源电压或者3.3V电源电压。当使用5V工作电压时,CH340芯片的VCC引脚输入外部5V电源,并且V3引脚应该外接容量为0.1uF的电源退耦电容。当使用3.3V工作电压时,CH340芯片的V3引脚应该与VCC引脚相连接,同时输入外部的3.3V电源,并且与CH340芯片相连接的其它电路的工作电压不能超过3.3V。
CH340X和批号末3位大于B40的CH340C/N的IO支持5V耐压,防向内电流倒灌。
CH340K不仅防向内电流倒灌,并且降低了对外驱动能力,可减少CH340向外的电流倒灌。
CH340芯片自动支持USB设备挂起以节约功耗,NOS#引脚为低电平时将禁止USB设备挂起。
CH340G/C/T/K芯片的DTR#引脚在USB配置完成之前作为配置输入引脚,可以外接4.7KΩ的下拉电阻在USB枚举期间产生默认的低电平,通过配置描述符向USB总线申请更大的电源电流。
CH340芯片内置了USB上拉电阻,UD+和UD-引脚应该直接连接到USB总线上。
5.4 连接
异步串口方式下CH340芯片的引脚包括:数据传输引脚、MODEM联络信号引脚、辅助引脚。
数据传输引脚包括:TXD引脚和RXD引脚。串口输入空闲时,RXD应为高电平。CH340G/C/T/R芯片,如果R232引脚为高电平启用辅助RS232功能,那么RXD引脚内部自动插入一个反相器,默认为低电平。串口输出空闲时,CH340G/C/N/E/X/B/T芯片的TXD为高电平,CH340K芯片的TXD为微弱的高电平,CH340R芯片的TXD为低电平。
MODEM联络信号引脚包括:CTS#引脚、DSR#引脚、RI#引脚、DCD#引脚、DTR#引脚、RTS#引脚,CH340C还提供了OUT#引脚。所有这些MODEM联络信号都是由计算机应用程序控制并定义其用途。
辅助引脚包括:IR#引脚、R232引脚、CKO引脚、ACT#引脚、TNOW引脚。IR#引脚为低电平将启用红外线串口模式。R232引脚用于控制辅助RS232功能,R232为高电平时RXD引脚输入自动反相。ACT#引脚为USB设备配置完成状态输出(例如USB红外适配器就绪)。TNOW引脚以高电平指示CH340正在从串口发送数据,发送完成后为低电平,在RS485等半双工串口方式下,TNOW可以用于指示串口收发切换状态。IR#和R232引脚只在上电复位后检查一次。
5.5 CH340B的配置信息
CH340B芯片还提供了EEPROM配置数据区域,可以通过专用的计算机工具软件为每个芯片设置产品序列号等信息,配置数据区域如下表所示。
表1EEPROM配置数据区域
5.6 串口特性
CH340内置了独立的收发缓冲区,支持单工、半双工或者全双工异步串行通讯。串行数据包括1个低电平起始位、5、6、7或8个数据位、1个或2个高电平停止位,支持奇校验/偶校验/标志校验/空白校验。CH340支持常用通讯波特率:50、75、100、110、134.5、150、300、600、900、1200、1800、2400、3600、4800、9600、14400、19200、28800、33600、38400、56000、57600、76800、115200、128000、153600、230400、460800、921600、1500000、2000000等。
对于单向1Mbps及以上、或双向500Kbps及以上的应用,建议改用CH343启用硬件自动流控。
CH340串口接收信号的允许波特率误差约2%,CH340G/CH340T/CH340R串口发送信号的波特率误差小于0.3%,CH340C/340N/340K/340E/340X/340B串口发送信号的波特率误差小于1.2%。
在计算机端的Windows操作系统下,CH340的驱动程序能够仿真标准串口,所以绝大部分原串口应用程序完全兼容,通常不需要作任何修改。
CH340可以用于升级原串口外围设备,或者通过USB总线为计算机增加额外串口。通过外加电平转换器件,可以进一步提供RS232、RS485、RS422等接口。
CH340R只需外加红外线收发器,就可以通过USB总线为计算机增加SIR红外适配器,实现计算机与符合IrDA规范的外部设备之间的红外线通讯。
六、CH340芯片应用电路
6.1 USB转9线串口
下图是由CH340T(或CH340C/B)实现的USB转RS232串口。CH340提供了常用的串口信号及MODEM信号,通过电平转换电路U8将TTL串口转换为RS232串口,端口P11是DB9插针,其引脚及功能与计算机的普通9针串口相同,U8的类似型号有MAX213/ADM213/SP213/MAX211等。
如果只需要实现USB转TTL串口,那么可以去掉图中的U8及电容C46/C47/C48/C49/C40。图中的信号线可以只连接RXD、TXD以及公共地线,其它信号线根据需要选用,不需要时都可以悬空。
P2是USB端口,USB总线包括一对5V电源线和一对数据信号线,通常,+5V电源线是红色,接地线是黑色,D+信号线是绿色,D-信号线是白色。USB总线提供的电源电流最大可以达到500mA,一般情况下,CH340芯片和低功耗的USB产品可以直接使用USB总线提供的5V电源。如果USB产品通过其它供电方式提供常备电源,那么CH340也应该使用该常备电源,这样可以避免与USB电源之间的I/O电流倒灌。如果需要同时使用USB总线的电源,那么可以通过阻值约为1Ω的电阻连接USB总线的5V电源线与USB产品的5V常备电源,并且两者的接地线直接相连接。
V3引脚的电容C8容量为0.1μF,用于CH340内部3.3V电源节点退耦,C9容量为0.1μF,用于外部电源退耦。
对于CH340G/T/R芯片,晶体X2、电容C6和C7用于时钟振荡电路。X2是频率为12MHz的石英晶体,C6和C7是容量为33pF的独石或高频瓷片电容。如果X2选用低成本的陶瓷晶体,那么C6和C7的容量必须用该晶体厂家的推荐值,一般情况下是47pF。对起振困难的晶体,建议C6容量减半。
对于CH340C/N/K/E/X/B芯片,无需晶体X2和电容C6及C7。
在设计印刷线路板PCB时,需要注意:退耦电容C8和C9尽量靠近CH340的相连引脚;使D+和D-信号线贴近平行布线,尽量在两侧提供地线或者覆铜,减少来自外界的信号干扰;尽量缩短XI和XO引脚相关信号线的长度,为了减少高频干扰,可以在相关元器件周边环绕地线或者覆铜。
图4 CH340T实现USB转RS232串口
图5 CH340B实现USB转RS232串口
6.2 连接MCU,各自供电,双向防灌
上图是双供电方式下MCU单片机通过TTL串口连接CH340芯片实现USB通讯的参考电路。CH340由USB总线供电VBUS,MCU使用另一电源VDD,VDD支持5V、3.3V甚至2.5V、1.8V。
图中MCU的RXD引脚应该启用内部上拉电阻,如没有,则建议对RXD引脚外加2KΩ~22KΩ的上拉电阻且接MCU的电源VDD。
防CH340有电但MCU无电时的外灌。图中二极管D6和D7及NMOS管Q5用于防止双电源方式下CH340通过MCU的RXD或TXD内部二极管向失电MCU产生电流倒灌的问题,D7和RTS/BOOT0#的连接是可选的。二极管D6针对CH340的TXD高电平通过MCU的RXD内部二极管向MCU倒灌电流的情形;二极管D7针对CH340的RTS高电平通过MCU的BOOT内部二极管向MCU倒灌电流的情形;NMOS管Q5针对CH340的RXD内部上拉电流通过MCU的TXD内部二极管向MCU倒灌电流的情形。
防CH340无电但MCU有电时的内灌。CH340K、CH340X和批号末3位大于B40的CH340C、CH340N的IO都自动防对内倒灌,即CH340无电但MCU有电时不会产生倒灌电流。再加上D6、D7和Q5能防止CH340向失电MCU外灌电流,所以上图能够实现完全的双向防倒灌。
对于其它批号或者型号的CH340,需要另加防内灌电路。通常是一个NMOS管串联一个肖特基二极管,防双向倒灌。例如,在Q5的漏极D端串联肖特基二极管且其阳极端接CH340的RXD,在D6与CH340之间串接NMOS管且其漏极接D6、栅极接CH340的电源VCC。
如果确定某个情形不会发生,则相应的NMOS管或者二极管可以去掉。例如部分型号MCU的IO支持防倒灌或支持5VT,或者MCU有永久自备电源,不用担心CH340向MCU外灌电流,那么D6、D7、Q5均可以去掉并短路。
二极管优先用小功率的Schottky肖特基二极管BAS70、BAT54,或B0520等。
NMOS管优先用小功率、小电容的NMOS管2SK3018、1012等。
一般情况下,不建议CH340与MCU分开各自供电。如果确有必要,那么还可以选用CH340K。
6.3 单片机USB一键下载
上图是基于USB转串口的多模式MCU一键下载参考电路,无需手工设置或手动复位。
上图针对的MCU类型:MCU本身需支持串口一键下载,NRST为低电平有效的复位输入端,BOOT0默认低电平选择应用程序,高电平选择Boot-Loader下载。例如32F103等。
图中为CH340X,4.7KΩ下拉电阻可选范围3~5.6KΩ,该电阻兼做MCU的BOOT0下拉电阻。对于末3位大于B40的CH340C,可以用OUT#外加下拉电阻后作为第二DTR#接BOOT0。
注:对于BOOT模式电平相反的其它MCU,可以直接用CH340C/G的DTR#控制(默认高电平),或者用6#与5#引脚之间接了电阻的CH340X的DTR#控制(推挽DTR增强模式,默认高电平)。
MCU正常工作状态:下拉电阻使得CH340X进入开源DTR增强模式,6#引脚切换为DTR#,DTR#默认不输出,BOOT0保持低电平,RTS#默认高电平,MCU正常运行应用程序。
一键下载:计算机端下载工具程序打开串口,设置DTR#为高电平、设置RTS#为低电平、再高电平,MCU进入BOOT下载程序。下载完成后,设置DTR#为低电平、设置RTS#为低电平、再高电平,MCU正常运行应用程序,关闭串口前保持DTR#不变。注意,MODEM数据与引脚电平是反相的。
统一供电方式:CH340X用MCU的同一5V或3.3V电源,缺点是CH340X将消耗数十uA的睡眠电流。
独立供电方式:CH340X使用USB的VBUS电源,完全不消耗MCU电源电流,CH340X自身断电后基本不影响MCU的IO,但要避免部分MCU因USB有电但MCU无电而向MCU倒灌电的情况。如果需要完全防止CH340电源对失电MCU的电流外灌,那么参考7.7节的图加NMOS和二极管。
如果NRST引脚需要支持额外的手动复位,那么可以在RTS#与NRST之间串一个1~2KΩ电阻或者阳极接NRST的二极管。