中国·芯片交易在线
首页 | 供应信息 | 求购信息 | 库存查询 | 新闻中心 | 展会资讯 | IC厂商 | 技术资料 | 自由区域
   新闻首页 |  行业动态 | 新品发布 | 政策法规 | 科技成果 | 模拟技术 | 嵌入系统 | 传感控制 | 存储设计  
当前位置:IC72首页>> IC新闻中心>> 存储设计 >>电子行业新闻正文

MC68HC908LJ12微控制器中的闪存在电路编程

时间:2007/12/3 8:52:00  作者:  来源:  浏览人数:803
 
 

      在电路编程是指在器件安装在最终电路板(目标系统)上的时候对器件进行编程或擦除操作。这允许在不把电路从目标系统取下的情况下改变用户代码,从而实现对器件的重新编程或初始化编程。

      Motorola MC68HC908LJ12 (LJ12)是基于HC08架构的一种通用器件,具有12K字节的片上闪存和512字节的RAM、一个红外通信接口、一个串行外设接口、一个AD转换器、一个实时钟和一个LCD驱动器模块。其中12k字节闪存分配给用户代码,另外还有48字节分配给用户定义的复位和中断向量。对于编程或擦除操作不需要高电压供电,因为所需要的高电压由内部的电荷泵产生。可利用运行在用户模式或监控模式的软件例程通过写地址为$FE08的闪存控制寄存器实现对闪存的编程或擦除操作。

      用户模式

      在用户模式下,LJ12运行的是已经编程存储在闪存中的用户代码。这是LJ12在大多数时间中所处的模式。

      监控模式

      在监控模式下,LJ12运行在生产时永久编程在LJ12中的存储器区域中的监控代码。监控代码用于通过LJ12的PTA0管脚在LJ12和外部主机间实现串行通信。 对初始的空白LJ12闪存编程就是在监控模式下进行的。

      闪存初始编程

      LJ12 操作模式在上电复位(POR)后锁定,并由复位向量($FFFE-$FFFF)和下列管脚的逻辑电平决定:IRQ、 RST、 PTA0、 PTA1、 PTA2和PTC1。

      块保护的闪存

      当闪存被块保护(block protected)时,闪存是不能被擦除可编程的。地址为$FE09的闪存块保护寄存器用来保护闪存的一块或整个闪存。向块保护寄存器中写$FF将解除整个闪存的保护。

      ROM驻留程序

      LJ12中的ROM驻留程序旨在简化用户的闪存编程和擦除。这些程序是存储在ROM中的永久代码,可利用子程序调用执行。表1 示出了闪存编程和擦除操作的四个程序。

      用户模式下的在电路编程

      在用户模式下的ICP可保证在目标系统运行的同时对LJ12中的闪存进行重新编程。对LJ12中的闪存进行重新编程分成两步。第一步是通过擦除操作擦除闪存中的现有数据。最小的擦除单位是128字节,称为页。闪存控制寄存器中的MASS位提供了一次操作擦除整个闪存阵列的选择,这种操作称为整体擦除(Mass erase)。必需指出的是,闪存中被擦除的单元读出值为$FF。第二步是编程,即利用新的数据对空的闪存进行编程。因此,重新编程包括:擦除和编程两步。

      ICP 代码

      在用户模式下进行ICP要求,ICP代码存储在可被用户程序调用的非易失性存储器中。这意味着ICP代码必须做为用户代码的一部分编程到LJ12的闪存中。考虑到这一点,用户模式下的ICP在闪存最初为空(空白器件)时是不能进行的。初始的空白器件必须在监控模式下编程。

      ICP代码编程在闪存中,可以利用软件或硬件启动ICP过程,有两种操作方式:

      1.ICP 代码通过LJ12的端口引脚或SCI接口建立LJ12与一个外部主机系统的通信连接。主机发出命令擦除LJ2的闪存并下载数据对闪存进行编程。在这种情况下,LJ12 ICP代码就象一个命令解释器。

      2.ICP 代码运行自己的擦除子程序擦除闪存。然后ICP代码通过LJ12的端口引脚或SCI接口建立LJ12与一个外部主机系统的通信连接。新的数据下载编程到闪存中。

      在两种方法中,ICP代码都必须加载到RAM存储器中,并在RAM中执行。当程序在闪存中运行时不允许编程或擦除操作。如果在ICP代码还在闪存中运行时就进行编程或擦除操作,那么有擦除ICP代码本身的危险。

      监控模式下的在电路编程

      在监控模式下, LJ12运行在制造过程中永久编程在存储器中($FC00-$FDFF 和 $FE10-$FFCF)中的监控代码。LJ12器件中闪存的第一次编程只能在监控模式下进行。

      通过施加高电压进入监控模式

      与许多Motorola 8位 MCU,通过在/IRQ引脚施加高电压(对LJ12为1.5 * VDD、 max. 8V )和在几个I/O引脚施加特定的逻辑电平(对LJ12为PTA1、 PTA2、和PTC1),则在上电复位(POR)之后进入监控模式。利用这一高电压进入方法时,MCU(在OSC1)的时钟输入必须来自外部振荡器,频率为4.9152MHz 或 9.8304MHz。通过对这一时钟分频在PTA0生成9600波特的通信速度。

      通过空向量方法进入监控模式

      在新的闪存实施方案中,需要减少采用ICP对MCU进行编程时连接目标系统的线数。进入监控模式的另一方法是空(被擦除)的复位向量。复位向量只有通过整体擦除操作擦除。 如果在上电复位后的模式锁定过程中/IRQ引脚接地,PLL被使能,允许利用接在OSC1和OSC2间的32.768kHz晶体作为输入时钟,生成9600的波特率。如果IRQ引脚在上电复位后的模式锁定过程中被拉成高(VDD),PLL被禁止,一个外部4.9152MHz输入时钟(晶体或外部振荡器)将可产生4800的波特率。与高电压进入方式相比,这一方法节约了三条线,不需要连接PTA1、 PTA2、和 PTC1。

      在监控模式下实现ICP的优点是不需要在用户代码包含ICP代码。此外,还可以利用MCUscribe 编程或 ICS Motorola工具通过PTA0串行连接实现PC主机系统与MCU的通信。

      有关 ICP的其它考虑

      信号状态

      为无中断地完成编程过程,在ICP操作中正常的系统活动通常被停止。因此,在ICP开始时,应当配置MCU使得在ICP过程中不会产生引脚冲突或信失控号。同时还必须注意当带有空白闪存的MCU系统第一次上电时,其端口引脚处于其缺省复位状态。

      引脚隔离

      如果用于连接外部主机的 MCU引脚是与目标系统共享的,必须保证进行ICP连接时它们被隔离到适当的逻辑电平。

      COP 看门狗操作

      当在用户模式下进行 ICP操作时,还必须考虑COP操作。一旦COP被使能,在用户程序运行过程中是不能被禁止的。因此,在ICP擦除和编程程序中,COP计数器必须定时清除以防止COP复位。在监控模式下,COP是被禁止的。

      下面的代码在用户模式下完成整体擦除。RAMFILE存储器区被保留用于存储ERARNGE子程序调用的数据块。当ICP请求被接受时,这一代码需要上载到RAM中,然后才能通过调用RAMSTART执行。然后 LJ12复位。在这一例子中,利用了非法操作码进行复位。

      ;Reference upload coding for mass erase in user mode
      ERARNGE EQU   $FCBE
             ORG    RAM
      RAMFILE:
             DC.B   $14 ;Indicates 4*bus (bus=4.9152MHz)
             DC.B $40 ;Data size assumed to be 64
             DC.W $FFFF     ;$FFFF means mass erase
             DS.B   64 ;Reserve for data array
      RAMSTART:
             LDHX   RAMFILE
             JSR    ERARNGE ;Mass erase the FLASH memory
      RESET:
             DC.B   $32 ;Perform illegal opcode reset

      复位后,因为复位向量是空的,LJ12进入监控模式。通过在PTA0(参考数据手册中的监控ROM一节)连接一个主机,可以把下列代码加载到LJ12 RAM中实现闪存的编程。

      ;Reference upload coding for programming in monitor mode
      MON_PRGRNGE EQU   $FF28
             ORG RAM
      RAMFILE:
             DC.B $14      ;Indicates 4*bus (bus=4.9152MHz)
             DC.B   $40     ;Data size assumed to be 64
             DC.W   $C000     ;Start of FLASH memory
             DS.B   64 ;Reserve for data array
      FLASHPRG:
      LDHX RAMFILE
      JSR    MON_PRGRNGE

      RAMFILE存储器区被保留用于存储MON_PRGRNGE子程序调用的数据块。用户使用监控命令WRITE或IWRITE利用数据填充RAMFILE区域,然后发出执行(RUN)命令执行FLASHPRG程序将数据编程到闪存中。完成后, MON_PRGRNGE将控制返回给监控代码。这一编程过程不断重复直到整个闪存都被编程完。编程完毕后,LJ12在一个上电复位后进入用户模式.

 
