TTSY-学习笔记2

SPI总线

SPI(串行外设接口) (Serial Peripheral Interface) 是摩托罗拉开发的同步串行通信总线 ,主打高速、全双工数据传输,是微控制器与外设间的主流通信方案。

适用于高速、双向外设通信,如Flash 存储、SD 卡、LCD 显示屏、ADC/DAC、无线模块(蓝牙 / WiFi)、传感器等。

核心特点

  • 主从架构:1 个主设备(如 MCU)+ 多个从设备(如传感器、存储芯片),主设备控制时钟与通信时序。
  • 全双工通信:主、从设备可同时收发数据,传输效率高。
  • 同步传输 :由主设备提供SCLK 时钟信号,数据收发与时钟沿同步。
  • 无固定地址 :通过CS/SS 片选信号(低电平有效)区分从设备,无应答与校验机制。

标准 4 线信号线

  • SCLK:串行时钟(主设备输出)
  • MOSI:主发从收(Master Out Slave In)
  • MISO:主收从发(Master In Slave Out)
  • CS/SS:片选信号(主设备输出,选中对应从设备)

5个参数:

  1. 波特率
  • 定义 :SPI 的数据传输速率 (单位:bps),由主设备的SCLK 时钟频率决定。

  • 要点:主设备控制时钟,从设备需支持该速率;常见速率几十 MHz,高速 SPI 可达百 MHz 级。

  1. 比特位传输顺序(MSB First / LSB First)
  • MSB First最高位优先传输(SPI 默认模式,如 0x12 先传 0001,再传 0010)。

  • LSB First最低位优先传输(仅少数外设支持,如部分传感器)。

  • 关键 :主、从设备必须配置为相同顺序,否则数据解析错误。

  1. 数据位长度(8 位 / 16 位)
  • 8 位最常用,适配绝大多数 SPI 外设(Flash、传感器、LCD 等)。

  • 16 位 :用于需要更大数据单元的场景(如部分音频 DAC、16 位 ADC)。

  • 要点 :主从设备需配置为相同长度,否则数据帧错位。

  1. 时钟的极性(CPOL)
  • CPOL=0 :SCLK空闲时为低电平,数据传输时产生高脉冲。

  • CPOL=1 :SCLK空闲时为高电平,数据传输时产生低脉冲。

  • 关键:主、从设备 CPOL 必须一致,否则时钟时序不匹配。

  1. 时钟的相位(CPHA)
  • CPHA=0 :在SCLK 的第一个跳变沿 (上升 / 下降沿,由 CPOL 决定)采样数据

  • CPHA=1 :在SCLK 的第二个跳变沿采样数据。

  • 关键 :与 CPOL 组合形成4 种 SPI 工作模式 (Mode 0~3),主从必须配置为同一模式

SPI 外部Flash实验

消抖处理

flash

SPI模式,大部分情况选第一种模式,也就是全双工。

baud rate设置

3个编程接口

相关推荐
艾莉丝努力练剑1 分钟前
【MYSQL】MYSQL学习的一大重点:视图
android·服务器·数据库·学习·mysql·面试·视图
艾莉丝努力练剑12 分钟前
【MYSQL】MYSQL学习的一大重点:事务(下)- InnoDB 事务隔离性原理(MVCC 视角)
android·数据库·b树·sql·学习·mysql·面试
疯狂打码的少年16 分钟前
【面向对象】设计模式概述(要素、分类:创建型/结构型/行为型)
笔记
懿路向前24 分钟前
【HarmonyOS学习笔记】2026-08-05 | 端插件卡片绑定与跨上下文判断
笔记·学习·ai编程·harmonyos
YUS云生1 小时前
大模型学习·第44天:Chroma向量数据库与RAG链式组装
数据库·学习
风曦Kisaki10 小时前
Kubernetes(K8s)笔记Day06: 持久化存储(emptyDir,hostPath,NFS),PV 和 PVC,StorageClass存储类
linux·运维·笔记·云原生·容器·kubernetes
咸鱼翻身小阿橙14 小时前
现在这个四通道出现的问题
学习
wgego16 小时前
基础的反序列化一些总结(php和java)
java·开发语言·笔记
云贝教育-郑老师16 小时前
OceanBase 是如何搞定海量数据分片(Sharding)的?
学习·oceanbase·dba
编程圈子16 小时前
电机驱动开发学习23. 保护体系与故障状态机
驱动开发·学习