STM32复位电路 BOOT电路 下载调试电路

复位电路:相当于重新启动

复位条件:

低电平需要保持在0.8V以下才可复位。

复位参考电路:

分两种场景:1.单片机上电复位(依靠于这个电容) 2.按键复位。

如果去掉电容:上电的瞬间 nRST引脚直接变成3.3V 没有低于0.8V, 但加上电容,刚上电,nRST引脚的电压为电容两端的电压(会逐渐从0升高到3.3V)。电容电压不能跳变的原理,所以就复位成功了。

复位方式:

1.系统复位

独立看门狗(IWDG):没在指定时间 喂狗 就会复位 喂狗的狗粮其实是个计数器

12位(4095)递减计数器0xfff, 当计数器减到0的时候就会复位(比较暴力 到0直接复位)

窗口看门狗(WWDG):避免 程序在中断中有时候会浪费一些时间被独立看门狗复位。

7位的递减计数器 0x7F-0x40。36MHz的一个频率   主时钟停止之后窗口看门狗就会失效。

2.电源复位

就是触发 复位引脚复位

 

3.后备区域复位

备份区数据不会因为系统复位、电源复位而丢失 

BOOT启动引导电路:选择启动引导区 

BOOT简介

STM32在启动时会在系统时钟的第4个上升沿锁定,并根据 BOOT0和BOOT1选择从哪块存储区开始启动。

STM32有三块区域可以用来存储系统代码:.

1内置闪存模块中的 主存储模块 (最主要的启动方式)

2.闪存模块中的系统存储区域模块,

系统存储区域中 存放着出厂自带的BOOTLOADER的程序,用户可以通过BOOTLOADER的引导将程序烧录至 比如主存储器中 比如ISP烧录方式

3.内置的SRAM,但SRAM具有掉电丢失的特性(所以用得比较少)

 BOOT外围电路:(简单的开发板  复杂的开发板则用ISP一键下载)

这个方式不是选择下载到哪里的,而是选择下载方式,我们的用户默认是下载到内部flash里面,系统存储器存储着bootloader下载程序,我们需要从这里启动,下载完程序到flash里面再从flash启动

在使用JTAG或SWD模式烧写程序时,一般情况下不需要考虑BOOT0和BOOT1引脚的状态。这是因为JTAG和SWD模式是通过调试接口(如JTAG或SWD接口)与目标芯片进行通信,而不是通过引导引脚来选择引导模式。

当使用JTAG或SWD模式进行烧写程序时,只需要确保芯片的引脚连接正确、芯片供电正常,并且选择正确的调试工具和烧写软件即可。BOOT0和BOOT1引脚的状态通常在芯片上电后会自动配置为适合调试和烧写的状态,不需要手动干预。

但是,在一些特殊情况下,可能需要手动操作BOOT0引脚来选择引导模式(如系统引导区还是Flash区),这通常是在特殊的烧写场景下才需要考虑。

下载程序时BOOT0和BOOT1的电平为:

  • BOOT0: 高电平(3.3V)
  • BOOT1: 低电平

而在运行程序时,BOOT0和BOOT1的电平为:

  • BOOT0: 低电平(0V)
  • BOOT1: 随意

这种电平配置是为了在下载程序时将芯片引导到特定的模式,以便进行程序下载和更新。当BOOT0为高电平时,芯片会进入系统引导模式,从而可以通过串口或者其他下载方式更新程序。而在运行程序时,将BOOT0设置为低电平可以让芯片从Flash中启动用户程序,而BOOT1保持高电平则是为了保持芯片的正常工作状态

下载调试电路

什么是下载调试电路:

将代码程序,通过一定的设计电路,加载到单片机指定存储区域(下载到内置主闪存中),使其能够精准控制和执行。

就是 1.下载(下载到内置主闪存中)已编译的程序文件至单片机。2.调试单片机中正在运行的程序。

支持的调试方式:JTAG/SWD/串口下载模式

JTAG和SWD都可以支持下载烧录程序和在线硬件调试程序。 

JTAG下载模式:因为JTAG是一个标准的协议  所以JTAG烧录不仅仅是针对STM32 在很多单片机上都支持JTAG下载模式的。需要除了电源和地之外 JTCLK(时钟信号)、JTDI(数据输入)、JTDO(数据输出)、JTRST(复位)、JIMS(模式选择)。5个引脚

SWD:(串行线调试):ARM公司专门为了 使用ARM芯片的设备 而设计的一种协议 用于微控制器进行编程和调试 只需要SWDIO和SWCLK两个引脚。

串口下载模式:只支持烧录程序 对应:BOOT启动电路时从系统存储器BOOTLOAD的启动烧录的方法。

下载调试工具:STLINK(意法半导体官方下载工具)、JLINK(ARM平台通用的调试工具)、USB下载器(部分开发板试用)

 ISP下载电路:在系统可编程下载(在STM32表现为串口一键下载电路)

简介:

        

串口下载连接示意图 

1.只有USART1才具有串口下载功能 

使用串口ISP时,首先,板子需要具备一个USB转串口模块而且USB转串口模块一定要连接串口一 。

上位机是232标准 和 TTL是反的 所以写的是低电平复位,高电平进BOOTLoader,实际上在STM32F103中是高电平复位,低电平进BOOTLoader。

