嵌入式 · 2010-05-22

STM32 入门教程 ISP 在线下载程序

ISP:in system programming

简介:
ISP: 用写入器将code烧入,不过,芯片可以在目标板上,不用取出来,在设计目标板的时候就将接口设计在上面,所以叫”在系统编程”,即不用脱离系统;
应用场合: 1,ISP 程序升级需要到现场解决,不过好一点的是不必拆机器了;
ISP的实现一般需要很少的外部电路辅助实现,通常可利用单片机的串行口接到计算机的RS232口,通过专门设计的固件程序来编程内部存储器。

主要是指代芯片的烧写方式,以往写片子需要把片子拿下来,离开电路,用 编程器烧,换句话说,芯片不能不脱离应用系统进行写入。
ISP 主要针对这个问题,使用JTAG或者串行口(MCU 内部有Boot Loader,通过指定的方式激活之,它可以和PC或其它上位机通过串口联系,不用使单片机离开应用系统而更新内部的程序/设置)进行程序的烧写操作。
因此,具有ISP 功能的MCU 可以不使用编程器进行编程。当然,实现ISP 可能需要一些硬件电路支持,具体的在数据手册中有说明。

一般具备ISP 功能后,就不要编程器了,而是使用下载线进行编程工作。但是不是说他们就一定不支持编程器了,具体型号具体分析。是否需要仿真器进行仿真和是否具备ISP和IAP没有必然的联系。只不过具备了IAP功能,可以在MCU内写入监控程 序,模拟一个仿真器,当然,这个监控程序是要消耗资源的,和使用硬件的仿真器还有一定的差异。

——————————————————————-

以上就是 ISP 的一些概念上的描述, 现在通俗点说就是怎么利用工具把程序下载到芯片当中去.

第一步: 配置工程, 输出编译后的代码 .Hex 文件:

我们打开第一个我们的教程例子, GPIO_Test 这个例子工程.

先按照下面的步骤来配置一下工程:

点击下图中的 Option 选项;
5.GIF

下载 (9.61 KB)

2009-7-31 22:17

选中 “Output” 菜单下的 “Create HEX File “, 并且在右边的 “Name of Executable” 中填写我们生成编译代码的文件名称.
6.GIF

下载 (10.26 KB)

2009-7-31 22:17

配置完选项后, 点击工程编译

按钮

, 然后我们就可以在 \Example2-GPIO\GPIO_test\output 目录下面得到 Gpio_Test.Hex 文件了.
7.GIF

下载 (8.5 KB)

2009-7-31 22:17

第二步: 准备串口物理连接和 设置 Boot 跳线选择芯片启动类型

先需要准备一根串口延长线, 一头为公头,一头为母头的串口连接线 (非交叉线), 和一台有串口的电脑.  (注意:如果您的电脑没有串口,请购买 ”

USB

转 RS232″ 的硬件设备来扩充你电脑的串口.)

将 Mini-

STM32

的 J1 跳线帽跳至 2,3 两脚上选择芯片从内部的 Boot 区启动, 上电后会先进入 ISP

状态

.

连接串口线至你的电脑上的串口

将 USB 延长线连接至你的电脑上给 Mini-STM32 开发板供上 5V 电源.  当开发板上的电源指示灯点亮后一切准备就绪.

第三步: 配置 ISP 下载软件 mcuisp.exe:

您可以点击下载稳定版的 mcuisp V0.975 版本的软件:

mcuisp.rar

(576.58 KB)

下载次数: 344

2009-7-31 22:43

打开 mcuisp.exe 绿色软件,

选择好您连接至开发板使用的电脑上的串口, 可以通过搜索串口菜单来

自动

搜索出你电脑上的串口信息.

在左上方的”程序文件”选择你准备烧入芯片中的代码, 就是前面我们生成的Gpio_Test.Hex.

然后在菜单选项栏上选择 “STMISP” 菜单, 点击 “读STM32器件信息” 命令按钮.

我们会在右边的信息框中显示出连接成功的信息:

如图所示:
8.GIF

下载 (23.51 KB)

2009-7-31 22:41

选择上”校验”和”编程后运行”两个选项后点击”开始编程”.

会报出程序成功烧入芯片的一些信息, 如下:

——————————————————————

DTR电平置高(+3-+12V),复位

RTS置高(+3-+12V),选择进入BootLoader

…延时100毫秒

DTR电平变低(-3–12V)释放复位

RTS维持高

开始连接…3, 接收到:1F

在串口COM4连接成功@115200bps,耗时343毫秒

芯片内BootLoader版本号:2.1

芯片PID:00000410

芯片FLASH容量为128KB

芯片SRAM容量为65535KB(此信息仅供参考,新版本芯片已不包含此信息)

96位的芯片唯一序列号:33006C065839353235581943

读出的选项字节:

A55AFF00FF00FF00FF00FF00FF00FF00

全片擦除成功

第547毫秒,已准备好

共写入2KB,进度100%,耗时4343毫秒

成功从08000000开始运行
www.mcuisp.com

向您报告,命令执行完毕,一切正常

—————————————————————-

这个时候您可以看到您手中的 Mini-STM32 开发板上的两个红色 LED 有规律的轮流点亮, 说明程序已经成功的烧入芯片了.

最后您在断电后将 Mini-STM32 上 J1 的跳线帽跳至 1,2 引脚上, 重新上电后, 程序就可以正常运行了.