SPI
串行外设设备接口(Serial Peripheral Interface),是一种高速的,全双工,同步的通信总线。
SCK时钟信号由主机发出。
SPI接口主要应用在存储芯片。
- SPI相关引脚:MOSI(输出数据线)、MISO(输入数据线)、SCK(时钟)、NSS(片选)。
- 数据发送和接收:与缓冲区、移位寄存器以及引脚相关。
- 时钟信号:SPI时钟信号通过SPI_CR1寄存器配置。
- 主控制逻辑:涉及两个控制寄存器SPI_CR1/2用于配置SPI工作,SPI_SR用于查看工作状态。
使用软件管理NSS,硬件上的NSS引脚就可以另做他用,通过SSM、SSI来控制电平。主机NSS拉高,从机NSS低电平有效。
SPI外设对应的引脚
STM32芯片有多个SPI外设,每个SPI外设输出的信号会到不同的GPIO口。
STM32F1有三个SPI。
SPI属于边沿协议,IIC属于电平协议。
主机只向从机进行写操作,可以忽略接收到的从机数据。
主要要对从机进行读操作,需要发送一个空数据引发从机发送数据。
SPI工作模式
时钟极性(CPOL)没有数据传输时,时钟线的空闲状态电平。
- 0:SCK在空闲状态保持低电平
- 1:SCK在空闲状态保持高电平
时钟相位(CPHA)时钟线在第几个时钟边沿采样数据。
- 0:SCK的第一边沿(奇数)进行数据位采样,数据在第一个时钟边沿锁存。
- 1:SCK的第二边沿(偶数)进行数据位采样,数据在第二个时钟边沿锁存。
SPI相关寄存器
SPI_CR1
SPI_SR
SPI_DR
SPI相关HAL库驱动
NOR FLASH
FLASH是常用的用于存储数据的半导体器件,它具有容量大,可重复擦写,按“扇区/块”擦写,掉电后数据可继续保存的特性。
FLASH只能写0,不能写1,写1靠擦除。
FLASH主要有NOR Flash和NAND Flash两种类型,NOR和NAND是两种数字门电路。
NM25Q128
NM25Q128,串行闪存器件,属于NOR FLASH只的一种,容量为128Mb。擦写周期可达10W次,可以将数据保存达20年之久。