利用上位机 mcuisp程序 将程序的HEX文件下载进单片机  程序的自动运行也是靠上位机控制的(上位机有个按钮编程后执行)。

如果没有DTR低电平复位 RTS高电平进Bootloader 则需要手动更改BOOT引脚(所以这是一键ISP)

DTR和RTS是CH340芯片的。

ISP原理

这个方式不是选择下载到哪里的,而是选择下载方式,我们的用户默认是下载到内部flash里面,系统存储器存储着bootloader下载程序,我们需要从这里启动,下载完程序到flash里面再从flash启动

 

目的主要是控制 BOOT0的引脚

BOOT0 =0时   内部Flash 启动模式

BOOT0 =1 时  为系统存储器启动(ISP模式在系统存储器中) 所以要使用ISP模式就必须要

如果BOOT0要=1则 Q1要导通,Q1是PNP三极管所以RTS输出低电平

如果要产生复位的话  U18芯片的Y、Z引脚是互通的 NRST默认是拉高的 ,如果想拉低复位的话Q2要导通(DTR为高电平1), 因为RTS为低电平一导通 Z点(NRST)的电平为0,复位后会检测BOOT引脚 此时BOOT0为1,BOOT1为0 进入系统存储器启动模式(里面有ISP模式)直接把程序下载到芯片。确定好启动方式之后,程序就会直接运行了。

第4点 ISP下载完后,   自动的(通过上位机 会重新检测BOOT0和BOOT1引脚)还原成原来的状态(BOOT0=0),进入FLASH进行程序的执行。启动之前会重新辨认一下BOOT引脚,判断是否是进入内部Flash。

 普通ISP和一键ISP的区别

普通ISP:需要复位两次 一次下载 一次执行

现在我们针对 USART1 ISP 进行分析,通常的 ISP 的步骤如下:
1. 电脑通过 USB 转串口线连接 STM32 USART1 ,并打开电脑端的上位机;
2. 设置跳线保持 BOOT0 为高电平, BOOT1 为低电平;
3. 复位单片机使其进入 bootloader 模式,通过上位机下载程序;
4. 下载完毕,设置跳线保持 BOOT0 为低电平, BOOT1 为低电平;
5. 复位单片机即可启动用户代码,正常运行。
以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对 ISP 的原理认识,
一键 ISP 就诞生了,它需要做的事情就是用上位机去控制 BOOT0 脚和单片机的复位脚,原理图
如下:

一键下载:

USB 转串口估计大家都很熟悉,一般都是用到 RXD TXD 这两个口,一键 ISP 电路中我们需要
USB 转串口的芯片的 DTR 口和 RTS 口来控制单片机的 BOOT0 NRST ,原理如下:
1. 通过上位机控制 U6(CH340G) RTS 脚为低电平, Q1 导通, BOOT0 的电平上拉为高电平。
2. 通过上位机控制 U6(CH340G) DTR 脚为高电平,由于 RTS 为低电平, Q2 导通, U8 2
脚为低电平, U18 为一个模拟开关,使能端由 4 脚控制,默认高电平, U18 1 脚和 2
导通,所以 NRST 为低电平系统复位。
3. 单片机进入 ISP 模式,此时可以将 DTR 脚设置为低电平, RTS 设置为高电平。 Q1 Q2
截至状态, BOOT0 NRST 还原默认电平。
4. 上位机将程序下载到单片机,下载完毕之后,程序自动运行。
5. 至此,很多人还会认为 U18 Q1 Q2 是多余的,用 U6 RTS DTR 直接控制也可以。正
常情况下,这样理解没有问题,但是我们忽略了一点,就是单片机上电瞬间如果 USB 转串
口连接了电脑, DTR RTS 的电平是变化的,如果不处理好,单片机会一直进入 ISP 模式,
或者系统会复位多次,这种情况是不允许的。
6. 于是,就有了我们全新的一键 ISP 电路。 我们主要是分析上电瞬间的逻辑关系,单片机上
电时我们通过示波器观察波形得知 DTR 和 RTS 的电平是变化的,但是也有一个规律就是:
只要 RTS 为低电平的时候,DTR 的电平也是低,因此一般情况 Q2 不会导通,但由于这两
个 IO 口的电平存在“竞争冒险”,会出现 RTS 的下降沿的时候刚好遇到 DTR 的上升沿,这
个时候 Q2 导通,导致系统复位,而 BOOT0 此时有可能也为高电平,就会进入 ISP 模式。
这个是不受我们控制的,我们不想系统出现这样的情况。因此加入了模拟开关来切断这种
干扰。
7. 加入模拟开关 U18,通过控制 U18 的 4 脚的开关来达到隔离干扰电平的目的。下面我们分
析一下延时开关电路,上电瞬间,电容 C65 通过电阻 R18 来充电,由于电阻 100k 很大,电
容的充电电流很小,等电容充电达到 U18 的 4 脚的有效电平 2V 时,大概耗时 1S,在这个
1S 时间内 U18 的模拟开关是断开的,因此 RTS 和 DTR 的干扰电平不会影响到系统复位。
系统正常运行。

 

  • 17
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值