STM32裸机学习笔记(一)---串口ISP模式下载原理

--------------------------

–串口ISP模式下载原理–

--------------------------

先放几张火哥的教程截图:
STM32裸机学习笔记(一)---串口ISP模式下载原理_第1张图片

图1

STM32裸机学习笔记(一)---串口ISP模式下载原理_第2张图片

图2

STM32裸机学习笔记(一)---串口ISP模式下载原理_第3张图片

图3

STM32裸机学习笔记(一)---串口ISP模式下载原理_第4张图片

图4

通过图1可以了解到,不同的下载方式中所需要的不同启动模式:

内部Flash (Main Flash memory,0x) STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。
系统存储器 (System memory,10) 从系统存储器启动,这种模式启动的程序功能是由厂家设置的。系统存储器是芯片内部一块特定的区域,STM32在出厂时,由ST在这个区域内部预置了一段BootLoader, 也就是我们常说的ISP程序, 这是一块ROM,出厂后无法修改。一般来说,我们选用这种启动模式时,是为了从串口下载程序,因为在厂家提供的BootLoader中,提供了串口下载程序的固件,可以通过这个BootLoader将程序下载到系统的Flash中。但是这个下载方式需要以下步骤: Step1:将BOOT0设置为1,BOOT1设置为0,然后按下复位键,这样才能从系统存储器启动BootLoader Step2:最后在BootLoader的帮助下,通过串口下载程序到Flash中 Step3:程序下载完成后,又有需要将BOOT0设置为GND,手动复位,这样,STM32才可以从Flash中启动。
内置SRAM ( Embedded Memory,11) 内置SRAM没有程序存储的能力,这个模式一般用于程序调试。代码中一个小小的地方的修改,需要重新擦除整个Flash自然是比较的费时,可以考虑从这个模式启动代码(也就是STM32的内存中),用于快速的程序调试,等程序调试完成后,再将程序下载到SRAM中。

在项目实际应用中的Boot设置:

默认使用程序代码存储在主闪存存储器,配置方式:BOOT0=0,BOOT1=0,但是要预留boot0上拉电阻工位,便于将其电平拉高,实现串口烧录。

  • 如图3所示,只需要通过改变RTS电位使S8550是否导通,导通时实现图2的电路效果将Boot0拉高,否则Boot0为低电位。

  • 一旦完成Boot0与Boot1的10设置后,需要实现通过复位从系统存储器启动,则通过图4可发现,复位脚NRST通过10K电阻默认接高电平,若需要复位则需要该脚置为低电平,即通过S8050导通(即DTR为高电平)使得NRST下拉电阻端电位与RTS都处于低电位(该电路中74HC1G66GW芯片(模拟开关)的1脚和2脚通过EN使能端控制通断时间),完成复位启动操作。

    通断时间以及为何使用模拟开关而不是直接将这两端通过硬件相连:右端100K电阻情况下,3.3V对电容充电至2V的时间约为1s–大概计算公式参考RC串联电路:uC=E(1−e^(-t/RC)) (数字电路中,由TTL电子器件组成电路使用的电平。规定输出高电平>2.4V,输出低电平<0.4V。最小输入高电平和低电平:输入高电平>=2.0V,输入低电平<=0.8V,噪声容限是0.4V。),当达到最小输入高电平时EN使能端为1,模拟开关的1端与2端导通,这就很好的滤除了CH340G下载开始时DTR与RTS不稳定所引起的复位问题【通常是500ms】–☆这是串口ISP下载电路一个优化方案,想缩短时间可以改小R或者C(通常减小R)。

  • 复位后一段时间后会锁存两个Boot脚的电位。(在STM32F10XXX手册里的解释为:在系统复位后,SYSCLK的第4个上升沿,BOOT管脚的值将被锁存。锁存后Boot值的更改不会造成影响----一般上位机控制RTS和DTR实现)

    通常的配置过程可以借鉴火哥课件中这些图:

STM32裸机学习笔记(一)---串口ISP模式下载原理_第5张图片
STM32裸机学习笔记(一)---串口ISP模式下载原理_第6张图片
注意一点就是232标准与TTL标准的高低电平相反,则对应mcuisp软件就是设置相反即可

ISP简介
STM32裸机学习笔记(一)---串口ISP模式下载原理_第7张图片
CH340G芯片的作用:USB线连接传过来的是USB电平,而单片机使用的是TTL电平,则需要这么一个转化器件。

你可能感兴趣的:(STM32学习笔记)