前言
未完待续……
SPI接口与应用简述
SPI,一种同步串行通信接口,常用于短距离通信,如微控制器与外围设备之间的数据通信传输。
标准的SPI接口包括有四条信号线:
- MOSI(Master Out Slave In):
- MISO(Master In Slave Out):
- SCK(Serial Clock):
- CS(Chip Select):通常低电平有效
SPI接口应用广泛,包括但不限于以下:
- Norflash:
- Nandflash:对于Flash读取,通常有扩展的双线/四线读取模式,将WP、RESET、DO、DI引脚同时用作单向的数据传输。
- RGB-LED:
- OLED:
- LCD:
- SD卡:
SPI外设接口原理与应用配置
寄存器、buffer、中断、DMA、时钟、引脚配置
数据帧大小配置:8bit、16bit、32bit
全双工/半双工
时钟极性
时钟相位
读写位宽 1/2/4bit
片选
写使能
一主多从
数据传输时序
数据传输高位在前,低位在后。(MSB First)
传输模式(时钟极性、时钟相位)
SPI分类
标准SPI
Dual SPI
Qual SPI
SPI接口应用配置
SPI-Open
- IO引脚配置
- 外设功能配置
- 中断配置以及服务函数处理
读
写
dma读
dma写
SPI接口应用开发
SPI-Nandflash
NandFlash原理
地址线和数据线复用:不支持随机访问,不能直接执行代码。
适用于大容量存储,如U盘、固态硬盘(SSD)等
SPI-NandFlash 读写时序
id号读取
擦除页、扇区、块
读、Dual-Read、Quad-Read,快速读命令
写:页编程
dummy clock
双线/四线读写模式
NandFlash 文件系统接口
暂略
SPI-Norflash
NorFlash原理
地址线和数据线分开:支持随机访问,可以直接执行代码。
高可靠性,成本较高
SPI-Norflash 读写时序
初始化,读取id
注意写保护引脚
写数据:按照时序
先发写使能命令
再发擦除命令
发24bit地址
发页编程命令
发24bit地址
发实际数据
拉高cs,等待ok
读取数据:
发读命令
发读地址
dummy clock,发1Byte 0数据
开始读
半双工-双线读
发双线读命令
发读24bit地址
dummy clock,发1Byte 0数据
配置spi双线读
开始读
读完片选拉高
四线读
发四线读命令
发读32bit地址
dummy clock,发1Byte 0数据
开始读
双线/四线读写模式
NorFlash 文件系统接口
SPI-RGB
简述
SPI-SD卡
简述
SPI-LCD
SPI接口调试问题点
前期配置时,引脚注意不要冲突
写入数据前,不保证是否已有数据,需要先擦除
注意spi的引脚配置正常
思考与拓展
SPI通信速度上限与配置
部分flash,spi的时钟相位配置成pha为1,才能够设置时钟?
SPI的时钟线、数据线在空闲时的电平是怎样的?有什么用?
时钟线的空闲状态受到时钟极性的配置影响
数据线的空闲状态电平