1 双通道SPI和混合内存模式下支持的常用命令
对于配置中Mode设置为Dual且Slave Device设置为Mixed的情况,IP核支持表3-1中列出的命令。这些命令在Winbond、Micron和Spansion内存设备上具有相同的命令、地址和数据行为。
某些命令,如fast read、dual I/O fast read和dual output fast read,在混合模式下不被IP核支持。这是因为Winbond、Micron和Spansion设备在dummy bytes或dummy cycles的数量上存在差异。Dummy bytes或cycles是用于等待内存设备准备数据的时间,而不同的设备可能需要不同的时间。
此外,在混合模式下,Micron设备的易失性配置寄存器不是支持,因为Winbond设备中不存在此命令。
2 四通道SPI和混合内存模式下支持的常用命令
在配置中将Mode设置为Quad(四通道模式)并将Slave Device设置为Mixed时,IP核支持表3-2中列出的命令。这些命令在Winbond、Micron和Spansion内存设备上的命令、地址和数据行为都是相同的。
在Quad和Mixed模式下,不支持的命令包括fast read、dual output fast read、quad output fast read、dual I/O fast read和quad I/O fast read。这是因为Winbond和Micron设备在dummy bytes或dummy cycles的数量上存在差异,而IP核在混合模式下无法确保这些命令在所有设备上的正确执行。
此外,在混合模式下,Micron设备的volatile配置寄存器也不被支持,因为Winbond设备中没有这个命令。这意味着在混合模式下,IP核无法直接访问或修改Micron设备的volatile配置寄存器。
3 XIP 模式下的命令
在XIP模式下,IP核支持三种读取命令,这些命令根据使用的数据传输模式而有所不同:
- 标准模式(Standard mode):
fast read
(0x0Bh) - 双路模式(Dual mode):
fast read dual I/O
(0xBBh) - 四路模式(Quad mode):
fast read quad I/O
(0xEBh)
XIP模式允许直接从SPI Flash内存中执行代码,而无需将其加载到RAM中。
在Dual/Quad SPI模式下,Winbond、Micron、Spansion和Macronix等品牌的存储器设备可能有一些不支持的命令。
Winbond存储器 (Ex: W25Q64VSFIG)
AXI Quad SPI IP核仅支持24位寻址模式,并且存在一些不支持的命令。
- Fast read dual I/O continuous read mode(双通道I/O连续读取模式):允许数据通过两个I/O引脚连续地并行传输,从而增加数据传输速率。然而,该IP核不支持这种读取模式。
- Fast read quad I/O continuous read mode(四通道I/O连续读取模式):与双路I/O连续读取模式类似,四路I/O连续读取模式通过四个I/O引脚并行传输数据,以进一步提高数据传输速率。但该IP核同样不支持这种读取模式。
- Command ABh(释放Flash从掉电或高性能模式):ABh命令通常用于从特定的低功耗或高性能模式中唤醒Flash设备,不应用于读取设备ID。这意味着如果您尝试使用ABh命令来读取设备ID,它可能不会产生预期的结果。FFh命令通常用于重置SPI Flash设备的模式位,这在切换至Dual/Quad模式时特别有用。然而,由于该IP核仅支持24位寻址模式,并且可能不直接支持Dual/Quad模式,因此FFh命令也不被支持。
某些命令的异常行为:
释放掉电/高性能模式(ABh)
命令:用于从低功耗模式或高性能模式中释放SPI Flash存储器。这个命令在某些情况下也可以用于读取设备ID,但这需要配合不同的dummy字节组合。
ABh
命令只支持用于释放低功耗模式或高性能模式的情况,而且在这个模式中,只需要在DTR中放置一个命令字节。也就是说,这个IP核不支持ABh
命令用于读取设备ID的模式,因为它已经有另一个专门的命令90h
来读取设备ID。
Micron 存储器 (Ex: N25Q256)
AXI Quad SPI IP核支持24位和32位寻址模式,但有一些特定的命令是不支持的。
(1)XIP模式或连续读取模式:在传统或增强模式下,所有存储器都不支持XIP模式或连续读取模式。
(2)Dual和Quad模式:虽然扩展SPI模式支持双通道和四通道模式下的所有命令,但Dual In Out (DIO)和Quad In Out (QIO)模式是不支持的。以下这些命令该IP核也不支持:
96h
:读取通用目的读取寄存器。9Bh
:接口激活命令。E7h
:四通道IO字读取命令。E1h
:四字节写入易失性锁定位命令
(3)Quad模式下:
在四路模式下,设计仅支持具有HOLD功能的Micron存储器部件。具有RESET功能的部件在设计中是不支持的。
Spansion存储器 (Ex: S70FL01GS)
AXI Quad SPI IP核在支持24位和32位寻址模式的同时,也存在一些不支持的命令。
- 不支持所有双倍数据速率(DDR)命令:无论在哪种模式下,都不支持所有与双倍数据速率(DDR)相关的命令。
- Spansion Flash的32位寻址模式:虽然Spansion Flash支持在ExtAddr位设置为1的情况下使用24位地址命令来实现32位寻址模式,但这个特性并不被AXI Quad SPI IP核所支持。
- Spansion Flash的自动引导(Autoboot)命令:在任何模式下,AXI Quad SPI IP核都不支持Spansion Flash的自动引导命令。
Macronix存储器(Ex: MX66U1G45G)
AXI Quad SPI IP核支持24位和32位寻址模式,但在某些命令上存在限制。
虽然在扩展SPI模式下支持所有双路或四路模式下的命令,但双路输入输出(DIO)和四路输入输出(QIO)模式本身是不被支持的。这意味着即使扩展SPI模式支持某些在双路或四路模式下使用的命令,但IP核并不支持以DIO或QIO模式来执行这些命令。