STM32程序下载:电路分析探索

一、STM32程序下载有哪些方式

(1)STM32程序的下载一般通过JLINK这样的调试器;

(2)STM32程序的下载还可以通过ISP方式下载。

(3)这里只介绍ISP方式下载电路。

二、ISP下载原理

第1步:先设置BOOT1和BOOT0从系统区启动,执行系统中预设的程序

第2步:主机通过串口发送要下载的hex文件给STM32

第3步:系统预设的程序接收到hex后将其烧录到用户区flash中

第4步:设置BOOT1和BOOT0为从用户区启动,然后复位重启(复位)执行刚才下载的hex即可。

三、STM32的BOOT1和BOOT0与启动区的关系

 以上表格显得过于复杂,了解就行。只需要知道2个BOOT引脚设置如下:

(1)BOOT1始终为0

(2)BOOT0在ISP时要先为1,就是从系统存储区启动,也就是程序下载。

然后BOOT0为0,就是从主闪存存储器运行,也就是程序运行。

四、CH340下载电路的分析

1、综上分析,要实现一键下载,需要BOOT0先等于1,然后等于0。

2、主要通过CH340芯片的RTS和DTR引脚来改变BOOT0。而RTS和DTR引脚又是由PC端程序下载软件来实现。

3、实现BOOT0等于1。(这里最好把上述原理图和文章分频显示阅读更为方便)

3.1、首先要实现Q11三极管导通,由于R59是1K欧姆,R62是10KΩ。根据串联分压可知,Q11三极管导通时BOOT0引脚为高电平。(需要Q11三级管导通)

3.2、Q11三级管是PNP 三极管,1号引脚是基极,2号引脚是发射极,3号引脚是集电极。

PNP基极电压很高。集电极对发射极开路,也就是说,它不起作用。如果将基极施加到低电位,则集电极和发射极会短路。总结:Q11的1号引脚为低电平时,BOOT0引脚为高电平。(Q11的1号引脚为低电平)

3.3、继续往前推到,有两条路,一条是走RTS,一条是走Q10。 一看走RTS这条路比较好分析,所以先分析这条路。

走RST这条时,RTS为低电平便可使BOOT0为1。

3.4、当走Q10这条路时,Q10是NPN三极管,1号引脚是基极,2号引脚是发射极,3号引脚是集电极。因为RTS为低电平,所以Q10的发射极为低。

NPN基极电压高,集电极与发射极短路。低压,集电极和发射极开路。

(1)当Q10基极为高电平,即DTR为高电平时,Q10的集电极和发射极导通。所以D9这个二极管的阴极为低电平。当RESET引脚原先为高电平,此时RESET引脚电平就被拉低。

(2)当Q10基极为低电平时,Q10的发射极和集电集和发射极不会导通。D9这个二极管的阴极为高电平。(串联分压的话,R51为10KΩ,D9为无穷,所以二极管阴极相当于高)。当RESET引脚原先为高电平平,此时RESET引脚电平还是高电平,没有变化。

4、当使用FlayMcu工具的ISP方式下载软件时,需要注意以下几点:

(1)回顾程序自动下载运行的方式,先让BOOT0为1,然后BOOT0为0(或者让程序复位)

(2)所以选择首先要保证RTS为低电平,这使BOOT0为1,下载进程序。(但选择了也下不了)

(3)然后使DTR为高电平,产生一个复位。

(4)这里有一个非常需要注意的问题:你需要RTS为低电平,在FlayMcu软件中就需要选择RTS为高电平。DTR同理。这是因为FlayMcu软件输出的是RS232电平,而CH340这边是TTL电平。这两种电平刚好是相反的,所以这里需要选择RTS高电平。

(4)这就实现了程序的一键下载且自动运行。

五、一些零碎问题的补充

1、程序下载软件FlyMcu软件下载的官网:www.mcuisp.com

2、有些时候勾选了编程后执行,但由于选择下载的方式不同(RTS和DTR的方式),会导致有些情况程序可以下载但不能自动运行。

3、TTL高电平为逻辑“1”,低电平为逻辑符“0”;RS232高电平为逻辑“0”,低电平为逻辑“1”。

4、在下载STM32芯片的程序时不能勾选“编程到Flash时写选项字节”;下载GD时需要勾选。

物联沃分享整理
物联沃-IOTWORD物联网 » STM32程序下载:电路分析探索

发表评论