P89LPC932的几种ISP编程方法

[09-12 17:53:37]   来源:http://www.88dzw.com  单片机学习   阅读:8450

文章摘要:有两个问题在使用这种触发方式的时候应该了解。一是某些USB转RS232的转换器无法发出中止控制符信号,所以无法使用检测中止控制符信号的方式触发处理器复位并进入ISP模式;二是中止控制符信号在正常的串口通信不会出现,所以用户可以放心使用这种触发方式。1.2.3硬件激活进入ISP模式使用这种模式的好处在于,不论处理器内部原来存储着什么用户代码,也不论状态位的值是什么,ISP模式总是可以进入的(不过有一点还是必须得到保证,就是处理器里原来的启动代码未被擦除或覆盖,而默认的启动向量1EH也没有修改过)。由于P89LPC932引脚数比较少,而且内置了程序存储器,又没有传统的用于外扩总线的P0、P2口和P

P89LPC932的几种ISP编程方法,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com
有两个问题在使用这种触发方式的时候应该了解。一是某些USB转RS232的转换器无法发出中止控制符信号,所以无法使用检测中止控制符信号的方式触发处理器复位并进入ISP模式;二是中止控制符信号在正常的串口通信不会出现,所以用户可以放心使用这种触发方式。

1.2.3硬件激活进入ISP模式

  使用这种模式的好处在于,不论处理器内部原来存储着什么用户代码,也不论状态位的值是什么,ISP模式总是可以进入的(不过有一点还是必须得到保证,就是处理器里原来的启动代码未被擦除或覆盖,而默认的启动向量1EH也没有修改过)。由于P89LPC932引脚数比较少,而且内置了程序存储器,又没有传统的用于外扩总线的P0、P2口和PSEN引脚,所以依靠硬件方式触发芯片进入ISP模式的方法与传统MCS-51芯片有所不同。

  上电后,如果处理器在复位脚上检测到如图2所示的脉冲波形,则处理器将从启动向量指定的地址处取指令运行,也就是进入ISP模式,而不是从0000H处取指令执行。其实,这种进入方式的结果和有一个非零的状态字节有着相同效果。不过要注意的是,产生的脉冲数目只允许有3个,多于或少于3个脉冲都不能触发处理器进入ISP模式。

可以利用一枚外部的微处理器来产生这3个脉冲,同时它还控制一枚电源芯片来产生P89LPC932需要的电源电压。这种方法的原理很容易弄明白,笔者在此不再赘述。另外,还有一种更简单的方法,就是由用户PC机上的异步串行口加上部分硬件电路来直接产生所需的时序,具体介绍可以参看参考文献1。

1.2.4直接调用法触发处理器执行ISP代码

  P89LPC932的ISP模式的预置启动向量为1EH,所以其ISP驻留代码首地址为1E00H,要进入ISP,直接调用1E00H处的代码就可以了。在C代码中,程序通过函数指针的方式就可以调用ISP驻留代码(即进入ISP模式)。

1.3在P89LPC932上使用Flashmagic

  Flashmagic是一个免费的软件工具,可以为Philips的许多处理器作ISP编程,包括P89LPC932。Flashmagic启动时将试图连接用户选择的器件,不过通常在这里都会报错,因为并没有任何处理器处于ISP模式,又或者还有什么其他的设置需要更改。请选择Flashmagic控制的PC机上的正确串行口,同时选择目标器件为P89LPC932,如图3所示。然后使这片P89LPC932进入ISP模式(如果

这是一枚全新的处理器,则它这时已经处于ISP模式了)。如果这不是一枚全新的处理器(状态位不是1),那么必须使用硬件方式激活处理器进入ISP模式,或用检测中止控制符信号的方式触发处理器复位并进入ISP模式。

  如果使用检测中止控制符信号的方式触发处理器复位并进入ISP模式,如图4所示,则应当配置Flashmagic,以使用这种方式来初始化ISP模式。首先,检查“options”菜单下的“advanced options”选项,在弹出的对话框的“hardware config”页上应该取消“Use DTR and RTS to enter ISP mode”选择框中的选择(注:FlashMagic可以记住你的各种设置,下次你再次使用,如果不需要其他设置,可不再设置它即可使用)。然后,从“ISP”菜单下选择选项“start bootrom”,并从弹出的对话框中选择“send break condition”按钮,Flashmagic可以通过PC机串行口直接向P89LPC932发出中止控制符信号。一般来说,这时P89LPC932就应该处于ISP模式下了。不过,Flashmagic不会自动校验P89LPC932是否已经真正进入了ISP模式,这个工作需要由用户自己来做。如果P89LPC932未处于ISP模式,若干个Flashmagic的菜单是无法使用的
(即使用户选择这些菜单,Flashmagic也会报错而不会有执行结果),用户可以通过选择这些菜单来检验P89LPC932是否已经处于ISP模式下了,例如“ISP”菜单下的“Blank Check…”选项。当然,P89LPC932未进入ISP模式时,对它的编程是无法进行的,从这层意义上说,同样也可以知道P89LPC932并未处于ISP模式下。

Flashmagic的缺省设置是自动保护P89LPC932中扇区7内高端512字节的启动代码,不过用户可以在“options-advanced options-security”对话框中关闭这个保护功能。不过,并不推荐用户这么做,因为这会提高误操作对覆盖ISP启动代码的可能性。

  注意,有些菜单选项在新版Flashmagic的位置可能与本文中提及的不同。本文使用的是1.74版的Flashmagic,至截稿时止,Flashmagic已升级至2.07版。

2 总结

  Philips P89LPC932是一种功能全面、使用简单、性能可靠、性价比较高的高速51兼容微处理器,适用于产品研发、小批量产品试制、高校科研等诸多领域。本文对P89LPC932进行ISP编程的具体方法和技巧进行了详述,希望读者们能充分利用P89LPC932的优秀在线编程特性。



上一页  [1] [2] [3] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习

《P89LPC932的几种ISP编程方法》相关文章

分类导航
最新更新
热门排行