绍兴网站建设企业,深圳下周一居家办公,网站 分站,好网站页面在设计芯片的时候#xff0c;关于烧录的环节是一个不得不考虑的问题。 我们首先排除掉#xff0c;由外部直接硬件操控FLASH 的方案#xff0c;这个方案有很多缺点。 1、每个IC使用的FLASH型号是各不相同的#xff0c;每种型号的FLASH的烧录命令和流程都有差别#xff0c;这…在设计芯片的时候关于烧录的环节是一个不得不考虑的问题。 我们首先排除掉由外部直接硬件操控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 芯片的烧录方案基本上就是这些了对于那些你接触到的各种千奇百怪的烧录工具其实也就是厂商自己定的通信协议 的不同导致的。