【STM32】SPI回顾

一、定义

SPI是Motorola首先提出的全双工四线同步串行外围接口,采用主从模式(Master-Slave)架构。

二、单机与多机通信

4线SPI器件有四个信号:时钟(SPI CLK, SCLK)、主机输出从机输入(MOSI)、主机输入从机输出(MISO)、片选(CS/NSS)。

在MOSI、MISO和SPI主从机内部的数据寄存器构成一个数据串行传输的环路,在时钟SCLK的控制下实现数据的环形传输。

2.2 多机通信

三、工作模式

SPI总线有四种工作方式,其中使用的最为广泛的是模式0和模式3方式。

CPOL(Clock Polarity):时钟极性选择

  • CPOL=0 SPI总线空闲时(片选引脚为高电平),时钟线为低电平 ;
  • CPOL=1 SPI总线空闲时(片选引脚为高电平),时钟线为高电平。

CPHA(Clock Phase):时钟相位选择

  • CPHA=0 在SCLK第一个跳变沿,主机对MISO引脚电平采样;主机的数据发送则在第二个跳变沿。
  • CPHA=1 在SCLK第二个跳变沿,主机对MISO引脚电平采样。主机的数据发送则在第一个跳变沿。

汇总

  • CPHA=0、CPOL=0:此时空闲态时,SCLK处于低电平,数据采样是在第1个边沿,就是SCLK由低电平到高电平的跳变,所以数据采样是在上升沿(准备数据),(发送数据)数据发送是在下降沿。
  • CPHA=0、CPOL=1:此时空闲态时,SCLK处于高电平,数据采集是在第1个边沿,即SCLK由高电平到低电平的跳变,所以数据采集是在下降沿,数据发送是在上升沿
  • CPHA=1、CPOL=0:此时空闲态时,SCLK处于低电平,数据发送是在第1个边沿,即SCLK由低电平到高电平的跳变,所以数据采样是在下降沿,数据发送是在上升沿。
  • CPHA=1、CPOL=1:此时空闲态时,SCLK处于高电平,数据发送是在第1个边沿,即SCLK由高电平到低电平的跳变,所以数据采集是在上升沿,数据发送是在下降沿。





关于跳变沿

  • 模式3中的第一跳变沿告诉从机可以读取MOSI引脚电平;第二跳变沿主机可以可靠读取MISO引脚电平。
  • 在项目开发当中,用的比较多是模式0(2.4G无线传输模块:NRF24L01;RFID模块:RC522)和模式3(SPI FLASH:W25Q128)。
相关推荐
蓝凌y20 小时前
51单片机之LCD1602
单片机·嵌入式硬件·51单片机
Lugas Luo20 小时前
Kernel 5.10 针对 eMMC 的 Detect、Power、Add 及深度优化解析
linux·嵌入式硬件
charlie11451419120 小时前
嵌入式C++教程实战之Linux下的单片机编程:从零搭建 STM32 开发工具链(4)从零构建 STM32 构建系统
linux·开发语言·c++·stm32·单片机·学习·嵌入式
欢乐熊嵌入式编程20 小时前
用 ESP32 + WiFi 做远程控制插座(从原理到实战)
单片机·wifi·智能路由器·esp32·远程控制插座
Lugas Luo20 小时前
Kernel 5.10 SD卡专属探测、上电与注册流程分析 (Detect -> Power Up -> Add)
linux·嵌入式硬件
weixin_4629019721 小时前
esp32测试DH11模块
单片机
蓝凌y21 小时前
51单片机之按键扫描
单片机·嵌入式硬件·51单片机
果果燕21 小时前
ARM嵌入式学习(三)---汇编应用:LED点亮
arm开发·单片机·嵌入式硬件
DA022121 小时前
系统移植-STM32MP1_U-Boot顶层Makefile分析
stm32·系统移植
Hello_Embed21 小时前
嵌入式上位机开发入门(五):UDP 编程 —— Server 端实现
笔记·单片机·网络协议·udp·嵌入式