STM32学习笔记——CH340一键下载电路

今天看了一下STM32板子的一键下载功能,对电路理解了一下,做个说明。

1.启动模式

STM32上电后的BOOT1/0的电平状态会决定它的运行模式。很明显,我们如果上电后要进入自己写的程序并运行,那么BOOT0就要为0,BOOT1此时高低无所谓;而要进入下载模式就需要BOOT0为1而BOOT1为0;为此我们可以在电路上先将BOOT1直接拉低,然后单纯控制BOOT0。

2.复位后单片机的状态

事实上,STM32在上电复位后的第4个SYSCLK后,会锁住BOOT引脚的状态,此时读取BOOT状态决定进入哪个模式。因此我们的方法可以同时将BOOT0拉高、复位拉低,一段时间后(高于4个SYSCLK),拉高复位,进入下载,然后同时释放复位和BOOT。

3.电路和时序分析

我查了资料,说RST#和DTR#是低电平有效,因此没有动作的时候都是保持高电平的。而Q1和Q2三极管导通时的RST#和DTR#电平需要跟我下图标的一样才行,否则对应管子就不导通。而当我们用MCU ISP软件下载程序时,它控制CH340两个引脚的时序如下图所示。以开始DTR#=1,RST#=0,此时两个管子都导通,BOOT0=1,RESET=0;一段时间后DTR#拉低,此时Q1截止,RESET被拉高,系统进入下载模式,下载结束后两个引脚重新拉高,Q1/Q2均截止。

4.2022/8/9

几个月前板子已经出来,这部分我自己画的有点错误,但下图是正确的,一直忘记写出来。我实际焊接出来后,电脑可以识别CH340,但是Q2我自己画的时候E和C不小心颠倒了,因为我平时自己用NPN多一点,所以PNP被我当成NPN去用,结果就是一键下载有问题,后面还是根据这个图量电压去排除的。

5.2022/12/6

今天更新这个电路的问题,就是当我们自动下载之后,系统可以直接跑起来,但是如果我们把串口线去掉,重新上电,程序就跑不起来了。我量了电平,发现此时RST#的电平居然有2.5V,使得Q2刚好导通,然后BOOT0被拉高,系统进入下载模式,所以根本起不来。此时由于串口线已经拔走,很明显不是VCC5导致的,只能是板子上的VCC3.3灌过来的电压。开始我以为是RESET那边通过1N4148二极管过来的,于是去掉,结果发现并不是,但因为时间原因,没有分析下去,而是直接采用另一种方法。

方法就是,BOOT0加一个单刀双掷开关,连接VCC和GND,然后在下载时把开关拨到VCC,下载后拨回GND。但这样有个需要注意的地方,就是下载时,需要先把开关拨到GND,然后点击下载,再给板子上电,才能满足上面描述的时序。

6.2023.2.16

更新一下最新的使用情况,目前最稳定的情况是由外部USB接口的5V供电,这样给我的STM32下载时不会有其它问题。这两周发现CH340有多个系列,我用的是CH340G,需要加12MHz的晶振,否则无法正常工作;另外有CH340T等系列是不需要增加晶振的。而且CH340有两种供电方式,上面我提供的是5V供电,还可以3.3V供电,区别是3.3V的V3脚不需要外接电容,而是要直连到3.3V。对于CH340转换成的USB接口,有些电路会在D+那里加一个1.5K上拉到3.3V,目的应该是将USB口变为高速口,但我用软件查看了,无论加不加上拉电阻,这个USB口都是全速口。

