维普资讯 http://www.cqvip.com
Co/u EViotorola微处理器部系统工程师Vincent Ko MC68HC908LJ 1 2 微控制器中的闪存在电路编程 In—Circuit Programming ofFLASH Memory in the MC68HC908LJ12 在电路编程是指在器件安装在最 和下列管脚的逻辑电平决定:IRQ、 闪存进行编程。因此,重新编程包括: 终电路板(目标系统)上的时候对器件 RST、PTAO、PTA1、PTA2和PTCl。 擦除和编程两步。 进行编程或擦除操作。这允许在不把电 块保护的闪存 ICP代码 路从目标系统取下的情况下改变用户 当闪存被块保护(block protected) 在用户模式下进行ICP要求,ICP 代码,从而实现对器件的重新编程或初 时,闪存是不能被擦除可编程的 地址 代码存储在可被用户程序调用的非易 始化编程。 为¥FE09的闪存块保护寄存器用来保 失性存储器中。这意味着ICP代码必须 MotorolaMC68HC908LJ12(Ul2) 护闪存的一块或整个闪存。向块保护寄 做为用户代码的一部分编程到LJl2的 是基于HC08架构的一种通用器件,具 存器中写¥FF将解除整个闪存的保护: 闪存中。考虑到这一点,用户模式下的 有l2K字节的片上闪存和512字节的 ROM驻留程序 ICP在闪存最初为空(空白器件)时是 RAM 一个红外通信接口、一个串行 LJI2中的ROM驻留程序旨在简 不能进行的。初始的空白器件必须在监 外设接口、一个AD转换器 一个实时 化用户的闪存编程和擦除。这些程序是 控模式下编程。 钟和一个LCD驱动器模块。其中12k 存储在ROM中的永久代码,可利用子 ICP代码编程在闪存中,可以利用 字节闪存分配给用户代码,另外还有48 程序调用执行。表1示出了闪存编程和 软件或硬件启动ICP过程,有两种操作 字节分配给用户定义的复位和中断向 擦除操作的四个程序。 方式: 量。对于编程或擦除操作不需要高电压 表1 LJ12 ROM驻留编程/擦除程序 1 ICP代码 供电,因为所需要的高电压由内部的电 程序名称 程序描述 调用地址 通过LJl2的端口 荷泵产生。可利用运行在用户模式或监 PRGRNGE 蝙程指定的地址范围 ¥FCO6 引脚或SCI接口 控模式的软件例程通过写地址为¥ ERARNGE 擦除一页或整个阵列 SFCBE 建立LJI2与一个 FE08的闪存控制寄存器实现对闪存的 MON_PRGRNGE 在监控模式下编程指定的地址范围 ¥FF28 外部主机系统的 编程或擦除操作。 通信连接。主机发 用户模式 MON_ERARNGE 在监控模式下擦除一页或整个阵列 ¥FT2C 出命令擦除LJ2 在用户模式下,LJI2运行的是已 用户模式下的在电路编程 的闪存并下载数据对闪存进行编程。在 经编程存储在闪存中的用户代码。这是 在用户模式下的ICP可保证在目 这种情况下,LJI 2 ICP代码就象一个 LJ12在大多数时问中所处的模式。 标系统运行的同时对LJI2中的闪存进 命令解释器。 监控模式 行重新编程=对LJI 2中的闪存进行重 2 ICP代码运行自己的擦除子程 在监控模式下,LJ12运行在生产 新编程分成两步。第一步是通过擦除操 序擦除闪存。然后ICP代码通过LJl2 时永久编程在LJI2中的存储器区域中 的端口引脚或SCI接口建立LJI2与一 作擦除闪存中的现有数据。最小的擦除 的监控代码。监控代码用于通过LJl2 单位是128字节,称为页。闪存控制寄 个外部主机系统的通信连接。新的数据 的PTA0管脚在ul2和外部主机间实 存器中的MASS位提供了一次操作擦 下载编程到闪存中。 现串行通信。对初始的空白LJI2闪存 除整个闪存阵列的选择,这种操作称为 在两种方法中,ICP代码都必须加 编程就是在监控模式下进行的。 整体擦除(Mass erase)。必需指出的 载到RAM存储器中,并在RAM中执 闪存初始蛔程 是,闪存中被擦除的单元读出值为SFF。 行。当程序在闪存中运行时不允许编程 LJ12操作模式在上电复位(POR) 第二步是编程,即利用新的数据对空的 或擦除操作:如果在ICP代码还在闳存 后锁定,并由复位向量(¥FFFE一¥FFFF) 中 那么 世界电子元器件2口旺6 维普资讯 http://www.cqvip.com
Motorola DiaitaIDNA 有擦除ICP代码本身的危险 始时.应当配置MCU使得在ICP过程中不会产生引脚冲突或信失控 号。同时还必须注意当带有空白闪存的MCU系统第一次上电时,其端 监控模式下的在电路编程 口引脚处于其缺省复位状志。 在监控模式下,LJl2运行在制造过程中 引脚隔离 永久编程在存储器中(¥FCO0.SFDFF和¥FE10. 如果用于连接外部主机的MCU引脚是与目标系统共享的,必须保 SFFCF)中的监控代码。LJ12器件中闪存的第 证进行ICP连接时它们被隔离到适当的逻辑电平。 一次编程只能在监控模式下进行: COP看门拘操作 通过麓加高电压进入监控横式 当在用户模式下进行ICP操作时,还必须考虑COP操作=一旦 与许多Motorola 8位MCU,通过在/IRQ COP被使能,在用户程序运行过程中是不能被禁止的。因此,在ICP 引脚施加高电压(对LJ|2为1 5 VDD、max 擦除和编程程序中,COP计数器必颓定时清除以防止COP复位。在监 8V)和在几个I/O引脚施加特定的逻辑电平 控模式下,COP是被禁止的。 (对LJ12为PTA1、PTA2、和PTC1),则在 下面的代码在用户模式下完成整体擦除。RAMFILE存储器区被保 上电复位(POR)之后进入监控模式。利用这 留用于存储ERARNGE子程序调用的数据块。当ICP请求被接受时, 一高电压进入方法时,MCU(在OSC1)的时 这一代码需要上载到RAM中,然后才能通过调用RAMSTART执行。 钟输人必须来自外部振荡器,频率为 然后LJ 12复位=在这一例子中,利用了非法操作码进行复位。 4 9I 52MHz或9.8304Mttz。通过对这一时钟 Reference u ̄lead coding for ̄1a¥s erase in 115ci ̄m0de 分频在PTA0生成9600波特的通信速度。 ERARNGE EOU SFCBE ORG RAM 通过空向量方法进入监控模式 RAMFILE DC B ¥14 :Indicates 4 bus(bus=4 9l52MHz) 在新的闪存实施方案中,需要减少采用 DC B¥40 ;Data size assumedto be 64 DC W SFI ̄FF ;SFFFF nleall¥mass erits ̄ ICP对MCU进行编程时连接目标系统的线数。 DS B 64 ;Reservefor data array RAMSTART: 进^监控模式的另~方法是空(被擦除)的复 LDHX RAMFILE JSR ERARNGE Ma ,a5e tge FLASH memory 位向量。复位向量只有通过整体擦除操作擦除。 如果在上电复位后的模式锁定过程中,IRQ引脚 DC B S32 Perforn ̄illegal opc ̄le rese【 接地,PLL被使能,允许利用接在OSC1和 复位后,因为复位向量是空的,LJl2进人监控模式。通过在PTA0 OSC2问的32 768kHz晶体作为输人时钟,生 (参考数据 ̄tlt-中的监控ROM一节)连接一个主机,可以把下列代码 成9600的波特率。如果IRQ引脚在上电复位 加载到LJ I2 RAM中实现闪存的编程。 后的模式锁定过程中被拉成高(VDD),PLL .Reference uptoad eo ̄ing f0r programming in monitor mode MON PRGRNGE EQu SFF2g 被禁止,一个外部4.9152MHz输入时钟(晶体 ORG RAM RAMFILE: 或外部振荡器)将可产生4800的波特率。与高 DC B ¥14 :Indicates 4 bus(bus ̄9I52M ̄z) DC B¥40 :D a s】ze assumedto be 64 电压进入方式相比,这一方法节约了三条线, DC W¥C000 ;Start ofFLASH memory 不需要连接PTA1、PTA2、和PTC1。 DS B 64 -Reservefor dafa array FLASHPRG: 在监控模式下实现ICP的优点是不需要在 LDHX RAMFILE ISR MON PRGRNGE 用户代码包含ICP代码:此外,还可以利用 RAMFILE存储器区被保留用于存储MON PRGRNGE子程序调 MCUscribe编程或ICS Motorola工具通过 用的数据块。用户使用监控命令WRITE或1wRITE利用数据填充RAM. PTA0串行连接实现PC主机系统与MCU的通 FILE区域,然后发出执行(RUN)命令执行FLASHPRG程序将数据 信。 编程到闪存中。完成后,MON~PRGRNGE将控制返回给监控代码。 有关ICP的其它考虑 这一编程过程不断重复直到整个闪存都被编程完。编程完毕后,ul2 在一个上电复位后进入用户模式。 信号状态 为无中断地完成编程过程,在ICP操作中 digitatdn ・毫. 正常的系统活动通常被停止。因此,在ICP开 皿 2002.6世界电子元器件