http://www.waveshare.net/shop/AT45DB161D-price.htm
AT45DB161的AT45DB161D版:
AT45DB161D是一款2.5V或2.7V,串行接口的FLASH存储器,是各种数字语音,图像,程序代码和数据存储应用的理想选择。AT45DB161D支持RapidS串行接口,适用于要求高速操作的应用。RapidS串行接口兼容SPI,最高频率可达66MHz。AT45DB161D的存储容量为17,301,504位,组织形式为4,096页,每页512或528页。
除了主存储器外,AT45DB161D还包含2个512/528字节的SRAM缓冲区。缓冲区允许在对主存储器的页面重新编程时接收数据,也可写入连续的数据串。通过独立的“读-改-写”三步操作,可以轻松实现EEPROM仿真(可设置成位或字节)。DataFlash通过RapidS串行接口顺序访问数据,而不像传统FLASH存储器那样通过复用总线和并行接口随机存取。
简单顺序访问机制极大的减少了有效引脚的数量,有利于硬件布局,增强了系统可靠性,将切换噪音降至最小,并缩小了封装的尺寸。
对于许多要求高容量,低引脚数,低电压和低功耗的商业级或工业级应用来讲,AT45DB161D是最佳的选择。
为了实现简单的在系统重复编程,AT45DB161D并不需要高输入电压来支持编程。AT45DB161D工作在独立的2.5V至3.6V或者2.7V至3.6V电压下,用于编程和读取操作。AT45DB161D可通过片选引脚(/CS)使能,并通过3-wire接口访问,3-wire由串行输入(SI),串行输出(SO),和串行时钟(SCK)组成。
所有的编程和擦除周期都遵循自时序。
AT45DB161的AT45DB161D版:
- 单独2.5V至3.6V或者2.7V至3.6V工作电压
- RapidS串行接口:66 MHz最小时钟频率
— SPI兼容模式 0 和 3 - 用户自定义页面大小
— 512 字节每页
— 528 字节每页
— 页面大小可出厂预设为512字节 - 页编程操作
— 智能编程操作
— 4,096 页(512/528 字节/页)主存储器 - 灵活的擦除选项
— 页擦除(512 Bytes)
— 块擦除(4 Kbytes)
— 扇区擦除(128 Kbytes)
— 片擦除(16 Mbits) - 2个SRAM数据缓冲区(512/528 字节)
— 在对FLASH阵列重新编程时允许接收数据 - 通过整体阵列可连续读取
— 代码映射应用的理想选择 - 低功耗
— 7 mA 典型有效读取电流
— 25 μA典型待机电流
— 9 μA 典型掉电模式电流 - 硬件和软件数据保护特性
— 独立扇区 - 扇区锁定,用于代码安全和数据存储
— 独立扇区 - 安全性:128字节安全寄存器
— 64字节用户可编程空间
— 唯一的64字节设备标识符 - JEDEC标准的制造商和器件ID标识
- 每页编程/擦除周期最小100,000次
- 数据保存-20年 工业级温度范围
- 可选绿色环保(Pb/Halide-free/RoHS 认证)封装
- 驱动程序
驱动程序:
1 #define FLASH_CHREAD 0x0B 2 #define FLASH_CLREAD 0x03 3 #define FLASH_PREAD 0xD2 4 5 #define FLASH_BUFWRITE1 0x84 6 #define FLASH_IDREAD 0x9F 7 #define FLASH_STATUS 0xD7 8 #define PAGE_ERASE 0x81 9 #define PAGE_READ 0xD2 10 #define MM_PAGE_TO_B1_XFER 0x53 // ??????????????????? 11 #define BUFFER_2_WRITE 0x87 // ??????? 12 #define B2_TO_MM_PAGE_PROG_WITH_ERASE 0x86 // ???????????????(????) 13 14 #define Dummy_Byte 0xA5 15 16 17 #define Select_Flash() GPIO_ResetBits(GPIOC, GPIO_Pin_7) 18 19 #define NotSelect_Flash() GPIO_SetBits(GPIOC, GPIO_Pin_7) 20 21 #define SPI_MOSI(C) GPIO_WriteBit(GPIOB,GPIO_Pin_15,(BitAction)C) 22 #define SPI_SCLK(C) GPIO_WriteBit(GPIOB,GPIO_Pin_13,(BitAction)C) 23 #define SPI_MISO GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_14) 24 25 26 void SPI_Flash_Init(void); //SPI³õʼ»¯ 27 u8 SPI_Flash_ReadByte(void); //flash²Ù×÷»ù±¾º¯Êý£¬¶ÁÒ»¸ö×Ö½Ú 28 u8 SPI_Flash_SendByte(u8 byte); // FLASH²Ù×÷»ù±¾º¯Êý£¬·¢ËÍÒ»¸ö×Ö½Ú 29 void FlashWaitBusy(void); //Flash??? 30 void FlashReadID(u8 *ProdustID); //??flashID????