CH340 是一个USB 总线的转接芯片,实现USB 转串口、USB 转IrDA 红外或者USB 转打印口。 
    在串口方式下,CH340 提供常用的MODEM联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到USB 总线。有关USB 转打印口的说明请参考手册(二)CH340DS2。 
    在红外方式下,CH340 外加红外收发器即可构成USB 红外线适配器,实现SIR 红外线通讯。
特点:   
● 全速USB 设备接口,兼容USB V2.0,外围元器件只需要晶体和电容。
● 仿真标准串口,用于升级原串口外围设备,或者通过USB 增加额外串口。 
● 计算机端Windows 操作系统下的串口应用程序完全兼容,无需修改。 
● 硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。 
● 支持常用的MODEM 联络信号RTS、DTR、DCD、RI、DSR、CTS。 
● 通过外加电平转换器件,提供RS232RS485RS422 等接口。 
● 支持IrDA 规范SIR 红外线通讯,支持波特率2400bps 到115200bps。 
● 由于是通过USB 转换的串口,所以只能做到应用层兼容,而无法绝对相同。
● 软件兼容CH341,可以直接使用CH341 的驱动程序。 
● 提供SSOP-20 无铅封装,兼容RoHS。

STM32的程序下载方式

因为我们现在的电脑上,已经不存在串口,所以我们一般使用USB转串口芯片,目的只有一个,把电脑的USB口映射为串口用。常用的USB转串口芯片有CH340、CP2102、PL2303、FT232等。我们选择哪一个呢?CH340是国产芯片,其他的是进口芯片。CH340批量价1.5元每个,一般应用方面,性能已经足够,我使用这么多年,就没有出现过问题。PL2303山寨货太多,买的不放心。CP2102批量价5.2元,它是QFN封装,对于新手不易焊接。FT232批量价在10元以上,一般用在工业级环境。经过综合的比较,我们选择CH340作为我们开发板上使用的USB转串口芯片。

串口下载程序的过程:上电后,先把STM32的BOOT0拉高,然后就可以通过RXD和TXD引脚把要下载的程序下载到单片机,下载完程序以后,然后复位,就会运行下载到单片机中的程序。

下面再说说JTAG下载接口,JTAG下载接口长这样:

这是一个10PX2的牛角座。

虽然是20个引脚,不过JTAG引脚只用了6个引脚,剩下的是3.3V和GND。同时,STM32还支持SWD下载方式,也是在JTAG接口上,只用到了2个引脚。无需硬件改动,只需要在程序编写软件上配置即可切换。

JTAG接口用来连接仿真器,仿真器可以是JLINK或者ULINK。

ISP和JTAG的区别:

由于我们使用了USB转串口芯片,所以开发板可以直接用数据线连接电脑USB后就可以下载程序。而JTAG,需要另外购买仿真器。仿真器除了能够下载程序,还可以控制单片机单步运行程序或停在程序的某一条语句处,还可以随时观察单片机内部寄存器的值。

好了,下载方式就介绍完了。下面是定好了电源和下载接口的方案后,画出的原理图:

STM32有两种程序下载方式,一种是通过串口下载,一种是通过仿真器下载。串口下载又叫做ISP,通过仿真器下载又可以叫做通过JTAG口下载。

PLC通过485线控制变频器调速,电脑用USB转串口连接PLC。用CH340的话,变频器一旦启动,电脑端和PLC的通讯就很容易中断,用FT232则无此问题。
个人认为,稳定性:FT232>PL2303>CH340,这也反映在价格上。

请问用ch340下载器给stm32下载程序,如图,boot0拉高,boot1接GND,怎么不行?

随笔- 38  文章- 0  评论- 2 

CH340在STM32实现一键下载电路

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

在画PCB初期原理图部分,对采用CH340G设计的一键下载电路不甚了解,于是花了一些时间来研究一下这个电路。

引用正点原子的一键下载电路:
我们通过RTS#和DTR#两个输出信号来控制STM32 IC的BOOT0和BOOT1两引脚来选择启动模式,如下表:
当烧写程序时,我们希望BOOT0=1,BOOT1=0。当烧写完成后我们希望BOOT0=0,BOOT1=0(这个模式BOOT1可以是0可以是1,这里我们让BOOT1拉低,即整个过程BOOT1都为L接地,简化电路设计)。
这里我们只需考虑BOOT0的高低。
查看STM32的参考手册,如下图:
注意表6下方第一句话:“在系统复位后,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。”
OK,综上所诉,我们可以得到: 1、系统上电,BOOT0需为L,进入模式一。上电复位后,在SYSCLK的第4个上升沿,BOOT引脚的值将被锁存,进入主闪存存储器,执行我们烧写的代码。

2、当我们编译好程序,生成HEX文件。在烧写HEX文件时,BOOT0需为H,进入模式二。然后,系统必须复位一次(因为由1知道,系统上电后默认执行代码,即模式一),让系统重新锁存BOOT引脚。系统进入模式二,开始烧写HEX文件。
3、烧写完成后,我们希望系统再次进入模式一,执行代码。但正点原子的一键下载电路并没有让系统完成烧写程序后再次复位重新锁存BOOT引脚进入模式一。这个原因应该是MCUISP软件帮我们配置好了,在烧写完成后会有报告:“成功从08000000开始运行”。
     在参考手册中有这样一段话:
 从另一个方向来理解它,可以这么说:主闪存存储器从地址(0x0800 0000)访问,不管是系统自动的还是软件配置的,只要系统指针跳到主闪存存储器的地址(0x0800 0000)处开始执行代码,就可以了,结果是我们想要的。
 
以上就是一键下载电路需要实现的功能,原子兄帮我们设计出来了。如果看不懂的话,可以参考我下面的解释。
 
