一、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)的理解

基于CH340的一键下载电路的更多相关文章

  1. 关于CH340在STM32实现一键下载电路的研究(转)

    源:关于CH340在STM32实现一键下载电路的研究 在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB ...

  2. CH340在STM32实现一键下载电路

    在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不 ...

  3. STM32 ~ CH340在STM32实现一键下载电路

    在做基于STM32的多功能MP3播放器的课题时,在程序下载这部分时借鉴了正点原子开发板上的一键下载电路,采用CH340G这款芯片设计. 在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不 ...

  4. STM32单片机串口一键下载电路与操作方法详解

    STM32三种启动模式对应的存储介质均是芯片内置的,它们是:1)用户闪存 = 芯片内置的Flash.2)SRAM = 芯片内置的RAM区,就是内存啦.3)系统存储器 = 芯片内部一块特定的区域,芯片出 ...

  5. 基于CentOS7系统一键配置Aria2 实现服务器离线下载工具

    我们有些网友购买的海外VPS主机并不是用来做网站的,而是用来作为下载资源工具使用的.确实用这样的工具搭建之后是比本地下载速度快,因为有些资源.软件等是海外资源,而且挂载在服务器上不占用本地的资源.在这 ...

  6. STM32一键下载电路设计原理

    先放原理图(补充:图中的BOOT0通过10K的电阻接到地),再解释为什么这么设计: STM32启动方式:BOOT0和 BOOT1用于设置 STM32的启动方式 ,见下表: BOOT0=1,BOOT1= ...

  7. You-Get 一键下载全网视频资源

      下载视频 无论是单纯的下载视频收藏,还是以便离线收看,都离不开“下载”,好的工具让你把注意力更好的放在视频的本身,而不用考虑要如何下载视频.下载视频从来不乏方法,之前也介绍了下载 Youtube ...

  8. 【转】Image Cyborg 一键下载存储网页所有图片

    下午仿照网上例子写了个抓取网页中图片并保存到本地的Python的例子,好奇就google了下是否有类似的在线抓取图片的外挂工具. 接着就找到了Pseric写的这篇文章 - Image Cyborg 一 ...

  9. Android之基于HTTP协议的下载

    Android之基于HTTP协议的下载 http://www.blogjava.net/zh-weir/archive/2010/05/02/319892.html http://www.qianfa ...

随机推荐

  1. Kubuntu中thunderbird最小化到任务栏

    作为邮件客户端,如果没有办法显示在任务栏中,实在是说不过去.遗憾的是thunderbird默认真不带这个功能(因为Linux的桌面系统太混乱了?)... 当然,解决也十分简单,只要安装Firetray ...

  2. Spring Boot 简单入门

    添加相关依赖 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http ...

  3. button作用类似于submit

    不想提交,可使用以下 <a href="javascript:;" >修改</a>

  4. 用 Open Live Writer 来写 cnblog.com 博客

    Open Live Writer来源 Windows Live Writer在2012年就停止了更新,Open Live Writer是由Windows Live WriterWriter更名而来,是 ...

  5. 签名Android应用程序

    Android要求对作为产品发布的应用进行签名(包名相同的化,后安装的应用会覆盖前面安装的应用) 签名作用:1.确定发布者的身份.2.确保应用的完整性. 注意:在应用的开发.调试阶段,Eclipse的 ...

  6. js的prototype(2)

    1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个类B,这个类是以A为原型的,并且能进行扩展.我们称B的原型为A. 2 javasc ...

  7. RedHat6使用centos6的yum源

    更换源 cd /etc/yum.repos.d/ wget http://mirrors.163.com/.help/CentOS6-Base-163.repo vi CentOS6-Base-.re ...

  8. UVA 11865 Stream My Contest (二分+最小树形图)

    题意:给定一个网络,一个服务器,其他的是客户机,有 m 条连线,每条有一个带宽和花费(单向边),让你用不超过 c 的花费,使得 0 到 所有的机器都能到达,并且使得最小带宽最大. 析:很明显是二分题, ...

  9. PHP中刷新输出缓冲详解[转载]

    PHP中刷新输出缓冲详解 分类: PHP Web开发2011-07-23 17:42 1795人阅读 评论(0) 收藏 举报 phpbuffer浏览器outputapache模块脚本 buffer是一 ...

  10. SpringMVC源码解读 - HandlerMapping

    SpringMVC在请求到handler处理器的分发这步是通过HandlerMapping模块解决的.handlerMapping 还处理拦截器. 先看看HandlerMapping的继承树吧 可以大 ...