1 什么是ISP
1、ISP(In-System Programming)在系统可编程,指电路板上的空白器件可以编程写入最终用户代码, 而不需要从电路板上取下器件,已经编程的器件也可以用ISP方式擦除或再编程。
2、ISP通过芯片内部的自举程序(即Bootloader,由芯片厂家烧写好,不得更改)来选定一种串行的外设,对芯片内部的FLASH进行编程。
3、最常用的ISP方式就是通过串口下载,最主要的优点就是成本低,缺点是只能用于下载程序,不能硬件仿真。
4、普通ISP和一键ISP,普通ISP在下载程序的时候需要手动配置BOOT的启动方式,而一键ISP则通过独特的硬件电路和上位机配合使用来达到一键下载的功能。
2 ISP一键下载原理分析
要了解ISP下载过程,首先要知道BOOT启动方式,BOOT方式如下表所示:
在模式1下,芯片从内部存储器运行程序,而选择模式2就是从ISP串口下载程序。
从外部下载程序的过程就可以表示为以下四个步骤:
(1)改变BOOT0引脚的电平 0→1
(2)复位(重新读取BOOT0、BOOT1的电平情况)
(3)恢复BOOT0的电平 1→0
(4)复位 (重新读取BOOT0、BOOT1的电平情况)
如果从外部引脚方面切换跳帽会使得下载程序的过程过于繁琐,因此设计了一键下载电路,如下图所示,具体过程如下:
- 电路工作时先通过上位机使RTS输出低电平,从而导通S8550,BOOT0经上拉电阻得到高电平。
- C65充电至1.8V后,使能74HC1G66GW的EN引脚,导通1和2脚,并通过上位机给DTR置高电平,导通S8050,形成将NRST接低电平的通路,复位完成。
- 通过上位机控制RTS和DTR恢复状态,关断两个晶体管,BOOT0状态恢复。
- 下载程序完毕后,程序自动开始运行,该步骤由上位机软件完成。
3 上位机如何设置
(1)搜索到串口
(2)选择要下载的文件
(3)如图选中前两个选项
(4)在软件中选择“DTR的低电平复位,RST高电平进BootLoader”
为什么特意强调“在软件中”呢?这里需要特别注意,实际上上位机需要给出的信号是“RTS低电平进入BootLoader,DTR高电平进入复位”。但由于开发板和烧录软件的电平标准相反,所以设置时也恰好相反。烧录软件的电平标准为232标准,开发板的电平标准为TTL标准,具体如下:
第一次写博客,也没啥经验,想到哪写到哪了。学习笔记而已,希望大佬轻喷指正!