高性能FLASH存储器在DSP电机智能保护中的应用
其中,PD为编程数据,tch为CE持续时间,tcs为CE建立时间,tDS为数据建立时间,tDH为数据维持时间,twp为写脉冲宽度。
1.3 Am29F010B与TMS320C32的硬件接口
Am29F010B与TMS320C32的硬件接口电路原理图如图4所示。图中,Am29F010B的17根地址线A0~A16分别与TMS320C32的A0~A16相连。每片Am29F010B的容量为128k×8B。在本开发系统中,数据采用的是32位浮点数,连接方法是将四片8位数据宽的Am29F010B一起与TMS320C32连接,即将四片Am29F010B的D0~D7依次与TMS320C32的D0~D7、D8~D15、D16~D23及D24~D31连接,总容量为128k×32B。
TMS320C32的外扩存储器的寻址空间范围由三组相互独立的控制信号STRB0、STRB1和IOSTRB来控制,可用于对相互独立的存取空间进行操作而不会出现端口冲突。所不同的是,IOSTRB只能用32位宽的程序或数据存储器进行存操作;STRB0和STRB1由各自的四个控制引脚来实现,可以用8/16/32位宽的存储器存取8/16/32位数据,还可以用16或32位宽的程序存储器进行存取操作,因而比较灵活。
图4的设计中使用的是STRB0,Flash所占的128k×32B存取空间的地址范围为000000H~01FFFFH,外围程序存储器配置为32位,可由PRGW置低电平来实现。此时各片的片选信号CE分别由STRB0-B0、STRB0-B1、STRB0-B2、STRB0-B3控制。上电复位后,外部总线接口控制寄存器STRB0可根据PRGW引脚电平的高低来决定存储器的宽度控制位和数据位数控制位的复位值。
2 Am29F010B的在系统编程技术
2.1 Am29F010B的基本编程操作
对FLASH的基本操作主要有读、字节编程、复位、扇区擦除、片擦除等。Am29F010B闪烁存储器的读操作与普通的存储器操作相同,它不需要特定的时序,在电路上电或内部编程等操作后可自动进入读数据状态。而擦除和写操作相对复杂一些,它不能简单的直接写入,同时,out文件不能load到FLASH中,且CCS和CSource Debugger中的load命令均不能对flash写入,而需要专门的程序才能写入一系列Flash Memory的命令寄存器中,然后调用嵌入式算法的内部程序来完成相应的命令。Am29F010B编程的一般步骤是复位、擦除、字节编程等。
(1)复位操作
复位命令用以取消擦除或写入操作而使存储器复位。复位操作不影响各单元的数据。在编程、擦除或正常操作出现错误时都要使用复位命令。向FLASH存储器的任意一个地址写入0F0H均可使其复位并进入读数据状态。
(2)擦除操作
擦除操作的具体软件命令序列如表1所列。该操作包括按扇区擦除和整片擦除两种方式。二者均为6总线周期操作。使用片擦除操作则可一次清除FLASH芯片内的所有数据。扇区擦除操作则用于清除某一个扇区的所有数据,这在仅需要改动少量数据而不是整片数据时特别方便。
(3)字节编程操作
该操作是一个4总线周期指令,可将任意数据写入Am29F010B独立使用的编程,只能写入8位宽的数据,而本开发系统每次可写入32位宽数据。具体软件命令序列如表1所列。
2.2 Am29F010B的编程注意事项及操作技巧
在对Am29F010B进行编程操作时,三条关键控制检测线OE、CE和WE都必须
《高性能FLASH存储器在DSP电机智能保护中的应用(第2页)》