文档介绍:SPI接口的FLASH ROM AT45DB161D的驱动方法
(1)芯片介绍
AT45DB161D是串行接口的闪存芯片,~,可广泛应用于数据语音、图像、程序代码数据存储中。AT45DB161D支持RapidS串行接口,适用于高速场合。RapidS串行接口是与SPI相兼容的,速度可达到66MHz。它包含有17,301,504个位,被组织为4096个页,每个页512或528个字节。除了主存储器,AT45DB161D还包括两个SRAM数据缓冲区,每个缓冲区512/528个字节。在主存储器正在编程时,缓冲区是允许接收数据的,并且支持数据流式写入。与并行FLASH储存器不同,它采用RapidS串行接口,从而大大减少了可用引脚数量,同时也提高了系统可靠性,降低了开关噪声,缩小了封装体积。可以应用于商业、工业等需要高密度、低引脚数、低电压与低功耗的应用场合。
AT45DB161D允许简单的在系统重新编程,而无需输入高编程电压。~~,进行编程与读取操作。它可以通过#CS来进行使能,并通过三线接口(SI、SO、SCK)进行数据通信。
(2)引脚配置与封装
符号
名称与功能
有效电平
类型
#CS
片选:#CS用以选中芯片。当#CS被设置为无效状态时,芯片则不被选中,并且处于闲置状态(不是深度睡眠状态),输出引脚SO处于高阻态。当芯片未被选中时,从输入引脚SI输入的数据将不被接受。
#CS引脚上的下降沿将会启动一个操作,而上跳沿则会结束一个操作。在一个内部操作如芯片内部的编程或擦除周期内,芯片不会进入闲置状态,直到操作完毕。
LOW
输入
SCK
串行时钟:此引脚用来向芯片提供时钟信号,有来控制数据流的出入。SI引脚上的命令、地址与输入数据在时钟SCK的上升沿被写入,而SO引脚上的输出数据则在时钟的下降沿变化。
-
输入
SI
串行输入:SI引脚用来向芯片以移位方式写入数据。SI引脚上的所有数据输入包括命令与地址。SI上的数据在时钟的上升沿写入芯片。
-
输入
SO
串行输出:SO引脚用来从芯片以移位方式输出数据。SI上的数据在时钟的下降沿变化。
-
输出
#WP
写保护:当#WP被设置为有效时芯片的扇区将被保护起来,以防止编程与擦除对数据的破坏。但是扇区保护使能与扇区死锁命令仍然可以被芯片识别。#WP引脚在内部被拉高,可以悬空。。
LOW
输入
#RESET
复位:#RESET引脚上的低电平会终止正在处理的操作并复位内部状态机到闲置状态。#RESET引脚上的低电平会使芯片一直处于复位状态。当#RESET上转为高电平后,才能进行正常的操作。
芯片内部设置上电复位电路。当此引脚不用时,外部接到高电平。
LOW
输入
RDY/#BUSY
就绪/忙碌状态指示:此引脚是漏极开路的输出引脚。当芯片处于忙状态时(内部操作过程中)此引脚为低电平,此引脚在正常状态下为高电平(外部接上拉电阻)。当正在进行编程/擦除操作,比较操作与页-缓冲区传送时,被拉低。
忙状态指示FLASH储存阵列与某一个缓冲区不能被操作,而对另一个缓冲区的读与写操作仍然可以进行。
-
输出
VCC
芯片电源供给
-
电源
GND
地:此引脚应与系统地接在一起。
-
地
(3)AT45DB161D的功能框图:
(4)存储器阵列:
AT45DB161D的储存器阵列被分为3个级别的粒度,分别为扇区、块与页。下面的“存储器结构图”对各个级别进行了分析,详细说明了每个扇区与块的页数。所有的编程操作都是针对于页的。擦除操作可以作用于芯片、扇区、块或页。
扇区结构:
(扇区 0A)=8页 4096 /4224 字节
(扇区 0B)=248页 126,976/130,944字节
(扇区 1 )=256页 131,072/135,168字节
(扇区 2 )=256页 131,072/135,168字节
……
(扇区 14)=256页 131,072/135,168字节
(扇区 15)=256页 131,072/135,168字节
块结构:
块0
扇区0
块1
扇区1
块2
……
块30
块31
块32
块33
……
扇区2
块62
块63
块64
块65
……
块510
块511
页结构:
页0
块0
页1
……
页6
页7
页8
块1
页9
……
页14
页15
页16
……
页17
页18
……
页4093
页4094
页4095
(5)芯片操作:
芯片的操作是通过单片机的指令来完