搜索
bottom↓
回复: 10

智能充电器入门教程 二: 利用 ISP 软件在线下载程序

[复制链接]
(345363869)

出0入0汤圆

发表于 2009-11-14 21:35:04 | 显示全部楼层 |阅读模式
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 选项;


(原文件名:1.gif)

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


(原文件名:2.gif)

配置完选项后, 点击工程编译按钮, 然后我们就可以在 \Example2-GPIO\GPIO_test\output 目录下面得到 Gpio_Test.Hex 文件了.


(原文件名:3.gif)

第二步: 准备串口物理连接和 设置 Boot 跳线选择芯片启动类型
先需要准备一根串口延长线, 一头为公头,一头为母头的串口连接线 (非交叉线), 和一台有串口的电脑.  (注意:如果您的电脑没有串口,请购买 "USB 转 RS232" 的硬件设备来扩充你电脑的串口.)
将智能充电器的 JP2 使用短接片短接选择芯片从内部的 Boot 区启动, 上电后会先进入 ISP 状态.(备注: ChargerV1.2 版本在 ISP 是有个小 bug , 需要上电短接 JP2 的同时, 需要用镊子短接 R13. 这个是这个版本硬件的惟一 bug)
连接串口线至你的电脑上的串口
给智能充电器供上 5V 电源.  当充电器上的电源指示灯点亮后一切准备就绪.


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

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

点击此处下载 ourdev_503225.rar(文件大小:577K) (原文件名:mcuisp.rar)



打开 mcuisp.exe 绿色软件,
选择好您连接至开发板使用的电脑上的串口, 可以通过搜索串口菜单来自动搜索出你电脑上的串口信息.
在左上方的"程序文件"选择你准备烧入芯片中的代码, 就是前面我们生成的Gpio_Test.Hex.
然后在菜单选项栏上选择 "STMISP" 菜单, 点击 "读STM32器件信息" 命令按钮.
我们会在右边的信息框中显示出连接成功的信息:
如图所示:


(原文件名:4.gif)

选择上"校验"和"编程后运行"两个选项后点击"开始编程".
会报出程序成功烧入芯片的一些信息, 如下:
------------------------------------------------------------------
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向您报告,命令执行完毕,一切正常
----------------------------------------------------------------

这个时候您可以看到您手中的智能充电器上的两个红绿色 LED 有规律的轮流点亮, 说明程序已经成功的烧入芯片了.


备注: 智能充电器 ChargerV1.2 版本硬件在 ISP 上有一点点小 bug , 需要再短接 JP2 的同时在上电前短接 R13 电阻. (在 ISP 上电的时候用镊子短接下这个电阻, 这是这个板子的惟一小 bug, 因为不影响功能, 所以我没有更新.)
(345047142)

出0入0汤圆

发表于 2009-11-18 13:33:51 | 显示全部楼层
写保护的字节如何设定?
(344593373)

出0入0汤圆

发表于 2009-11-23 19:36:40 | 显示全部楼层
mark
(342537597)

出0入0汤圆

发表于 2009-12-17 14:39:36 | 显示全部楼层
可以使用ST提供的FlashLoader 程序。可以写保护,读保护。
(331545647)

出0入0汤圆

发表于 2010-4-23 19:58:46 | 显示全部楼层
r13接的那个管脚?我看在充电指示灯附近啊,怎么会影响isp?
(323361139)

出0入0汤圆

发表于 2010-7-27 13:27:14 | 显示全部楼层
我的怎么isp不成呀,郁闷
(323072173)

出0入0汤圆

发表于 2010-7-30 21:43:20 | 显示全部楼层
R13是连到BOOT1管脚了,不短接无法进入ISP状态,我是在R13上并联焊了2 pin插针,这样方便短接,但要注意:仅在ISP
模式短接它,正常工作模式千万不要短接它,因为这个管脚复用为LED驱动了。
(322914099)

出0入0汤圆

 楼主| 发表于 2010-8-1 17:37:54 | 显示全部楼层
6楼说的没有错。 这个地方设计的有些小不合理。
(274706394)

出0入0汤圆

发表于 2012-2-10 16:39:39 | 显示全部楼层
教程很不错,谢谢分享
(274685037)

出0入0汤圆

发表于 2012-2-10 22:35:36 | 显示全部楼层
很好,谢谢了
(12637820)

出0入0汤圆

发表于 2020-5-31 21:29:13 | 显示全部楼层
mark...........
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号-1 )

GMT+8, 2020-10-25 03:59

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表