单片机学习小组
登录
直播中
悬崖勒马2
8年用户
880经验值
擅长:EMC/EMI设计
私信
关注
MCU程序常用的烧录方式有哪些?它们之间有什么区别?
开启该帖子的消息推送
单片机
mcu
MCU程序常用的烧录方式有哪些?它们之间有什么区别?
回帖
(1)
李艳
2022-2-21 10:40:53
1.MCU程序烧录方式
最近刚好接触到MCU烧录这一块的东西,综合以前学的一些零散的和目前掌握的相关资料,主要有以下几种相关的方式:
ISP,IAP以及ICP
。它们都是对MCU进行编程,但具体的方式有所不同,下面详细了解下每个编程方式的特点。
1.ISP
ISP
的全称为
In System Programing
,翻译过来为在系统编程。
所谓的在系统编程是指在整块电路板上进行编程,不用将芯片单独拆下来,最终是将整个工程的文件进行烧录。支持ISP的芯片一般在出厂时在芯片内部固化了一段boot程序,我们在硬件电路中留出串口接口,通过上位机软件即可将程序灌入MCU中。
以下是STM32G4芯片的启动方式,主要有
从Flash启动
,
系统存储器启动
,
SRAM启动三种启动方式
,可以看出通过控制
BOOT0
或者
BOOT1
可以控制芯片的启动方式。
下图是STM32G4芯片编程手册上的介绍,可以看出我们将
BOOT0
拉高后,再将
BOOT1
的
OPTR
寄存器的
bit23
以及
nSWBOOT0的OPTR寄存器的bit26
置1程序即可从我们的系统存储器启动,也就是我们ISP下载的程序。
为什么从系统存储器启动的程序就是我们通过串口或者其他方式下载的程序了,主要是ST官方在芯片出厂时将一段自举程序(
BOOTLoader
)放到系统存储区了,而我们的上位机是满足这段程序的协议的,下图是ST手册上提供的地址映射图,可以看出系统存储区是从
0x1FF 7000
开始的,而我们通过串口下载的程序是放在以
0x0800 0000
开头的Flash里面的。
提到了
BOOTLoader
程序,那么ST所生产的片子所有的BOOTLoader程序会是一样的么,答案肯定不是的。比如我们常用的
STM32F1
的片子,一般只有
USART1
支持ISP下载,但以
STM32G4
的片子来看,可以有多种的通讯接口,下图为G4片子可以进行下载程序的通讯接口:
可以看出,几乎所有的通讯接口均可以满足。但要注意的是我们在使用通讯接口时必须要和对应的引脚对应上,否则会出现和上位机
连接失败
的问题。
2.ICP
ICP的全称为In Circuit Programing
,翻译过来为在电路编程。
我们常用的ST-Link,J-Link一般来讲都属于ICP的范围内,我们常说的ISP编程其实也可以划分在ICP的范围内。
2.总结:
本文主要介绍了ISP编程和ICP编程,着重以STM32G4芯片为例详细说明了ISP编程的细节部分,由于篇幅有限,下篇文章继续聊一聊IAP,我们下期再见。
1.MCU程序烧录方式
最近刚好接触到MCU烧录这一块的东西,综合以前学的一些零散的和目前掌握的相关资料,主要有以下几种相关的方式:
ISP,IAP以及ICP
。它们都是对MCU进行编程,但具体的方式有所不同,下面详细了解下每个编程方式的特点。
1.ISP
ISP
的全称为
In System Programing
,翻译过来为在系统编程。
所谓的在系统编程是指在整块电路板上进行编程,不用将芯片单独拆下来,最终是将整个工程的文件进行烧录。支持ISP的芯片一般在出厂时在芯片内部固化了一段boot程序,我们在硬件电路中留出串口接口,通过上位机软件即可将程序灌入MCU中。
以下是STM32G4芯片的启动方式,主要有
从Flash启动
,
系统存储器启动
,
SRAM启动三种启动方式
,可以看出通过控制
BOOT0
或者
BOOT1
可以控制芯片的启动方式。
下图是STM32G4芯片编程手册上的介绍,可以看出我们将
BOOT0
拉高后,再将
BOOT1
的
OPTR
寄存器的
bit23
以及
nSWBOOT0的OPTR寄存器的bit26
置1程序即可从我们的系统存储器启动,也就是我们ISP下载的程序。
为什么从系统存储器启动的程序就是我们通过串口或者其他方式下载的程序了,主要是ST官方在芯片出厂时将一段自举程序(
BOOTLoader
)放到系统存储区了,而我们的上位机是满足这段程序的协议的,下图是ST手册上提供的地址映射图,可以看出系统存储区是从
0x1FF 7000
开始的,而我们通过串口下载的程序是放在以
0x0800 0000
开头的Flash里面的。
提到了
BOOTLoader
程序,那么ST所生产的片子所有的BOOTLoader程序会是一样的么,答案肯定不是的。比如我们常用的
STM32F1
的片子,一般只有
USART1
支持ISP下载,但以
STM32G4
的片子来看,可以有多种的通讯接口,下图为G4片子可以进行下载程序的通讯接口:
可以看出,几乎所有的通讯接口均可以满足。但要注意的是我们在使用通讯接口时必须要和对应的引脚对应上,否则会出现和上位机
连接失败
的问题。
2.ICP
ICP的全称为In Circuit Programing
,翻译过来为在电路编程。
我们常用的ST-Link,J-Link一般来讲都属于ICP的范围内,我们常说的ISP编程其实也可以划分在ICP的范围内。
2.总结:
本文主要介绍了ISP编程和ICP编程,着重以STM32G4芯片为例详细说明了ISP编程的细节部分,由于篇幅有限,下篇文章继续聊一聊IAP,我们下期再见。
举报
更多回帖
rotate(-90deg);
回复
相关问答
单片机
mcu
LSM303AH与ISM303DAC
它们
之间
有
什么区别
?
2022-12-08
283
MCU
之间
有
什么区别
?
2023-04-17
255
MCP和eMCP
它们
之间
有
什么区别
和联系?
2021-06-18
2665
CC2530具
有
哪几种功耗模式?
它们
之间
有
什么区别
?
2022-01-25
2032
ucos和freertos
它们
有
什么区别
2020-05-28
2448
低级驱动
程序
和高级驱动
程序
有
什么区别
?
2020-04-01
4014
请问STM32 DMA
方式
和中断
方式
查询
之间
有
什么区别
?
2021-11-16
826
请问
程序
烧写
方式
有
什么区别
?
2019-10-21
1574
MCU
和MPU
有
什么区别
?
2023-06-15
690
程序
烧录
和参数写入
有
什么区别
?
2024-04-15
8381
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分