目录
1. SPI物理层
先看一下一些SPI接口的外设器件(GD5F1GQ4UAYIG)
SPI接口
管脚定义
SPI通信物理模型
SPI是一种主从物理结构的通信协议,允许1主机多从机,通SS片选信号激活以及选中需要通信的从机。
SPI总线:
SCLK:时钟信号线,用来同步主从机通信的时钟,只能有主机发送,从机接收。
SS:片选信号线,只有片选上的从机才接收总线上的数据,又称CS#,低电平有效。
MOSI:数据线主机发送数据,从机接收数据。
MISO:数据线从机发送数据,主机接收数据。
WP#:写保护,低电平有效。从机接收到此信号,将不接收后来的program,也可以当数据线使用。
HOLD#:挂起,低电平有效从机接收到此信号,将不接收后来的命令。也可以当数据线使用。
2. SPI协议
四种模式
POL(polarity):极性,也称CPOL(clock polarity);定义clock信号的空闲状态;0表示低电平为空闲,1表示高电平为空闲。
PHA(phase):相位,也称CPHA(clock phase);定义发送数据以及接收数据的边沿(跳变沿);0表示在第一个边沿接收数据,1表示在第二个边沿接收数据。
第一边沿:
若极性为0,则第一边沿就是从低电平到高电平变化的边沿就叫第一边沿。
若极性为1,则第一边沿就是从高电平到低电平变化的边沿就叫第一边沿。
第二边沿:
若极性为0,则第二边沿就是从高电平到低电平变化的边沿就叫第二边沿。
若极性为1,则第二边沿就是从低电平到高电平变化的边沿就叫第二边沿。
如下图:
主从设备需要配置在同一种模式下方可正常通信。
3. SPI NAND FLASH
3.1 读
- 先将数据从flash存储cell中读取数据到到spi nand 的cache中
命令:13H
时序:
从时序中可以看到在13H+Adress后,host端需要发送OFH+Address,该Address通常是反映flash数据从cell到cache的状态的地址。
2. 再从cache中把数据传输到请求(host)端
此时有 三种不同的数据传输方式:
1单线传输(03H/0BH)数据;
2线传输(3BH)数据;
4线传输(6BH)数据。
3.2 写
写分三步:
1. 发送write en(06H)到device
2. 把数据从host传到device的cache ,此时有两种传输方式:1线(02H)和4线(32H)
3. 在把cache中的数据刷到存储cell中(命令10H+Address执行刷cache数据到cell中)
3.3 擦除
擦除操作分三步:
- 先发WRITE ENABLE COMMAND(06H)到device
- 再发D8H+Address擦除命令擦除对应的block
- 最后通过OFH获取擦除的状态,判断是否擦除成功
待续.....