说到烧录程序,我最开始接触学习的是STC的51单片机,通过 STC-ISP 烧录软件连接串口下载程序。后来学习STM32,也可以通过串口下载,为了方便在机调试,使用 J-Link 连接 JTAG/SWD 下载和调试程序。
现在来整理下单片机下载程序方式。
单片机烧录方式主要分为三种:ICP、IAP、ISP。
ICP (In Circuit Programing) - 在线电路编程
ISP (In System Programing) - 在线系统编程
IAP (In applicating Programing) - 在线应用编程
常用的下载方式有
JTAG编程:通过JTAG协议进行编程
SWD编程:通过SWD协议进行编程
UART编程:通过UART进行编程
ICP是指“在电路编程”。一般需要 xx-Link 烧录工具,连接PC和MCU。
常用的烧录工具为J-Link、ST-Link、Nu-Link。与之配套的烧录软件为J-Flash、st-link utility、NuMicro_ICP_Programming_Tool。通过SWD接口进行烧录。这种方式某些情况下可以重写LDROM(也就是BootLoader,启动引导程序或引导区)
比如新唐单片机,PC上运行的软件“NuMicro ICP编程工具”透过SWD的端口更新晶片内部LDROM、APROM、数据闪存(DataFlash)和目标用户配置字(Config)芯片。
image.png
ISP是指“在系统上编程”。一般通过PC串口就可以下载程序(通常需要串口转换模块,比如PL2303、RS-485等)。
比如新唐单片机,目标芯片使用USB/UART/SPI/I²C/RS-485/CAN周边接口的LDROM引导代码去更新晶片内部APROM、数据闪存(DataFlash)和用户配置字(Config)。
image.png
这种方式需要单片机首先要已写入 LDROM / BootLoader
。比如8051单片机出厂就已经写入,所以方便新手通过ISP+串口下载程序。新唐51单片机出厂就没有写入,第一次需要购买 Nu-Link,通过ICP写入LDROM。
IAP是指“在应用上程序设计”,通过软件实现在线电擦除和编程的方法。IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将程序从一个存储体转向另一个。
在线系统/程序升级就是使用该功能。
适用于所有电子电路制造行业、及半导体相关产业