【相关文章】
·MC68HC908LJ12微控制器中的闪存在电路编程
 
 
IC新闻搜索
 
热点新闻
基于红外超声光电编码器的室内移动小车定位系
基于闪烁存储器的TMS320VC5409DSP并行引导装载方法
非移动市场需求飙升,ARM预计2010年出货量超50亿片
一种快速响应的电容式湿度传感器感湿薄膜设计
利用特殊应用模拟开关改进便携式设计
无线传感器网络跨层通信协议的设计
基于ARM9内核Processor对外部NAND FLASH的控制实现
基于GSM技术的汽车防盗系统的设计
热电阻在烟叶初烤炕房温度控制中的应用
高速数据转换系统对时钟和数据传输的性能要求
友情连接
 关于我们  IC论坛  意见反馈  设置首页  广告服务  用户帮助  联系我们
copyright:(1998-2005) IC72 中国·芯片交易在线
(北京)联系电话:(010)82614113、82614123 传真:(010)82614123 客户服务:service@IC72.com 库存上载:IC72@IC72.com
在线MSN咨询:ic72sale8@hotmail.com 通信地址:北京市西城区西直门内大街2号大厦15层 邮政编码:100013
(深圳)联系方式: 在线MSN咨询:ic72sale6@hotmail.com 在线QQ咨询:191232636 通信地址:深圳市福田区振华路
注 册 号: 1101081318959(1-1)

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9