Density | 16M |
I/O Pins | 8 |
Interface Type | SPI |
Page Size (Bytes) | 528 |
Vcc (V) | 2.5, 2.7 |
Pb-Free Packages | TSOP 28 MLF (VDFN) 8 SOIC (208mil) 8 |
16M bit, 2.7-Volt Only Serial-Interface Flash with two SRAM Data Buffers
The AT45DB161D is a 2.5-volt or 2.7-volt, serial-interface sequential access Flash memory ideally suited for a wide variety of digital voice-, image-, program code- and data-storage applications. The AT45DB161D supports RapidS serial interface for applications requiring very high speed operations. RapidS serial interface is SPI com- patible for frequencies up to 66 MHz. Its 17,301,504 bits of memory are organized as 4,096 pages of 512 bytes or 528 bytes each. In addition to the main memory, the AT45DB161D also contains two SRAM buffers of 512/528 bytes each. The buffers allow the receiving of data while a page in the main Memory is being reprogrammed, as well as writing a continuous data stream. EEPROM emulation (bit or byte alterabil- ity) is easily handled with a self-contained three step read-modify-write operation. Unlike conventional Flash memories that are accessed randomly with multiple
在目前所有的非易失性存储器(PROM、EPROM、EEPROM和Flash)中,唯有Flash存储器几乎拥有现今讲究个性化的用户所需的所有特点,它具有掉电数据不丢失、快速数据存取速度、电可擦除、容量大、在线可编程、价格低廉以及足够多的擦除、容量大、在线可编程、价格低廉以及足够多的擦写次数(一百万次)和较高的可靠性等诸多优点,因而已为新一代嵌入式应用(如数字相机和MP3播放机)的首选存储器。现在FLASH的成本已低于PROM/EPROM,可以肯定,它将很快占邻PROM/EPROM市场,MASK(掩膜)ROM尽管在大指生产时具备一定的价格优势,但其升级不便的弱点将随着今后FLASH成本的进一步降低,而使得MASK ROM的前景并不乐观。爱特梅尔的高速, 低电压的串行Flash存储器系列提供兼容用于串行EEPROM的SPI接口。这就允许最终用户可以把他们的板子上的小容量的串行EEPRO灵活的更新为大容量的串行Flash,而不需要改动电路板的布局。串行Flash的应用非常多,包括个人计算机添加卡、图形卡, 和NIC 卡(网络接口卡) 。串行Flash也被许多卡驱动器制造厂商用来代替标准并行Flash,通过减少ASIC的引脚数以降低整体的成本。爱特梅尔的串行Flash的容量从512 Kbits到4Mbits 。
ATMEL 爱特梅尔串行FLASH 存储器 AT45DB161D 的内部结构如图所示。
ATMEL 爱特梅尔串行FLASH 存储器 AT45DB161D 有2048页(每页264字节)内存(Flash Memory,也叫主存Main Memory)和两具Buffer(每个Buffer为264字节的SRAM)组成。ATMEL 爱特梅尔串行FLASH 存储器 AT45DB16 1D 数据可以直接写入闪存,也可以选写入Buffer,然后再将Buffer的数据整个复制到闪存的某一天,也可以在闪存正处于编程时(页编程时间典型值7ms)将数据写入Buffer。
ATMEL 爱特梅尔串行FLASH 存储器AT45DB161D 操作命令介绍
对AT45DB161D的操作一共有18条命令,表1所列为AT45DB161D的操作命令集。其中:下表为 ATMEL 爱特梅尔串行FLASH 存储器 AT45DB161D 的操作命令集
读主存 | 52H | rrr | PA10~PA0 | BA8~BA0 | 32个× |
读Buffer1 | 54H | ×××× | 11个× | BFA8~BFA0 | 8个× |
读Buffer2 | 56H | ×××× | 11个× | BFA8~BFA0 | 8个× |
主存传送到Buffer1 | 53H | rrrr | PA10~PA0 | 9个× | |
主存传送到Buffer2 | 55H | rrrr | PA10~PA0 | 9个× | |
主存与Buffer1比较 | 60H | rrrr | PA10~PA0 | 9个× | |
主存与Buffer2比较 | 61H | rrrr | PA10~PA0 | 9个× | |
写Buffer1 | 84H | ×××× | 11个× | BFA8~BFA0 | |
写Buffer2 | 87H | ×××× | 11个× | BFA8~BFA0 | |
带擦除的Buffer1传送到存 | 83H | rrrr | PA10~PA0 | 9个× | |
带擦除的Buffer2传送到主存 | 86H | rrrr | PA10~PA0 | 9个× | |
不带擦除的Buffer1传送到主存 | 88H | rrrr | PA10~PA0 | 9个× | |
不带擦除的Buffer2传送到主存 | 89H | rrrr | PA10~PA0 | 9个× | |
Buffer1为缓冲对主存编程 | 82H | rrrr | PA10~PA0 | BA8~BA0 | |
Buffer2为缓冲对主存编程 | 85H | rrrr | PA10~PA0 | BA8~BA0 | |
Buffer1为缓冲自动重编程 | 28H | rrrr | PA10~PA0 | 9个× | |
Buffer2为缓冲自动重编程 | 59H | rrrr | PA10~PA0 | 9个× | |
读状态寄存器 | 57H |
执行命令时,AD45D041 首先通过SPI串口往Flash发送一连串的数据,然后以命令字开头,除了“读状态寄存器”外,后面还要跟上页地址和页内的字节地址发及一些无关位。“读主存”时,首先需要往Flash发送64bit的命令,即:命令字52(8bit)+4个“r”+页地址(11bit)+页内字节的起始地址(9bit)+32个无关位,发送完这64bit(通常是组合成8个字节)命令后,紧跟着从Flash读数据以可以了(即后面的SCK信号使得数据从SO脚移出),每读出一个字节,字节地址自动加1,如遇到该页的末尾,只要有SCK信号,系统再加到该页的开关处读数据。在整个操作过程中,CS脚始终为“0”;当CS脚回到“1”时,将终止此次操作,SO脚恢复到高阻状态。 主存传送到Bufferx是指将2048页主存中的任何一页(由PA10~PA0决定)的内容复制到缓冲区,发送完32bit命令后,当CS脚由“0”为“1”后,数据的复制才真正开始。 主存与Bufferx的比较主要是看主存中的某一页与缓冲区是否一样,当CS脚回到“1”后,比较才开始进行,比较的结果(是否一样)记录在状态寄存器的bit6中。 把带擦除的Bufferx传送到主存就是将缓冲区的内容复制到主存中的某一页,复制前应将缓冲区的内容复制到主存中的某一页,复制前应将主存中的该页数据全部擦掉,所有这些操作只有等到CS脚回到“1”后才能进行。对于不带擦除的Bufferx传送到主存的操作,在命令执行前,指定的主存页必须已被擦除过。 以Bufferx为缓冲为主存编程就是将“写Bufferx”与“带擦除的Bufferx传送到主存”进行组合。在发送完命令后,写入Flash的数据将被写入到缓冲区内,如果遇到缓冲区末尾,要继续写入的数据又从缓冲区开头写入,直到CS脚由“0”到“1”后,主存中被指定的页的数据被擦除后再将缓冲区的数据整个复制到主存的指定页中。
模式0的“读主存”时序图 4、 ATMEL 爱特梅尔串行FLASH 存储器 AT45DB161D 状态寄存器及操作完成指示
一般向Flash发送57H后以可读出状态寄存器(移出时,高位在前),状态寄存器的位定义如表2所列。其中Bit7为“0”表示器件忙,为“1”表示可以接收新的命令;Bit6是比较结果位,为“0”表示主存与缓冲区的数据一样,为“1”时表示最少有一个bit不同;Bit5~Bit3为该系列器件的容量指示位,一共种8种容量,对于AT45DB161D来说,该区域为“011”;Bit2~Bit0未使用。一共蛾6种操作会使器件处于“忙”状态,这6种操作是:
对于12位的数据采集系统,使用AD公司的Flash集成MCU芯片AduC812可使电路设计更加简单快捷。由于AduC812有一个与I2C兼容的SPI接口,所以与AT45系列的Flash接口只需将相应的管脚相连即可,只不过要将AduC812设为主机,而ATMEL 爱特梅尔串行FLASH 存储器AT45DB161D自然以是从机了。在AduC812中有SPI控制寄存器(SPICON)与SPI数据寄存器(SPIDAT),数据寄存器的使用如同使用RS232的Buffer一样简单,控制寄存器的位定义如表3所列。
AT45系列的Flash支持SPI模式0和3,并且在每个CS信号的下降沿,可通过采样时钟信号的状态自动选择操模式。由于在上电或复位时器件将自动进入缺省的模式3,所以使用械比较可靠。在AduC812的应用中,选择模式0和3对“写”Flash没有差别,但在“读”Flash时,选择模式0会使从Flash读出的数据总缺少一个bit,这可能是模式0中数据有效的时间比较靠后的缘故.上图分别是模式0和模式3的“读主存”时序图,由时序图可以看出:模式0中数据的有效时间明显比模式3的有效时间靠后半个时钟周期。 下表为 ATMEL 爱特梅尔串行FLASH 存储器 AT45DB161D 状态寄存器的位定义
Bit7 |
Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
RDY/BUSY | COMP | 0 | 1 | 1 | × | × | × |
下表为 ATMEL 爱特梅尔串行FLASH 存储器 AT45DB161D SPI控制寄存器的位定义
Bit7 |
Bit6 | Bit5 | Bit4 | Bit3 | Bit2 | Bit1 | Bit0 |
ISPI | WOOL | SPE | SPIM | CPOL | CPHA | SPR1 | SPR0 |
6、AT45DB161D Pin Configurations管脚定义:
Ordering Code | Package | Lead Finish | Operating Voltage | fSCK (MHz) | Operation Range |
AT45DB161D-MU AT45DB161D-MU-SL954 AT45DB161D-MU-SL955 |
8M1-A | Matte Sn | 2.7V to 3.6V | 66 | Industrial (-40°C to 85°C) 2.7V to 3.6V |
AT45DB161D-SU AT45DB161D-SU-SL954 AT45DB161D-SU-SL955 |
8S2 | ||||
AT45DB161D-TU | 28T | ||||
AT45DB161D-MU-2.5 | 8M1-A | Matte Sn | 2.5V to 3.6V | 50 | |
AT45DB161D-SU-2.5 | 8S2 | ||||
AT45DB161D-TU-2.5 | 28T |