【原创Nerute】 2018-11-18 01:11:10 2361
首先感谢正点原子的开源资料!
下面贴上正点原子一键下载电路的原理图。
很显然,核心是一块CH340芯片,什么是CH
请看手册:
再来就是引脚说明
了解一键之前,我们还得知道,stm32下载程序所需的条件,贴上启动模式说明图:
由此可知,要下载程序,需控制的一个引脚是BOOT0。再观一键下载电路的原理图,还有一个引脚RESET。
so 如何实现一键下载呢?
前提,要知道一个常识:
STM32 串口下载并运行的标准方法是 3个步 骤:
1, 把 B0 接 V3.3(保持 B1 接 GND)。
2, 按一下复位按键。
3, B0 接回 GND,然后再按一次复位键。
由正点原子提供的一键下载电路的原理图可以看出和stm32这两个引脚最有关联的是CH340的DTR#和RTS# 输出引脚。
没错,我们就是用一键下载软件通过控制这两个引脚的高低电平,从而控制BOOT0和RESET,进而改变启动模式。
接下来涉及到一点点模电知识,请看解说,包懂!
1.一开始,先 让DTR#输出高电平,RTS#输出低电平,满足NPN管正向导通条件,Q2导通(简便起见,可看做导线),从vcc到Q2的发射极(低电平相当于接地了),大部分电压落在R40上,所以RESET输出低电平;再看Q3,也满足导通条件,故BOOT0输出高电平。stm32启动串口下载模式。
2.下载完程序之后呢?软件拉高RTS#,DTR#之后再拉低。此时,Q2不导通,Q2阻抗非常大,大部分电压落在Q2上,RESET输出高电平,BOOT0输出低电平。启动模式变为flash启动,即用户闪存。
第1步只是存储了程序,第2步是让程序加载运行。
能力有限,半夜作文,实属不易,有错请指出,谢谢了!