SPI(串行外设接口)串行总线 同步全双工接口
一根时钟线,2根数据线
SCK
MOSI主输出从输入
MISO主输入从输出
同一时刻只能由一个设备被拉低
_
CS片选线,低电平接通
注意拉低后,用完拉高。
时钟极性(CPOL)
(高电平启动,低电平启动)
时钟相位(CPHA)
(一个周期内两个边沿中哪一个边沿)
Mode0-Mode3
Mode0 Mode1 Mode2 Mode3
CPOL 0 0 1 1
CPHA 0 1 0 1
上升 下降 下降 上升
SPI接受发送共用一个移位器
主设备发送数据的时候,会通过移位器将从设备缓冲区的数据挤回来
NSS管理
软模式(常用)代码里拉低拉高片选线
硬模式硬件上自动选择片选线
SPIFLASH
W25Q128华邦
128M bit = 16M Byte
CHIP --- 65536 page --- 256 Block --- 16Mbyte(擦除单位)
Page --- 256 type
Sector(扇区) --- 16 page 4Kbyte(最小擦除单位)
Half Block(半块) --- 128 page --- 8 sector ---32Kbyte(擦除单位)
Block(块) --- 256 page --- 16 sector ---64Kbyte(擦除单位)
通信:
以指令方式进行交互
SPI --- 1.时钟速度
2.时钟极性和时钟相位 模式0 或是 3 (00 11)
3.有效位
CS ---使用 低电平有效 保证每个操作 都是处于 CS低电平
1.指令 写 使能
2.获取状态寄存器 忙标志位 值
3.页写(地址6个F,用3个字节去存)(判定为非忙 要写使能)
4.扇区擦除(不一定是扇区的首地址,只要是扇区内的地址,低三的4位,共12位清零,变为该扇区的首地址)(判定为非忙 要写使能)
5.读数据(用小括号包住是读回来)(判定为非忙)
6.读ID号(dummy空,等3个时钟周期)