ISP- In-System Programming
ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码,
而不需要从电路板上取下器件,已经编程的器件也可以用 ISP 方式擦除或再编程。
ISP 的时候需要用到 (bootloader) 自举程序,自举程序存储在 STM32 器件的内部自举 ROM 存储
器(系统存储器)中。其主要任务是通过一种可用的串行外设(USART、CAN、USB、I2C 等)将
应用程序下载到内部 Flash 中。每种串行接口都定义了相应的通信协议,其中包含兼容的命令集
和序列。
最常用的ISP方式就是通过串口下载,最主要的优点就是成本低,缺点是只能用于下载程序,不能硬件仿真. 普通ISP和一键ISP,普通ISP在下载程序的时候需要手动配置BOOT的启动方式,而一键ISP则通过独特的硬件电路和上位机配合使用来达到一键下载的功能。
通常的 ISP 的步骤如下:
电脑通过 USB 转串口线连接 STM32 的 USART1,并打开电脑端的上位机;
设置跳线保持 BOOT0 为高电平,BOOT1 为低电平;
复位单片机使其进入 bootloader 模式,通过上位机下载程序;
下载完毕,设置跳线保持 BOOT0 为低电平,BOOT1 为低电平;
复位单片机即可启动用户代码,正常运行。
以上步骤有个不好的地方就是下载程序需要跳线及复位操作,很繁琐。通过对 ISP 的原理认识,
一键 ISP 就诞生了,它需要做的事情就是用上位机去控制 BOOT0 脚和单片机的复位脚,原理图
如下:
|