STM32 ISP下载原理

简介

**‌ISP‌(In-System Programming,系统内编程)**指无需将芯片从电路板上取下,就能对芯片内部的Flash存储器进行编程或擦除的技术。通常通过芯片出厂时自带的Bootloader实现,例如使用UART、USB等接口进行烧录。这种方式常用于产线初始烧录或重大版本升级。‌

**‌IAP‌(In-Application Programming,应用内编程)**指芯片在运行程序时,通过软件机制对自身Flash存储器进行修改的技术。工程师需要自行编写Bootloader,将Flash分为系统代码和用户代码区域,实现程序的动态下载和执行。这种方式支持设备固件的在线升级,适用于资源受限的嵌入式系统(如传感器、无线模块)。‌

STM32的ISP下载过程

第1步:先设置BOOT1和BOOT0从系统区启动

第2步:复位STM32芯片,执行系统中预设的程序(系统程序会将接受到的数据写到FLASH中)

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

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

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

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

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

(1)BOOT1始终为0

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

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

CH340下载电路的分析

通过CH340芯片的RTS和DTR引脚来改变BOOT0、RESET的高低电平

RTS和DTR引脚输出的有效电平为低电平。准备发送数据时RTS输出低电平,数据发送完成时DTR输出低电平。

RTS输出低电平,DTR输出高电平时,三极管Q2导通,RESET会输出低电平,STM32复位

RTS输出低电平时,三极管Q3导通,BOOT0会输出高电平,STM32执行系统启动程序

RTS输出高电平时,三极管Q3阻断,BOOT0通过电阻到地,为低电平,STM32执行FLASH启动程序,同时三极管Q2阻断,RESET为无效电平高电平

相关推荐
逐步前行3 小时前
STM32_TIM_寄存器操作
stm32·单片机·嵌入式硬件
0南城逆流04 小时前
【STM32】知识点介绍七:PWM功能
stm32·单片机·嵌入式硬件
智者知已应修善业4 小时前
【51单片机独立按键控制数码管移动反向,2片74CH573/74CH273段和位,按键按下保持原状态】2023-3-25
经验分享·笔记·单片机·嵌入式硬件·算法·51单片机
dashizhi20154 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑
我是一棵无人问荆的小草5 小时前
单片机通电后延迟启动策略
单片机·嵌入式硬件
坏柠5 小时前
ESP32-S3 蓝牙 BLE 从零到一:广播、服务、特征,用一个智能灯的例子全讲透
嵌入式硬件
三佛科技-187366133978 小时前
FT32F030F6AP7高性能32位RISC内核MCU解析(兼容STM32F030K6TP7)
stm32·单片机·嵌入式硬件
LCMICRO-133108477469 小时前
长芯微LDC90810完全P2P替代ADC128D818,是一款八通道系统监控器,专为监控复杂系统状态而设计。
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·模数转换芯片adc
嵌入式老菜鸟qq1252427739 小时前
关于S2-LP休眠
单片机·嵌入式硬件·mcu·射频工程
somi79 小时前
ARM-01-硬件基础
arm开发·嵌入式硬件