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,然后点击下载,再给板子上电,才能满足上面描述的时序。

STM32学习笔记——CH340一键下载电路_第1张图片

STM32学习笔记——CH340一键下载电路_第2张图片

STM32学习笔记——CH340一键下载电路_第3张图片

 

你可能感兴趣的:(stm32,学习,单片机)