0%

【接口】SPI 外设接口调试与应用开发

前言

未完待续……

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的时钟线、数据线在空闲时的电平是怎样的?有什么用?

时钟线的空闲状态受到时钟极性的配置影响

数据线的空闲状态电平

SPI从机的软件设计?

参考站点