USB接口一键下载程序电路解析

Stm32烧写程序一般有两种方式:一种是基于JTAG(SWD)的程序下载方式,这种方式需要仿真器才能高效与快捷地调试STM32单片机系统,例如,J-LINK与U-LINK等均是很好的仿真器,这种方式的好处是能够在线调试,直接用源代码下载。

另外一种基于串口的程序下载方式,STM32全系列均支持这种方式,这种方式一般通过一个USB线和相应的ISP下载软件就可以将HEX文件下载到STM32芯片,这样有个好处是不会暴露源代码,随便找个人教一下就可以去操作,比如去客户现场升级代码等。

下面我们重点介绍一下这种方式是怎么实现的:
每个STM32芯片上都有两个引脚BOOT0和BOOT1,这两个引脚在芯片复位时的电平决定了复位后从那个区域开始执行程序:

(1)BOOT1=x,BOOT0=0,从用户的闪存(Flash)启动,这是正常的工作模式;

(2)BOOT1=0,BOOT0=1,从系统储存器启动,这种启动的方式有原厂设置的一个ROM,这个区域专门设置了一段BootLoader,就是通常说的ISP程序,用户无法擦除和修改。

(3)BOOT1=1,BOOT0=1,从内置的SRAM启动,这种模式可以用于调试,一般不会使用这种模式启动,因为掉电后SARM数据会丢失,一般只在调试时使用。

下面进行原理图分析,此电路只能链接串口1。BOOT1一般默认为低电平,在电路上电后RTS#、DTR#为高电平,在用烧写软件时,我们在软件下方选择“DTR的低电平复位,RTS高电平进BootLoader”。

电路中Q2为pnp三极管,RTS输出低电平时,导通,BOOT0才为高电平;

电路中Q1为npn三极管,DTR输出高电平时,导通,RST才为低电平;

首先,烧写软件控制DTR#引脚输出高,RTS#引脚输出低,这样Q2导通了,BOOT0被拉高,即实现设置BOOT0为1,同时Q1也会导通,STM32的复位脚被拉低,实现复位。

然后,延时100ms后,烧写软件控制DTR#引脚输出低电平,RTS#引脚继续为低电平,此时STM32的复位引脚,由于Q1不再导通,变为高电平,STM32结束复位,但是BOOT0还是维持为1,从而进入ISP模式,接着烧写软件就可以开始连接STM32,下载代码了,ISP下载完毕后,自动复位运行。

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

硬件分享

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

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

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

打赏作者

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

抵扣说明:

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

余额充值