邮箱:zhuimengcanyang@163.com 痴爱嵌入式技术的蜗牛
分类: 嵌入式
2015-09-10 22:46:55
最近在研究芯片下载方式,那种比较方便。
这一篇主要是探讨ISP下载方式,CPU用的是NXP的LPC1549。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ISP方式: in system programming.
看LPC1549的datasheet:P22.
直接贴图了:
|
|
(下面是转载的)
NXP的微控制器产品线涵盖ARM公司的ARM7/ARM9/Cortex-M0/Cortex-M0+ /Cortex-M3/Cortex-M4F全线产品,可满足大部分客户的需求。这些微控制器的程序更新除了可以通过仿真器和编程器以外,NXP微控制器 提供了一个串口下载用户程序的功能(这就是传说中的ISP),通过大家常用的串口就可以进行程序烧写或更新,特别适合小批量生产,既经济又实惠。
今天我们就来简单唠唠如何通过ISP来更新程序,其实非常简单,一个串口+一个PC软件就可以搞定,大家可以下载Flash Magic软件,下载安装后,运行Flash Magic如图0.1所示(FlashMagic下载地址:)。
图0.1 FlashMagic
将芯片的UART0(ISP只支持UART0,具体大家要参考芯片的用户手册,找到具体是那两个引脚)与计算机的串口相连,将ISP引脚(哪里可以找到引脚号?你猜!)短接到地,重新上电或者复位让芯片进入ISP状态,通过简单的5步就可实现:
Step1 Communications(通信设置)
在“COM Port”中根据实际情况选择串行通信端口;在“Baud Rate”选项中设置串口通信波特率[1];在“Device”中选择您所使用的芯片型号;在“Interface”中选择“None(ISP)”作为下 载方式;在“Oscillator Freq”中设置芯片所使用的系统时钟频率[2]。
[1]推荐串口通信波特率选用9600Hz或19200Hz,波特率设置过高容易导致ISP通信出错,若ISP频繁出错,请上调或下调波特率。
[2]系统时钟频率并非固定的参数,推荐与系统晶振值相同,其值大小一般情况下不影响ISP下载,但是早期的ARM7芯片该值一定要和使用的晶振保持一致。
Step2 Erase(擦除设置)
选择好“Device”后,在图0.2红色方框中将出现所选芯片的Flash分区情况。在红色方框中可任意选择您所要擦除的分区。
亦可勾选“Erase
all Flash+Code Rd Prot” ------ 擦除所有的分区
或 “Erase blocks used by Hex
File” ------ 擦除Hex文件使用到的分区。
若用户无特殊应用,建议选择擦除所有分区。
图0.2 擦除设置
Step3 Hex File(Hex文件路径设置)
点击【Browse】按钮,选择您需要下载的Hex文件。
Step4 Options(其它功能设置)
“Verify after programming”设置是否在下载后进行效检,用户根据自己需要进行选择。
“Fill unused Flash”设置填充未使用的Flash,无特殊要求无需勾选此项。
Step5 Start(启动)
重启系统(重新给系统上电或按下开发板上的“RESET”键)后点击【Start】启动ISP下载。
下载完成后断开ISP跳线,并重启系统,程序运行。
当使用代码保护功能加密芯片后,SWD调试不可用,只能通过ISP执行芯片的整片擦除才能够清除代码保护。ISP擦除过程如下:
参照上文ISP下载步聚1进行通信设置;
选择菜单档的“ISP”?>“EraseFlash...”,在弹出的“Erase Flash”窗口中勾选“Erase all Flash+Code Rd Prot”,单击【Erase】启动整片擦除。如图0.3所示。
图0.3 擦除芯片
擦除成功后,断开ISP跳线并重启系统。
用最简单的方式实现代码的下载或者更新,So Easy!