关键词 Flash存储器 TMS320C32 自动引导 Am29F040
1 Flash存储器Am29F040
Am29F040是AMD公司生产的Flash存储器,主要作用是固化程序和保存历史数据,也就是开机后执行闪存的程序,并在程序执行的过程中实时地保存或修改其内部的数据单元。 下面首先介绍Am29F040的特点和操作。 Am29F040是采用5 V单电源供电的可编程只读存储器,是一种电可擦除与重新编程的器件。该器件由8个独立的64 K字节块组成,访问速度为55~150 ns。片内的状态机控制编程和擦除器件、嵌入式字节编程与区段/芯片擦除功能是全自动的。内部结构框图如图1所示。
A0~A18:地址线。其中A8~A18提供存储区地址, 行地址确定所在扇区;A0~A7选定某扇区的一 个字节,扇区容量是256字节。DQ0-DQ7:数据输入/输出。在读周期输出数据; 在写周期接收数据。写过程中写入的数据被内 部锁存。CE:输入,芯片使能, 低电平时选中该器件。OE:输入,输出使能, 低电平时打开数据输出缓冲 区,允许读操作WE:输入,写使能,低电平时允许写操作。Vcc为5V电源。Vss为地。 工作方式有读方式、待机方式、输出禁止及算法选择。 例如,对于写操作的编程命令,如表1所列。 其中:RA为被读出的存储单元地址; PA为被编程的存储单元地址; RD为所选地址单元被读出的数据; PD为所选地址单元被编程的数据。 除编程地址、区段地址和读地址之外的所有总线周期地址,地址引脚A18、A17、A16、A15为高或低。 下面以命令表的编程命令为例,简要介绍字节编程。表1所列命令是一个4总线周期指令。首先,在地址5555H写入数据0AAH,地址2AAAH写入数据055H,再在地址5555H写入数据AOH,是编程的地址和数据。 对于芯片擦除功能,自动地提供编程和电擦除之前,校验所有存储单元所需的电压和时序,然后自动擦除并校验单元界限。利用数据轮询(data-polling)特性,可以监视自动芯片擦除操作期间器件的状态,以检验操作是否完成。 程序如下:int Chip-Erase (){*(int*)0x00005555=0xAAAAAAAA; /*写芯片擦除命令部分*/*(int*)0x00002AAA=0x55555555;*(int*)0x00005555=0x80808080;*(int)0x00005555=0xAAAAAAAA:*(int*)0x00002AAA=0x55555555;*(int*)0x00005555=0x10101010;while((*(int)0x00005555&0x80808080)!=0x80808080) /*数据轮询*/ 对于区段擦除暂停,在区段擦除期间擦除暂停有效,数据值为BOH,不管地址值。区段擦除恢复,仅在擦除暂停之后擦除有效,数据值为30H,不管地址值。下面是简要的程序代码:int Sector- Erase(sectadd) int * sectadd;{ *(int*)0x00005555=0xAAAAAAAA; /*写区段擦除命令部分*/ *(int*)0x00002AAA=0x55555555; *(int*)0x00005555=0x80808080; *(int*)0x00005555=0xAAAAAAAA; *(int*)0x00002AAA=0x55555555; *sectadd=0x30303030; 对于数据保护,此特性禁止在1-8个区段的任何组合进行编程和擦除操作。执行编程和擦除被保护区段的命令时,不改变区段内的数据。数据轮询位和跳转位工作在2~100μs,然后返回到有效数据。在地址引脚A9和控制引脚E,使用11.5~12.5 V高电压VID’且在控制引脚E上使用VIL将使此特性起作用。其具体操作为:当W为VIH’E为VIL且地址引脚G为VID时,区段保护方式被激活,地址引脚A18、A17、A16用来选择被保护的区段。一旦地址稳定,W处于脉冲低电平,操作开始于W的下降沿。
2 在TMS320C3x中的应用
TMS320C3x支持32位或16位宽度的程序外部存储器。由于Am29F040的数据宽度是8位,而从RAM单元中取出的数据宽度为32位,所以还要采用移位的方法写入Am29F040。 引导表的格式主要由下面几部分组成:首先,是包括引导表数据宽度和其它数据总线寄存器值的头文件。接着,是COFF文件中各个段的数据,其中每个段都包含一个该段的文件头来说明该段的代码长度和地址。是结束段。 这里,采用COFF格式生成引导表比较麻烦。TI公司提供了一个很有用的转换工具HEX30,只须编写一个命令文件,就可使用这个转化工具自动生成引导表。F1ash存储器烧写流程如图2所示。
采用TI公司的TMS320C32的DSP,AMD公司生产的8位Am29F040作为Flash存储器,这里使用了4片Am29F040。编写时必须注意: ①目标字宽度,也就是处理器的操作码长度。选好DSP后,该长度也就确定了。按照我们的例子为32位。 ②数据宽度。由-datawidth 设定,为32位。 ③存储器宽度。由-Memwidth 设定,本例中为32位。 ④ROM宽度。由-romwidth设定,为8位,由Flash存储器确定。 程序如下: C3XCHECK.OUT -MAP 29f040.MAP -i /*输出文件为Intel格式*/ -datawidth 32 -Memwidth 32 -romwidth 8 ROMS{FLASHROM:org=000000h,len=80000h,romwidth=8, /*512K X 8*/files={f040.bo f040.b1 f040.b2 f040.b3}}SECTIONS{ .text :paddr=00000040h .ffttxt :paddr=000008dlh .data :paddr=0000000h .sintab :paddr=000009eeh .paras :paddr=00000a2eh} 命令文件按照上述编写,生成了4个文件,分别为f040.b0、f040.bl、f040.b2及f040.b3,然后可以直接用编程器烧写至4片Am29F040即可。 利用上面的方法已经可以完成工作,但是我们还可以利用TMS320C32的boot loader(上电加载)功能直接调入到存储器中。 D S P芯片复位以后,将自动地运行固化0H~0FFH空间内的引导装载程序,执行引导程序装 载功能。进入引导装载程序以后,DSP将一直等待中断INT0-INT3的中断状态,根据不同的中断,决定是以BOOTl-BOOT3的存储空间装载程序到指定的快速闪存,还是以从串口将程序引导装载到指定的快速闪存。TI公司的引导装载程序是公开的(如果需要,可由其网站得到)。实现引导装载功能时,需要自己设计程序头,其中必须描述: ① 待装载程序的存储器宽度为8位/16位/32位; ②S W W 等待状态发生器的方式; ③装载到快速R A M 的程序大小; ④装载的目的地址。 如果在实际系统中目的地址不止一个,其操作 过程也是一样的。当一个模块装载完毕以后,如果还有一个另外的模块,那么它将继续执行。与上面的方法一样,在程序头加上必要的信息就可以了。 如将引导表作为程序的一个初始化段,在运行程序的时候将该段的内容也直接写到F1ash存储器里面。具体来说,首先编写一段C语言程序,将上面由HEX30生成的文件转化为.dat数据文件 (使得DSP可以识别,DSP不能识别.bO文件)。然后,在编程程序中建一个段,其中包含这个数据文件。,在直接运行程序时,将其中的内容烧写到存储器里面。采用这种方法,比采用EPROM编程器编程速度更快,而且省时省力,需要修改时不用取出 F1ash存储器,可以在线编程修改。
3 结 论
通过实际的电路仿真测试,证明这种设计思想简单、程序语法正确,数据传输效率高,充分利用了TMS320C32编程语言特点。这种方法能够实现F1ash存储器在系统编程和在DSP系统上电后的用户程序的自动引导。同时,由对Flash存储器Am29F040应用的讨论可知,其不仅可以利用编程器编程,而且可以通过TMS320C32在线进行擦除、读写及编程。
[1]. Am29F040 datasheet https://www.dzsc.com/datasheet/Am29F040_306529.html.
[2]. TMS320C32 datasheet https://www.dzsc.com/datasheet/TMS320C32+_1703301.html.
[3]. A17 datasheet https://www.dzsc.com/datasheet/A17_1819429.html.
[4]. A16 datasheet https://www.dzsc.com/datasheet/A16_1819409.html.
[5]. A15 datasheet https://www.dzsc.com/datasheet/A15_1244519.html.
[6]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[7]. dat datasheet https://www.dzsc.com/datasheet/dat_1869419.html.
[8]. EPROM datasheet https://www.dzsc.com/datasheet/EPROM_1128137.html.
[9] Texas Instruments.TMS320C3x User’s Guide.1997 2 Texas Instruments.TMS320C3x/C4x AssemblyLanguage Tools User’s Guide.1998 3 AMD.Am29F040 使用手册.1996-11(收修改稿日期:2002—ll—27)
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。