一、SPI通信
1、SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线
2、四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)、MISO(Master Input Slave Output)、SS(Slave Select)
3、同步,全双工
4、支持总线挂载多设备(一主多从)
5、硬件电路
(1)所有SPI设备的SCK、MOSI、MISO分别连在一起
(2)主机另外引出多条SS控制线,分别接到各从机的SS引脚
(3)输出引脚配置为推挽输出,输入引脚配置为浮空或上拉输入
6、移位示意图
7、SPI时序基本单元
(1)起始条件:SS从高电平切换到低电平
(2)终止条件:SS从低电平切换到高电平
(3)交换一个字节(模式0)
CPOL=0:空闲状态时,SCK为低电平
CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据
CPOL表示时钟极性
CPHA表示时钟相位,决定是第一个时钟采样移入还是第二个时钟采样移入
(4)交换一个字节(模式1)
CPOL=0:空闲状态时,SCK为低电平
CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据
(5)交换一个字节(模式2)
CPOL=1:空闲状态时,SCK为高电平
CPHA=0:SCK第一个边沿移入数据,第二个边沿移出数据
(6)交换一个字节(模式3)
CPOL=1:空闲状态时,SCK为高电平
CPHA=1:SCK第一个边沿移出数据,第二个边沿移入数据
8、SPI时序
(1)发送指令
向SS指定的设备,发送指令(0x06)
(2)指定地址写
向SS指定的设备,发送写指令(0x02), 随后在指定地址(Address[23:0])下,写入指定数据(Data)
(3)指定地址读
向SS指定的设备,发送读指令(0x03), 随后在指定地址(Address[23:0])下,读取从机数据(Data)
二、W25Q64简介
1、W25Q64简介
(1)W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器,常应用于数据存储、字库存储、固件程序存储等场景
(2)存储介质:Nor Flash(闪存)
(3)时钟频率:80MHz / 160MHz (Dual SPI) / 320MHz (Quad SPI)
(4)存储容量(24位地址):
W25Q40: 4Mbit / 512KByte
W25Q80: 8Mbit / 1MByte
W25Q16: 16Mbit / 2MByte
W25Q32: 32Mbit / 4MByte
W25Q64: 64Mbit / 8MByte
W25Q128: 128Mbit / 16MByte
W25Q256: 256Mbit / 32MByte