完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
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,我们下期再见。 |
|
|
|
只有小组成员才能发言,加入小组>>
3278 浏览 9 评论
2956 浏览 16 评论
3458 浏览 1 评论
9000 浏览 16 评论
4051 浏览 18 评论
1110浏览 3评论
572浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
568浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2302浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1859浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 15:05 , Processed in 1.355673 second(s), Total 80, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号