单片机烧录

在设计芯片的时候,关于烧录的环节是一个不得不考虑的问题。

我们首先排除掉,由外部直接硬件操控FLASH

的方案,这个方案有很多缺点。

1、每个IC使用的FLASH型号是各不相同的,每种型号的FLASH的烧录命令和流程都有差别,这会导致烧录器需要把所有的FLASH控制方式都内置,但是万一下次换了一个最新型号的FLASH呢?因此这种方式通用性非常低。

2、有些IC未必使用FLASH,有可能会采用OTP

(一次性编程),OTP一般是由芯片自己的内部寄存器来控制,直接写FLASH的烧录器在这根本就没办法用了

那现在换一个思路,让芯片自己控制自己的内部存储器,我用通信的方式把固件发给芯片,由它自己来完成这个过程呢?

很好,现在我们面临的问题变成了如何将这段烧录程序导入到芯片中运行这个问题了。

假如,芯片设计

的时候就是一个空片。那如何将程序下载进芯片中运行呢?

别怕,你用过JTAG吗?JTAG在调试的时候,是不是可以随便修改RAM,随便设置PC指针?

而且几乎所有的芯片硬件都是支持JTAG功能的吧?那这个问题就有解了。

我可以用JTAG将一段程序写入到RAM中,设置PC指针到程序的起始地址。这个程序是专门用来烧录FLASH和OTP的程序,我可以这样做:

1、将这个程序导入到RAM中

2、将固件的一部分内容导入到RAM的某个固定地址

3、设置PC到这个程序的起始地址,同时在程序结束的位置设置一个断点。

4、启动这个烧录程序,等待断点触发,往复2、3、4即可。

这个就是Keil

中的烧录算法的实现原理。而算法文件就是这个IC对应的烧录程序。

那现在,完全搞定烧录的问题吗? 不、还只完成了一半。这种方式还有好几个缺点:

1、烧录器硬件成本比较高

2、JTAG烧录器的控制复杂度和开发难度很高

3、对于安全程度非常高的芯片,JTAG很不安全

因此,我们能不能默认就将这段程序在芯片出厂的时候烧录或者固化到芯片上呢?同时采用成本更低和通用性更高的串口通信

所以,这段程序怎么放,有很多方案:

1、直接芯片投片的时候,由数字设计人员将固件硬编码

到晶圆上,芯片生产出来的时候,都会携带这个程序。这个的缺点就是,这段固件不可更改,固化前会经过大量的测试。

2、对于有OTP的芯片的话,会在芯片出厂测试时将这个程序烧录到OTP中,烧录方式用的就是JTAG

芯片的烧录方案,基本上就是这些了,对于那些你接触到的各种千奇百怪的烧录工具,其实也就是厂商自己定的通信协议

的不同导致的。

相关推荐
天空'之城29 分钟前
单片机基础核心知识点汇总(五)
单片机·嵌入式硬件
恒锐丰-罗生6 小时前
SS8103 芯片解析:45V 同步整流降压半桥恒流驱动控制器 大功率光源国产优选 告别低灰闪烁!
驱动开发·嵌入式硬件·硬件工程
FakeOccupational7 小时前
【电路笔记 STM32】stm32f103 实现HAL_UART_Transmit_DMA + 普通模式/连续模式的 UART DMA 收发
笔记·stm32·嵌入式硬件
wuyk5557 小时前
第 6 章 FOC 完整系统整合:从算法到真机跑起来
c语言·开发语言·stm32·单片机·嵌入式硬件
恒锐丰科技韩生7 小时前
率能 SS6810H|10‑32V 双通道 H 桥步进电机驱动 ETSSOP20 打印机安防舞台灯光专用
嵌入式硬件·硬件工程
156082072197 小时前
直流耦合采集卡前端电路调试
嵌入式硬件·fpga开发
恒锐丰科技林技术员9 小时前
SS6841T 双通道 H 桥驱动芯片:大电流集成电机驱动优选方案
单片机·嵌入式硬件
打工陈9 小时前
器件知识——(1)磁珠与电感
嵌入式硬件·智能硬件·设计规范
LCG元9 小时前
STM32 HAL 库串口 DMA + 空闲中断接收不定长数据:从原理到排查“上电误进 IDLE“
stm32·单片机·嵌入式硬件
乘凉~11 小时前
【Keil5】Keil5 安装和免费使用过程记录
stm32·单片机·嵌入式硬件