高密度SPI EEPROM——SA25C020的DSP引导
扫描二维码
随时随地手机看文章
关键词 SPI EEPROM boot TMS320VC5509A SA25C020
引 言
DSP的引导是涉及DSP独立工作的关键性问题,通常采用的方法是由Flash等器件引导的,但是相对Flash的占用空间大、扇区擦除的难度和时延来说,SPI EEPROM不失为一个好的选择。传统EEPROM的容量太小,无法充分利用DSP的程序空间。
SA25C020的2Mb SPI EEPROM是以色列的SaifunSemiconductor公司于2005年推出的高密度EEPROM产品,是业界首个结合小型SO8封装、低功耗和高性能特点的器件,专为需要高耐用性和低功耗的应用而设计和测试,针对持续可靠的非挥发性存储方案。它的价位接近闪存(Flash),加上其节省空间的封装形式,使得它成为DSP引导的一个新的选择。TI公司的TMS320VC5509A是一款集成了A/D、USB接口等的便携式DSP。最重要的是它支持24位的SPI EEPROM引导。这两款芯片的结合,易于形成空间小、功耗低的便携式解决方案,有助于新的小型化、低功耗应用的实现,如硬盘、光盘(包括DVD)、机顶盒、打印机、游戏卡以及无线产品。
1 引导系统硬件设计
DSP引导系统硬件配置框图如图1所示。其中TMS320VC5509A有两种封装形式,此处采用PGE3形式。一个可以独立运行的DSP系统必须包括:
◇DSP芯片;
◇电源、时钟以及必要的初始化外围设置;
◇用于引导的非易失性的程序存储器,如本设计中采用的SA25C020;
◇JTAG接口用于外部下载程序。
2 引导关键技术
引导主要步骤如下:
①利用CCStudi02.O建立应用程序,并产生*.out文件;
②建立引导表,生成相关文件;
③将引导表转换为DSP可以加载的数据格式,生成*.dat文件;
④利用CCStudi02.O建立EEPROM烧写程序,将引导表写到EEPROM中。
2.1 引导程序制作
制作一个被加载的工程xf。程序的功能是使DSP的XF脚接的LED闪烁。主要调用程序如下:
编译工程,在工程文件xf/Debug文件夹中生成xf.out文件。
2.2 引导表(boot table)制作
构造引导表的方法有两种:一种是使用hex conversion utmty;另外一种是根据boot table的结构自己在SPIEEPROM烧写程序中进行构造。对于第2种,需要构造者充分掌握引导表的构造(详情请见参考文献[1],第17页)。这里仅说明使用hex converslon utility制作引导表的方法。下面阐述制作引导表所需要的环境和操作。
2.2.1 hex conversion utility数据转换工具
hex conversion utllity是TI公司CCS中本身带有的一个数据转换工具。它有几个版本。对于C54xx使用的hex500.exe,其绝对位置在\ti\c5400\cgtools\bin\hex500.exe;对于C55xx使用的hex55.exe,其位置一般在\ti\c5500\cgtools\bin\hex55.exe。使用hex conversion utility工具还需要以下文件:
①*.out文件,是CCS编译好的要存入EEPROM的DSP可执行文件。这个文件对于bex conversion utility是数据源文件。
②*.cmd文件,用来填写hex conversion utility工具执行时的命令参数的文件。这些命令参数也可以在命令
执行时写在命令的后面,而不采用*.cmd文件。
③输出文件是hex conversion utility生成的文件,可以是多种文件格式,在*.cmd文件的-o参数中设置,如ASCII-Hex、Intel、Motorola-Sl/S2/S3、TI-Tagged、Tektronix等。这里选用输出文件为Intel格式。
2.2.2 制作过程
在2.1节中已经制作好了xf.out文件。下面建立xf.cmd文件,内容如下:
编写好xf.cmd文件后,将hex55.exe、xf.out、xf.cmd放在同一个目录下。进入命令行并且到上述3个文件所在的目录下,执行命令“hex55 xf.cmd”,如图2所示。这样就可得到输出的引导表文件xf.io。
2.3 引导表数据转换
引导表制作成功以后,其数据并不能被DSP直接读写,而需要把它转换成DSP可以读写的格式(即CCS数据文件格式),才能把这些数据烧写到存储器中。这就需要对引导表文件进行数据转换。xf.io的数据格式如下(其中黑体字为有效数据):
CCS数据文件由CCS文件头和数据两部分构成。文件头指明文件类型、数据类型、起始地址和长度等信息,后为数据,每个数据占l行。以下即为CCS数据文件的文件头格式:
采用VC++编写程序DSP_dataconvert进行数据格式转换,将Intel格式的数据转换为DSP可以加载的数据格式。以下为CCS的数据格式,粗体字为有效数据。165ll 4000 114f;1651文件类型,1表示十六进制格式
2.4 SPI EEPROM烧写程序
SPI EEPROM读过程操作一般要先执行WREN命令,打开写使能信号,RDSR读取寄存器状态信号,WRITE写EEPROM。SA25C020的指令结构和读写过程与普通的16位指令结构和读写过程是兼容的,只是在写地址时SA25C020的是24位的。
一般烧写程序中的执行顺序为:WREN→RDSR→WRITF
24位EEPROM具体写程序如下:
3 结 论
本设计方案大大节省了设计空间,降低了功耗,经过实际安装与调试完全可行。说明了基于高密度SPI EEP-ROM的DSP应用系统独立运行的过程。与同类的SPIEEPROM相比,具有容量大的特点;与Flash引导相比,具有读写、擦除简单的特点。硬件电路具有良好的可扩展性。以此电路为基础,可以适用于C5509A的小型化、低功耗和便携式应用的开发。