打造国内最大的IC交易平台
技术资料 行业资讯 PDF资料 IC价格 IC替换 缩略语 IC供应 IC采购
AT29LV256在DSP并行引导装载模式中的应用
类别:单片机/DSP  
 
摘要:介绍了ATMEL公司低电压AT29LV系列存储器的结构、特点及性能。同时结合TI公司DSP芯片TMS320VC5402的并行装载方式,给出了AT29LV256在实际应用中的硬件原理图和在线编程注意事项。最后以亮灯程序为例,给出了AT29LV256在线编程的关键程序。

关键词:数字信号处理器(DSPs) ;闪存;并行引导装载;在线编程;AT29LV256

Flash存储器是一种高密度、非易失的电可擦写存储器。它具有功耗低、容量大、速度快等特点,而且单位存储比特的价格比传统的EPROM要低,因而大量应用于数字信号处理系统中。Flash 可分为并行Flash和串行Flash。串行Flash与外围芯片连接简单,可节约印制板空间,但存储量相对较小且成本高。同时串行通信速度较慢,编程也比较复杂。并行Flash芯片则具有存储量大、速度快、使用方便等优点。ATMEL公司生产的AT29LV系列低电压存储器就是一种并行、高性能、可支持3V在线编程的Flash存储器。对Flash编程除了可以采用专用的硬件编程器把程序代码烧写到Flash中外,还可利用DSP的开发系统通过软件编程来实现同样的功能。

TMS320VC5402(以下简称C5402)是美国德州仪器公司(TI)推出的一款性价比极高的定点数字信号处理器(DSP)。该芯片内置4k×16bit片内屏蔽式ROM(F000-FFFF),且在4kB ROM资源里包含了Bootloader程序。C5402的Bootloader在系统加电时会把外部源程序传送到内部存储器或内部程序空间。它允许程序放在外部较慢的存储器或微处理器中,并将其调到高速的DRAM存储器中运行,从而大大减小了对C5402内部掩膜的需要,降低了电路的设计成本。

本文在笔者实际使用经验的基础上,详细介绍了AT29LV256在C5402并行引导装载模式下的软件编程技术,给出了并行装载的数据流和系统的硬件设计,最后以亮灯程序为例给出了对AT29LV256编程时的具体步骤及方法。

  1 AT29LV256编程技术

AT29LV256是ATMEL公司生产的容量为32k×8bit、可支持3V在系统编程的Flash存储器。AT29LV256将存储空间分成512个独立的扇区,每个扇区有64个字节,其中A6~A14用来选择扇区地址,A0~A5选择字节地址。每个扇区的编程操作最长需要20ms,而其读操作与一般的SRAM相同,时间为70ns 。AT29LV256在编程之前,片内对应扇区会自动擦除,因而不需要额外的擦除命令。同时芯片还提供了六个软件控制字以用于完成对整片的擦除,其整片擦除命令见表1所列。

表1 AT29LV256全片擦除命令

次 序

1st

2nd

3rd

4th

5th

6th

地 址

5555H

2AAAH

5555H

5555H

2AAAH

5555H

命令字

5555h

AAh

2AAAh

55h

5555h

90h

AT29LV256的编程操作是以扇区为单位进行的。它内部有64字节的数据缓冲器。如果写入缓冲器的字节数不足64字节,则编程时自动将未写入的字节擦除为FFH。一旦某一扇区中的字节被装入,这些字节将同时在内部编程时间进行编程,此时若有数据装入,则会产生不确定的数据。每一个新装载的数据若要被编程,必须有WE由高到低的跳变,这一跳变需要在150μs内完成,如果超过150μs,器件会自动进入扇区内部编程方式。为了防止意外的编程操作,AT29LV256提供有软件保护编程功能,在对Flash 的每个扇区进行编程时,必须先将3个命令字正确地写入到对应的地址单元,然后才能向片内编写程序。在对每一个扇区编程之前,都要执行相同的三字节指令序列,采用软件保护编程的具体流程如图1所示。

通过AT29LV256提供的软硬件操作可识别芯片的系列号和型号。当按图2顺序写入控制字后,即可读到产品识别码1F和器件识别码BC。器件识别完成后,若需开始编写程序,则应退出器件识别,并延时20ms,为了减小编程的等待时间,AT29LV256提价有下列两种检测编程周期是否结束的方式:

(1) 循环检测方式。该方式首先读出写入本扇区最后一个单元的内容,若其I/O7位是写入该单元真实值的反码,则表明编程周期没有结束;若为实际值,则表明编程结束。

(2) 检测I/O6方式。该方式在扇区编程期间将连续读出任意单元地址的内容,若I/O6在连续读出时状态不一样,说明编程没有结束,若相同,则表明编程周期已经结束。

  2 C5402的自引导装载模式

C5402上电后,通常首先检查MP/MC引脚的状态:如果为高电平,说明DSP处于微处理器工作模式,此时便可从外部程序存储器0FF80h地址处开始执行用户程序;若为低电平,说明DSP被设置为微计算机模式,此时则从片内ROM的0FF80h地址开始执行程序。另外,在C5402的0FF80h地址处存放着一条跳转至0F800h处执行DSP自行引导装载(Bootloader)程序的指令。

当C5402执行Bootloader程序时,将会按HPI引导装载模式→串行EEPROM引导装载模式→并行引导装载模式→标准串行口引导装载模式→I/O口引导装载模式的顺序循环检测,以决定执行哪种启动模式。

C5402的并行引导装载模式是将程序代码数据从外界EEPROM或Flash的相应DSP数据寻址区中加载到片内DARAM或系统的扩展存储器SRAM内。由于C5402的数据区寻址范围最大为64k 字 ,因此在不自行编写Bootloader程序的情况下,并行引导装载模式最大只能装载32k字的程序或数据。当程序数据大于32k时可将自己编写的并行装载内核程序通过片内装载程序传送到片内DRAM中,然后再运行转载内核程序以将大于32k字的程序数据送到片外SRAM中。

若采用并行装载模式对程序进行加载,则应根据并行装载的格式来配置Flash的程序数据存储空间。可先在DSP对应的数据空间FFFEH和FFFFH地址内写入要存放程序的地址,然后根据并行装载的数据流将标识控制字、各个寄存器的初始化值、装载后的起始运行地址、程序段的大小和装载地址依次写入Flash的存放程序地址中,最后再写入所编写的程序,表2所列是Flash中的并行引导源程序数据流。其程序段的大小以及起始运行地址可根据系统仿真时生成的.MAP文件来确定。

表2 Flash中的并行引导源程序数据流