基于CH340的一键下载电路

一、CH340简介

  CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口。CH340是国产芯片,应用场合居多,市场占有率很高。常用的USB转串口芯片还有CP2102、PL2303、FT232等,相比之下CH340性价比最高。通过CH340转串口连接到单片机MCU的片上UART可以实现程序的一键烧写功能。CH340有以下特点:

  1. 全速 USB 设备接口,兼容 USB V2.0。
  2. 计算机端 Windows 操作系统下的串口应用程序完全兼容,无需修改。
  3. 硬件全双工串口,内置收发缓冲区,支持通讯波特率 50bps~2Mbps。
  4. 支持常用的 MODEM 联络信号 RTS、DTR、DCD、RI、DSR、CTS。
  5. 软件兼容 CH341,可以直接使用 CH341 的驱动程序。
  6. 支持 5V 电源电压和 3.3V 电源电压甚至 3V 电源电压。

  

二、CH340G在Arduino上的下载电路应用

2.1硬件电路

 

2.2电路说明与注意事项

  • 该电路为本人实际应用在Atmega2560-16AU芯片上的可行电路,对于大部分单片机具有通用性。
  • CH340的TXD脚应该接单片机的RXD脚,RXD脚接单片机的TXD脚,这样一发一收才能进行通信。
  • CH340芯片内置了USB上拉电阻,UD+和UD-引脚应该直接连接到USB总线上。这里R1、R3两个22R的小电阻可以去除,实际应用不影响。
  • CH340G需要外部提供12MHz的晶振,振荡电容选择两个22pF电容。
  • 5V供电时芯片V3引脚需要接一个104电容到地,3.3V供电时直接将V3脚与3.3V电源引脚短接就可以了。V3的引脚除了在不同电压供电模式下接法不同,对于电容数值选用也是需要注意的。V3引脚的电容用于内部电源节点退耦,来改善USB传输过程中的EMI,通常容量在4700pF到0.1uF范围,建议容量为0.01uF,即103电容。
  • CH340芯片的发送引脚TXD上接一个反向二极管,然后再连接到对端IC。在接收引脚上加一个限流电阻来防止对端IC对CH340倒灌电。通过反向二极管的原理是:在CH340发送数据时,发送高电平时二极管截止,但是由于对端RXD默认上拉也是高电平不会有采样问题,而发送低电平时二极管导通,对端RXD接收到低电平,因此可以正常通讯。并防止了CH340的TXD发送引脚将电流倒灌到对端IC。通过限流电阻的原理是:倒灌电流导致芯片工作甚至闩锁效应,是由于引脚电流过大超过了芯片设计时容忍的上限导致芯片内部电路出现异常。因此加一个限流电阻就可以了,其他通讯场景也可以仿照此方法进行尝试。
  • Arduino单片机需要复位以实现下载,DTR引脚通过一个104电容接到MCU的RESET上,以实现自动复位和一键下载。
  • Arduino需要预先烧写BootLoader(如果芯片内没有BootLoader的话)方能下载。

三、CH340G在STM32上的下载电路应用

 3.1硬件电路

3.2电路说明与注意事项

  •  该电路为原子的串口下载电路
  • 与Arduino等单片机不同的是,stm32单片机在串口下载时,不仅需要控制RESET来复位,还需控制BOOT0、BOOT1来选择启动位置
  • DTR#和RTS#都是 输出类型, MCUISP(一键下载工具),会控制CH340这两个引脚的高低电平状态,通过控制DTR#和RST#这两个引脚的高低电平状态,从而控制STM32的BOOT0 和 RESET. 
  • DTR#、RST#初始状态的时都是高电平,在启用下载的时候,DTR#维持高,RST#拉低,此时两个三极管Q2 和Q3 导通,那么BOOT0 为高电平,RESET为低电平复位,然后DTR#变低,Q2不导通,复位结束,此时BOOT0 为高电平。stm32的启动模式变为从系统存储器启动,启用串口下载,STM32 和 MCUISP下载软件进行通信,进行代码下载,等到代码下载结束时 RST#先变为高电平,然后DTR#在变成高电平。 

四、CH340驱动程序下载

  附件:CH340 Windows 驱动程序

  说明:解压安装即可,如果安装失败,先点击卸载再点击安装。

 

参考资料:CH340G电路设计注意事项

     CH340芯片选型

       串口一键下载电路(CH340)的理解

 

 

posted @ 2019-01-15 16:17  白色泪光  阅读(14298)  评论(1编辑  收藏  举报