如何理解Stand SPI Dual SPI 和Quad SPI

如何理解Stand SPI Dual SPI 和Quad SPI

1.首先看一下接口

Standard SPI: CLK, /CS, DI, DO, /WP, /Hold
这是全双工模式,输入和输出可以同时进行(mosi, miso分别对应的是DI和DO)

Dual SPI: CLK, /CS, IO0, IO1, /WP, /Hold
这是半双工模式,mosi和miso对应的是IO0和IO1,这样单次SPI的传输就可以传输2个Bit

Quad SPI: CLK, /CS, IO0, IO1, IO2, IO3
同样是半双工模式,Quad SPI增加了2个IO口(WP , HOLD),增加的目的是将SPI的单次传输数据量加大到4个Bit

2.接口说明

2.1 标准的SPI接口

CLK(Serial Clock):时钟线

/CS(Chip Select):片选接口

DI(Serial Data Input):数据输入端口

DO(Serial Data Output):输出输出端口

3.inst_nbits, addr_nbits, data_nbits这三个参数的说明
如何理解Stand SPI Dual SPI 和Quad SPI
inst_nbits: 指的是发送命令字段,单次SPI传送的BIT数
addr_nbits: 指的是发送地址字段,单次SPI传送的BIT数
data_nbits:指的是发送数据字段,单次SPI传送的BIT数

如果地址字段和命令字段对于单次SPI传送的BIT数是不一致的,那么命令和地址的SPI需要分次传输,也就是拆成2个spi_transfer,再加上Data字段,总共会有3个spi_transfer。

如果地址字段和命令字段对于单次SPI传送的BIT数是一致的,那么命令和地址直接在一个spi_transfer中传输,再加上Data字段,总共会有2个spi_transfer。

BTW,一般SPI的NOR Flash在命令,地址,数据的单次数据的传输量都是一致的。