我们需要注意一点:CH340G上电后DTR#和RTS#都为高电平,在用MCUISP烧写软件时,我们在软件下方选择“DTR的低电平复位,RTS高电平进BootLoader”,CH340G IC在实际操作时引脚的变化为“DTR#拉高,RTS#拉低”,即软件设置和实际情况是取非的,相反的。

画个时序图,直观一些:

原文:http://www.360doc.com/content/14/0921/11/14951572_411210231.shtml

ch340是什么芯片的更多相关文章

  1. windows下ch340 usb转串口芯片的驱动从哪里下载?

    答: 请点击此处下载

  2. 基于CH340的一键下载电路

    一.CH340简介 CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口.CH340是国产芯片,应用场合居多,市场占有率很高.常用的USB转串口芯片还有CP2102. ...

  3. 如何用ESP8266实现网页配置(web)

    准备工作 准备一个深圳四博智联科技有限公司的ESP-F 模组.或者四博智联科技的NODEMCU 当我们拿到ESP-F模块后,可以按照以下接线进行测试: 即 VCC.EN 接 3.3v.GPIO15 G ...

  4. 如何用ESP8266/8285做一个WIFI广告机(虚拟WiFi)

    准备工作 准备一个深圳四博智联科技有限公司的ESP-F 模组.或者四博智联科技的NODEMCU 当我们拿到ESP-F模块后,可以按照以下接线进行测试: 即 VCC.EN 接 3.3v.GPIO15 G ...

  5. 如何使用ESP8266、ESP8285做一个WiFi中继(WiFi信号放大器)

    准备工作 准备一个深圳四博智联科技有限公司的ESP-F 模组.或者四博智联科技的NODEMCU 当我们拿到ESP-F模块后,可以按照以下接线进行测试: 即 VCC.EN 接 3.3v.GPIO15 G ...

  6. ESP32-S3 搭建 micropython 开发环境,固件编译,烧录

    简述 上手了一块乐鑫科技官方推出的ESP32-S3-DevKitC-1开发板,发现 ESP32-S3 的综合性能较比前两代有着非常明显的提升,wifi与蓝牙功能,更充足的外设扩展能力,可以看出其在未来 ...

  7. 单片机下载芯片max232,ch340,pl2303,hl340与下载接线

    开发板上的下载口位置一般都有很多 340,232等芯片,这些芯片都是干嘛用的呢? 普及:TTL电平    : 二进制电平,+5V等价于逻辑"1",0V等价于逻辑"0&qu ...

  8. [转] 图解单片机下载程序电路原理之USB转串口线、CH340、PL2303、MAX232芯片的使用

    点击阅读原文 目前为止,我接触单片机已有不少时日,从选择元器件.原理图.PCB.电路硬件调试.软件开发也算小有心得 .单片机软件开发里面第一步当属下载程序了,如果这一步都有问题,那么后面的一切便无从谈 ...

  9. 快速上手CH340N电路设计(CH340N USB转串口模块 USB Type-C接口 CH340系列芯片讲解)

    一.上模块          二.功能分析 l  芯片:CH340N l  输入接口:USB.TYPE-C l  输出接口:TTL(5V\3.3V\GND\TX\RX) l  指示灯:电源.TX.RX ...

随机推荐

  1. WPF蒙板弹窗

    由于界面设计需要,要给弹窗添加蒙板效果,在百度和google搜索了半天,竟然没有一个满意的方案,最后只能自己想办法实现了一个,原理还是比较简单的,现在分享给大家. 先看一下效果..      原理其实 ...

  2. 手把手封装数据层之DButil数据库连接的封装

    最近这段时间一直在用SSM框架做增删改查,突然想把以前还不会用框架的时候,综合百度和各种资料结合API文档抄袭而来的数据层的封装分享给大家.这边先封装一个DButil. 我这个封装就是烂大街的那种,没 ...

  3. 使用Coding.net+Hexo+node.js+git来搭建个人博客

    使用Coding.net来搭建基于Hexo的博客 一.准备工作 什么是Coding.net Coding可以说,就是国产的Github,但是,有一个功能使它似乎超越了GitHub-那就是 Web ID ...

  4. 获取ip地址及城市信息

    大家好,今天给大家分享的是一个简单的知识获取登录用户的ip地址及城市信息,lz是一个小白,如果有哪些错误的地方  欢迎大家指出 东西很简单,直接上代码 [HttpPost] public string ...

  5. Selenium 定位网页元素

    第一 定位元素辅助工具 IE中在元素上右击 ->  “检查元素”,或按F12键打开开发者工具: Chrome中在元素上右击 -> “审查元素”,或按F12键打开开发者工具: Firefox ...

  6. Keil提示premature end of file错误 无法生成HEX文件

    今天舍友在使用Keil UV4的时候遇到一个问题:Keil提示premature end of file,无法生成hex文件. 代码是没有错误的.那么问题就出在设置上面了. 百度了一圈,发现很少人解答 ...

  7. ajax请求成功前loading

    1.jquery方式 <!DOCTYPE html><html lang="en"><head> <meta charset=" ...

  8. Prism for Xamarin.Forms

    一.使用环境 OS:Win 10 16273 VS:VS2017- 15.3.4 Xamarin:4.6.3.4,nuget:2.4 Android Emulator:Visual Studio fo ...

  9. JS嵌套循环的典型练习题

    1.斐波那契数列 ①分数 <script type="text/javascript">    var a = 1   var b = 1   var c    for ...

  10. JS学习三(函数)

    [函数的声明格式] 1.函数的声明格式: function 函数名(参数1,参数2,...){ 函数体代码 return 返回值: } 函数的调用: ① 直接调用:函数名(参数1的值,参数2的值,.. ...