外部FLASH AT45DB642D的读写说明及AT91SAM7X256下C实现
AT45DB642是一种单2.7V供电,具有两种接口方式:一种为SI/SO方式,一种为I/O0-I/O7方式。这种两接口方式可使得它同时接在一个DSP和一个微控制器上。可用于数字声音、图像、程序代码及数据存储。

AT45DB642使用串行或并行方式顺序访问数据,支持SPI方式0和SPI方式3.通过片选引脚(CS)激活,通过串行输入(SI)、串行输出(SO)、串行时钟(SCK)连接。或通过并行输入、输出(I/O0-I/07)和时钟(clk)连接。SCK和CLK共用一个引脚,且向存储器提供相同时钟。

AT45DB642的存储阵列划分为三个等级:扇区、块和页。所有的编程操作基础是页-页过程。而对于擦除操作可使用块和页两种方式。

芯片操作!!
AT45DB642通过接收主控制器发来的指令来完成相应的操作。两种交互的指令是以操作码的形式实现。如读命令如下:
一个有效指令必须以CS片选信号的下降沿开始,后面伴随的是8位的指令码及要使用的BUFFER(缓存)或主存储器位置信息。CS引脚拉低后,伴随着SCK/CLK引脚时钟信号,通过SI引脚(串行方式)或I/O0-I/O7(并行方式)输入指令码及要使用的地址信息。注:所有指令、地址及数据都是先传送最高有效位方式完成传递。
连续读!
通过提供主存储器中首个要读取数据的地址信息,连续读命令即可根据时钟信号读出连续的数据流。之所以不需要额外的命令或地址信息,是因为AT45DB642内部集成了一个地址计数器,它在每一个时钟周期过后自动增加。若执行一个连续读操作,则需要在0x68h或e8h操作码后紧跟着输入的三个地址字节(包括24位的页地址和字节地址)及串行无关字节(串行无关为4个字节或并行无关60个字节)。伴随着无关位的正确输入,串行的SO或并行IO口会输出连续数据流。
FLASH整体擦除
可通过执行芯片擦除指令来完成整个FLASH区域的擦除。时序图如下:
因为是整体存储区域擦除,因此不需要地址或数据信息。
AT91SAM7X256下C程序实现:
(文章原创,转载请声明)