你不知道的芯片烧写与编程

在嵌入式系统中,常需要将代码或数据烧写至MCU片内Flash或者片外的Nor Flash、Nand Flash、SPI Flash等。芯片烧写对于每个电子工程师来说非常熟悉了,但是烧写方式知道多少呢,哪种方式对于产品来说是最好的呢?下面介绍一下我们常用的几种芯片烧写方法。

编程器烧写

使用专用编程器加上对应的适配座完成Flash烧写操作,要求芯片先烧写完成再焊接在目标板上,这种方式是最常用的,速度快、易上手是它的最大特点。有了专业工具的辅助,流水线上的普通工人稍作培训就能上岗操作。由于各种芯片不同封装,需要不同的适配座,这是客户需要考虑的投入。

ISP烧写

在系统编程(In-System Programming),通过MCU片内BootROM完成在板Flash烧写操作。要求芯片出厂时带有ISP固件,一般通过串行方式烧写,这种方式烧写速度很慢,不适用烧写容量大的代码场合。比如:LPC1700系列芯片,通过串口接口,使用上位机软件FlashMagic即可烧写,由于串行烧写速度慢,不适用于量产烧写的场合。

IAP烧写

在应用中编程(In-Application Programming – IAP),支持用户程序运行时烧写Flash,但要求部分用户程序已经烧写至MCU片内Flash。

调试接口烧写

由于Arm®内核的芯片越来越普及,借助仿真器通过MCU的调试接口(如JTAG/SWD等)控制MCU完成片内Flash甚至外扩的Flash烧写。这种方式芯片先焊接在板上再烧写,适用于产品维修升级,不需要多次焊接芯片,特别对于管脚数较大的芯片,多次焊接容易导致损坏;同样适用于封装怪异的MCU,如QFP144/QFN/HVQFN/BGA等。

通常我们把第一种称为离线烧写或者裸片烧写,另外的ISP烧写、IAP烧写、调试接口烧写称为在线烧写,就是芯片已经安装至电路板的情况下,不需要将芯片从电路板取下即可完成Flash的烧写操作。下一篇介绍《离线烧写PK在线烧写》,敬请期待。