这两周在查找一个问题,就是MPU6050在我两块开发板上面展现出来的速率不一样,自己画的板子数据很慢,串口打印到虚拟机很不灵敏,相比之下买的开发板很灵敏,我对调了STM32都解决不了问题,对比了电路怀疑是CH340的区别,然后对CH340有了更深的认识,最后发现是我自己画的板子STM32的晶振旁路电容全都是104的,相当无语,对于一个硬件工程师来说,真是很低级的错误,但也说明,电容用大可以正常工作,但是运算速率会变慢。

  • 17
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
### 回答1: STM32 CH340C是一种常见的单片机开发板,它具有USB转串口功能。一键下载电路是指通过一个简单的操作就可以将程序下载STM32芯片中。 在STM32 CH340C开发板上,一键下载电路一般由两部分组成:USB转串口芯片和串口下载电路。USB转串口芯片(CH340C)将电脑的USB信号转换成串口信号,使得开发板可以与电脑进行通信。串口下载电路包含了下载复位电路和BOOT0电平切换电路一键下载电路的工作原理如下: 1. 首先,将开发板连接到电脑的USB接口上。此时,USB转串口芯片会自动识别,电脑会安装相关的驱动程序。 2. 在电脑上打开开发环境(如Keil或Arduino),编写好程序并编译生成二进制文件。 3. 在下载之前,需要在开发板上设置好BOOT0电平。一般情况下,将BOOT0电平设置为高电平,以选择从系统存储器(Flash)运行。这可以通过开发板上的跳线或按钮进行设置。 4. 点击开发环境的下载按钮,软件会自动将二进制文件发送给USB转串口芯片。 5. USB转串口芯片接收到二进制文件后,会将其传输到开发板上的串口下载电路中。 6. 串口下载电路会负责将接收到的二进制文件写入STM32芯片的Flash存储器中。 7. 下载完成后,系统会自动复位,并从Flash存储器中运行程序。 通过使用一键下载电路,我们可以方便地将程序下载STM32 CH340C开发板中,实现了快速开发和调试的功能。 ### 回答2: STM32 CH340C一键下载电路是一种特殊的电路设计,用于在将程序烧录到STM32芯片时简化操作步骤。 常规的STM32芯片下载需要连接多个引脚和设备,如SWD引脚、串口线以及ST-Link下载器等。而CH340C是一种USB转UART芯片,可以将USB接口转换为串口通信接口。一键下载电路利用CH340C芯片可以直接通过USB接口与计算机进行通信,从而简化了下载过程。 一键下载电路的工作原理如下:首先,将STM32芯片的BOOT0引脚接地,将芯片设置为下载模式;然后,通过USB线将CH340C芯片与计算机连接;接下来,使用串口助手或其他下载软件选择正确的串口号和波特率;最后,将需要烧录的程序文件发送给STM32芯片,CH340C芯片会将接收到的数据解码并通过SWD接口将程序烧录到芯片中。 这种一键下载电路能够简化STM32芯片下载的步骤,方便了开发者和工程师。通过仅需连接一个USB线即可完成下载的操作,提高了开发效率。而且该电路设计成本较低,具有较好的可靠性和稳定性。 总的来说,STM32 CH340C一键下载电路通过利用CH340C芯片将USB接口转换为串口通信接口,简化了STM32芯片下载的操作步骤,提高了开发效率和便利性。 ### 回答3: STM32 CH340C一键下载电路是一种用于STM32单片机CH340CUSB转串口芯片之间的下载电路。它的主要功能是通过USB接口实现电脑与STM32单片机之间的通信和程序下载。 该电路主要由以下几个部分组成: 1. CH340C芯片:CH340C是一种USB转串口芯片,它具有USB转串口和USB转I2C功能。它可以将PC机上的串口数据转换为STM32单片机能够识别的串口信号。 2. USB接口:该电路使用USB接口连接电脑和下载电路,实现电脑与STM32单片机之间的通信。USB接口提供了数据传输和电力供应的功能,通过USB线缆将数据发送到STM32单片机。 3. 下载线:下载线连接CH340C芯片和STM32单片机,用于传输程序到STM32单片机下载线上的引脚按照标准规定连接到STM32单片机的BOOT0、BOOT1和NRST引脚上,以实现下载功能。 在使用STM32 CH340C一键下载电路时,首先需要通过USB线缆将电脑和下载电路连接起来。然后,使用合适的下载软件配置相关参数并选择下载模式,比如串口或I2C。接下来,将STM32单片机连接到下载线上,将下载线的引脚正确插入到STM32单片机的BOOT0、BOOT1和NRST引脚上。最后,点击下载软件上的下载按钮,软件会将程序通过下载线传输到STM32单片机,完成程序下载。 总而言之,STM32 CH340C一键下载电路通过USB接口实现了电脑与STM32单片机之间的通信和程序下载功能,方便了开发人员进行STM32单片机的开发和调试工作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是灵魂人物

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值