SPI(串行外设接口)串行总线 同步全双工接口
一根时钟线,2根数据线
SCK:
I^2C时钟用于起始和结束
时钟极性(CPOL) 0低电平启动 1高电平启动
时钟相位(CPHA)(每周期两个边沿确认是第一个还是第二个边沿)
0为第一个边沿 1为第二个边沿
CS片选线,低电平接通
注意拉低后,用完拉高。
SPI接受与发送使用同一移位寄存器做缓冲区
主设备控制从设备的控制结构
主设备发送数据的时候,会通过移位器将从设备缓冲区的数据挤回来
主设备发送从设备从设备返回信号主设备可以不进行接收,主设备发射信号覆盖之前的数据
MOSI主输出 从输入 MISO主输入 从输出
同一时刻只能由一个设备被拉低
Mode 0 1 2 3
Cpol 0低电平 0 低电平 1 高电平 1 高电平
Cpoh 0第一边沿上升沿 1 第2下降沿 0 第3沿上升 1 第4上升
TI:半双工模式 IIS:音频 NNS:管理方式,分为软/硬管理模式 一般用软管理模式
软模式(常用)代码里拉低拉高片选线
硬模式硬件上自动选择片选线
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个时钟周期)