ISP预备知识:
刚购买的芯片配置字是0x63,0x00,0x1F,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00。
0x63 -- UCFG1 :WDT禁止,外部复位,掉电检测使能,WDSE禁止,内部RC;
0x00 -- UCFG2 :(不常用,不必关心这个配置字);
0x1F -- 引导向量,这个配置相当重要,ISP代码所在地址的高位;
0x01 -- 引导状态字,在这里表明引导向量使能;
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 -- 加密位,在这里表明芯片不加密(因为单片机意外跑飞的话有可能通过IAP来修改内部程序,加密则可以防止这种情况)。
这些配置字可以从编程器软件的文件缓冲区的地址FF00H这个地方看到。
因为已经使能了引导状态字,所以给单片机上电芯片自动就进入了ISP状态(直接转跳就是基于这个原理),可以进行程序的烧写。对于初次使LPC900单片机的用户,通常会反映单片机重新上电后不跑用户程序,由这里我们明白,如果要跑用户程序的话,要去掉引导状态字(即把STATUS BYTE修改成00H)。
但是这就存在一个问题,下次上电后单片机是在跑用户的程序了,那么,我怎样再次进入ISP状态呢?在这里,有两种办法激活ISP。一是三个脉冲,二是使用帧间隔。
ISP(LPC920以上才支持这种方式),常用的有两种方式,三个脉冲和帧间隔。
首先,它们对应的硬件电路是不一样的。硬件推荐用三个脉冲方式,软件推荐用Zlgisp_900,网址为http://www.zlgmcu.com/download/downs.asp?ID=1438
(把这个软件安装后,到安装目录找这个文件:LPC900_ISP_ICP.pdf,该文档对硬件电路怎样做,和烧写方法有仔细说明)。
|