1. ISP的基本简介
ISP概念:ISP(In System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。
ISP下载的操作:ISP通过芯片内部的自举程序(即Bootloader,由芯片厂家烧写好,不得更改)来选定一种串行的外设,对芯片内部的FLASH进行编程。
常用的ISP下载方式:最常用的ISP方式就是通过串口下载,最主要的优点就是成本低,缺点是只能用于下载程序,不能硬件仿真。
普通ISP和一键下载ISP对比:普通ISP在下载程序的时候需要手动配置BOOT的启动方式,而一键ISP则通过独特的硬件电路和上位机配合使用来达到一键下载的功能。
2. ISP一键下载电路原理
要了解ISP下载,首先了解BOOT的启动方式
STM32上电后的BOOT1/0的电平状态会决定它的运行模式。很明显,我们如果上电后要进入自己写的程序并运行,那么BOOT0就要为0,BOOT1此时高低无所谓;而要进入下载模式就需要BOOT0为1而BOOT1为0;为此我们可以在电路上先将BOOT1直接拉低,然后单纯控制BOOT0。
从外部下载程序的过程就可以表示为以下四个步骤:
(1)改变BOOT0引脚的电平 0→1
(2)复位(重新读取BOOT0、BOOT1的电平情况)
(3)恢复BOOT0的电平 1→0
(4)复位 (重新读取BOOT0、BOOT1的电平情况)
如果从外部引脚方面切换跳帽会使得下载程序的过程过于繁琐,因此有如下的一键下载电路,电路如下图所示。
ISP一键下载具体过程如下:
1. 电路工作时先通过上位机使RTS输出低电平,从而导通S8550,BOOT0经上拉电阻得到高电平。
2. C65充电至1.8V后,使能74HC1G66GW的EN引脚,导通1和2脚,并通过上位机给DTR置高电平,导通S8050,形成将NRST接低电平的通路,复位完成。
3. 通过上位机控制RTS和DTR恢复状态,关断两个晶体管,BOOT0状态恢复。
4. 下载程序完毕后,程序自动开始运行,该步骤由上位机软件完成。
3.上位机设置
特别注意的是:在软件中选择“DTR的低电平复位,RST高电平进BootLoader”
为什么特意强调“在软件中”呢?这里需要特别注意,实际上上位机需要给出的信号是“RTS低电平进入BootLoader,DTR高电平进入复位”。但由于开发板和烧录软件的电平标准相反,所以设置时也恰好相反。烧录软件的电平标准为232标准,开发板的电平标准为TTL标准,具体如下:
232标准 (mcuisp软件的电平标准):
逻辑1:-3~-15V 低电平
逻辑0:+3~+15V 高电平
TTL标准(开发板的电平标准):
逻辑1:3.3V 高电平
逻辑0:0V 低电平