1 Memory array
AT26DF081A 的内存阵列支持全片擦写在内的四种擦除操作粒度,这为 FLASH 操作提供了极大的灵活性。内存阵列被分为尺寸不同的物理扇区。物理扇区的尺寸是为代码和数据存储应用而优化的。允许代码和数据分别驻留在单独的区域。
2 设备操作
通常情况下, AT26DF081A 为从设备,由主设备(称为 SPI Master )发出一整套指令来控制。 Spi Master 通过 SPI 总线的四条信号线来与 AT26DF081A 通信:片选 CS ,串行时钟 SCK ,串行输入 SI ,输行输出 SO 。
SPI 协议定义了四种操作模式( 0 , 1 , 2 和 3 ),每种模式都有不同的 SCK 极性和相位,每种 SCK 极性与相位如何控制 SPI 总线的数据流都有详细定义。
AT26DF081A 支持其中最为常见的模式, SPI 模式 0 和模式 3 ,数据总是在 SCK 下降沿时得到和 SCK 上升沿时输出。
3 命令和地址
一个有效的指令或操作必须开始于 CS 引脚的拉低。 CS 引脚被拉低后, SPI Master 就会在 SPI 总线上输出含 8 位操作码的时钟信号。紧接着操作码,相关的依赖信息(如地址和数据字节)时钟信号也将在 SPI 总线上输出。
所有的操作码、地址和数据字节,必须以 MSB (最高位)开始传输。
CS 引脚的拉低,标志着一个操作的结束,
不能为 AT26DF081A 所识别的操作码将被忽略,也不会产生任何动作。 AT26DF081A 也会继续忽略后续的 SI 引脚上发来的数据,只到下一个操作到来( CS 引脚拉高后再次拉低)。另外,在完整的操作码与地址信息被发送到 AT26DF081A 之前,如果 CS 引脚被拉高, AT26DF081A 无操作,只是简单的返回 IDLE 状态等待下一次操作到来。
AT26DF081A 地址信息长度为 3 字节,表现在从 A23 到 A0 。当然,因为 AT26DF081A 存储空间最大为( 0xFFFFF ) , 地址位中的 A23 ~ A20 这四个地址位总是被 AT26DF081A 忽略。
4.1 读命令
4.1 阵列读
Read Array 命令可以实现这样一个功能,一旦指明开始地址,仅需简单的提供 SCK 信号,就可以顺序的读取 AT26DF081A 一个连续区域的数据。 AT26DF081A 本身有一个内部地址计数器,在每个时钟周期后自增。
0B 和 03 都可以用来进行读操作,所不同的是,前者支持更高的 SCK 频率。 0B 读可支持最高 70MHz 频率, 03 则支持的最高频率为 33MHz 。
为了执行一次读操作,
( 1 ) CS 引脚置低
( 2 )发送相关操作码( 0B 或 03 )
( 3 )发送三个地址字节(地址一定不能超过 AT26DF081A 的范围)
( 4 )如果是 0B 模式,则在三个地址字节后,还要加发一个无关字节
( 5 )接下来的时钟循环,会把串行数据通过 SO 引脚送出去。总是先发 MSB 。
当最大地址 0x0FFFFF 的值被读出之后, AT26DF081A 将返回起始地址 0x00000 处开始读。这个过程不会无延迟。
( 6 )接高 CS ,读操作将立即终止。 CS 可以在任意时间拉高,不需要读完一个完整的字节。