TMS320DM642片内不带Flash或EEPROM,系统掉电后,TMS320DM642存储器中的数据和程序将全部丢失,因此,TMS320DM642外部通常需要扩展Flash存储器,用于存储程序和重要的数据。Flash存储器也是通过TMS320DM642的EMIFA进行扩展,并由DSP或FPGA器件产生Flash芯片所需要的控制逻辑。
1.硬件电路设计
Flash(闪速存储器)是近些年发展起来的新型非易失性存储器,它具有掉电数据不丢失、快速数据存取、电可擦除、容量大、在线可编程序、价格低廉,以及足够多的擦写次数和较高的可靠性等诸多优点。本节以AMD公司的AM29LV160B为例介绍Flash扩展。
AM29LV160B芯片具有以下特点:
1)可以配置成2M×8bit或1M×16bit存储方式。
2)电源电压3.3V,存储速度快,最快可达70ns。
3)低功耗,擦写次数最少可达一百万次,数据可保存20年。
4)灵活的扇区工艺,支持全部擦除功能,支持扇区保护功能。
AM29LV160B与TMS320DM642的接口电路如图3-15所示。

图3-15 AM29LV160B与TMS320DM642的接口电路
由于TMS320DM642只支持8bit的ROM加载,所以必须把BYTE#接地,使AM29LV160B配置成2M×8bit模式,DQ15是该模式下的最低地址。同时,把RY/BY#接入一个指示灯,以显示AM29LV160B的擦除或烧写。
系统上电复位后,TMS320DM642的EDMA控制器从EMIF的CE1空间复制1KB的程序,放到零地址的内部存储器中;当EDMA传输完成后,CPU退出复位状态,开始执行零地址处的指令。
2.Flash擦除与读取程序
Flash的使用必须遵循规定的操作流程,写Flash之前要进行擦除操作。擦除分为两种模式,即芯片擦除和扇区擦除。对于8bitAM29LV160B的芯片擦除,需要按照如下步骤进行:
1)向0xAAA地址中写入数据0xAA。(https://www.xing528.com)
2)向0x555地址中写入数据0x55。
3)向0xAAA地址中写入数据0x80。
4)向0xAAA地址中写入数据0xAA。
5)向0x555地址中写入数据0x55。
6)向0xAAA地址中写入数据0x10。
【例3-2】 TMS320DM642扩展Flash电路原理图如图3-15所示,编写对Flash芯片进行芯片擦除的程序。
设计分析
按照芯片Datasheet的说明,分6步向相应的地址中写入对应的数据,即可完成芯片擦除的工作。程序代码

【例3-3】 TMS320DM642扩展Flash电路原理图如图3-15所示,编写程序将Flash芯片中的一段长度为length的数据从源数据区中读出。
设计分析
读Flash不需要写关键字,仅需要注意源地址、目标地址和数据长度的定义。
程序代码
定义读Flash的函数READ_flash(),程序如下:

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
