当前位置: 首页 > news >正文

【STM32】SPI 与 Flash 笔记

1️⃣ SPI(Serial Peripheral Interface,串行外设接口)

  • 英文解释

    • Serial:串行
    • Peripheral:外设
    • Interface:接口
  • 用途:MCU 与外部设备(Flash、传感器等)高速数据通信

常见 SPI 类型

类型数据线英文全称每时钟传输特点 / 用途
单线 SPI1(MOSI)+1(MISO)+CLK+CSStandard SPI1 bit基础 SPI,低速 Flash、外设配置
双线 SPI2 数据线 + CLK + CSDual SPI2 bit双向传输,速度翻倍
四线 SPI4 数据线 + CLK + CSQuad SPI (QSPI)4 bit高速读取 NOR Flash,可 XIP(Execute In Place)
八线 SPI8 数据线 + CLK + CSOcto SPI / HyperBus8 bit高速大容量 Flash,数百 MB/s,工业 / Linux 系统用

⚠️ SPI 扩展主要是增加数据线并行传输,最大常见是 8 线。16 线 SPI 不存在,超过 8 线通常改用并行总线或 DDR 接口。


SPI 通信距离

条件建议距离
PCB 板上(同板或短线)几厘米到几十厘米(稳定)
板间普通导线≤30 cm(高速模式下建议 ≤10~15 cm)
高速 QSPI / Octo SPI≤10~15 cm(线长越长,时钟抖动越严重)

影响因素

  1. 时钟频率:高频 → 信号衰减,距离减小
  2. 线缆类型:双绞线/屏蔽线可稍延长距离
  3. 电容和阻抗匹配:线太长 → 串扰和反射 → 数据错误
  4. 信号驱动能力:驱动弱 → 长线更容易出错

💡 总结:SPI 是短距离高速接口,高速模式通常只适合同板或板间短线,米级通信需换 UART/RS485/CAN 等长距离接口。


2️⃣ Flash 类型

2.1 NOR Flash

  • 英文解释:Not OR Flash

  • 特点

    • 支持 随机访问,按字节读取
    • 读取速度快,适合执行程序代码(XIP)
    • 写入/擦除慢,容量相对小
    • 擦写次数高 (~10 万次)
  • 用途:存储 MCU 固件、启动程序、少量数据

  • 接口:SPI / QSPI / OctoSPI

  • 例子:W25Q64(8MB QSPI NOR Flash)

2.2 NAND Flash

  • 英文解释:Not AND Flash

  • 特点

    • 按页 / 块顺序访问,随机访问慢
    • 写入/擦除快,容量大(GB级)
    • 擦写次数约 10 万次(小块 NAND)
  • 用途:存储数据文件、大容量存储(SD 卡、SSD)

  • 接口:Parallel NAND / SPI NAND

  • 特点对比

特性NOR FlashNAND Flash
访问方式随机访问顺序访问(页/块)
写入速度
擦写速度
容量
XIP 支持支持不支持
用途固件 / 代码数据存储 / 文件系统

3️⃣ QSPI / Dual / Octo 关键英文单词

缩写英文全称含义
SPISerial Peripheral Interface串行外设接口
QSPIQuad SPI四线 SPI,每时钟传 4 bit
Dual SPIDual SPI双线 SPI,每时钟传 2 bit
Octo SPIOcto SPI八线 SPI,每时钟传 8 bit
XIPeXecute In Place直接从 Flash 执行程序,无需拷贝到 RAM
CSChip Select片选信号,低电平选中芯片
MOSIMaster Out Slave In主机输出,从机输入
MISOMaster In Slave Out主机输入,从机输出
CLKClock时钟信号
IO0~IO7数据线数据传输线(Quad/Octo 模式)

💡 总结要点

  1. SPI 接口根据数据线不同有 单线 / 双线 / 四线 / 八线,带宽逐步增加
  2. SPI 是短距离高速接口,高速模式通常只适合同板或板间短线
  3. NOR Flash 适合存程序,NAND Flash 适合大容量数据存储
  4. QSPI / OctoSPI 主要用于 高速读取 + XIP
  5. MCU 与 Flash 接口模式必须匹配,才能发挥最大带宽
http://www.dtcms.com/a/338105.html

相关文章:

  • 【深度长文】Anthropic发布Prompt Engineering全新指南
  • 启发式合并
  • 1、代码相关优化建议
  • 数据分析进阶——解读文本分析模型【附全文阅读】
  • 第十六届蓝桥杯青少组C++省赛[2025.8.10]第二部分编程题(5、环形取硬币游戏)
  • 虚幻基础:动作时间窗
  • Kafka文件存储机制
  • 录音转文字,如何做到“快、准、狠“多格式通吃?
  • 自学中医笔记(二)
  • 大模型对齐算法(四): DAPO,VAPO,GMPO,GSPO, CISPO,GFPO
  • 如何平衡电竞酒店和高校宿舍对AI云电竞游戏盒子的不同需求?
  • 【Python】Python 多进程与多线程:从原理到实践
  • NVIDIA CWE 2025 上海直击:从 GPU 集群到 NeMo 2.0,企业 AI 智能化的加速引擎
  • 软件定义汽车---创新与差异化之路
  • C/C++ 中 str、str、*str 在指针语境下的具体含义(以 char* str 为例):
  • 深化中东战略承诺,联想集团宣布在利雅得设区域总部
  • wait / notify、单例模式
  • 【深度学习基础】PyTorch Tensor生成方式及复制方法详解
  • 【每日一题】Day 7
  • Linux——进程间、线程间的通信
  • 【C++】 using声明 与 using指示
  • 《彩色终端》诗解——ANSI 艺术解码(DeepSeek)
  • C++设计模式:建造者模式
  • 《若依》权限控制
  • ESP32小智-语音活动(VAD)检测流程
  • Pytorch GPU版本安装保姆级教程
  • 【Python面试题】描述一次解决内存泄漏的过程。如何用tracemalloc或者objgraph定位问题?什么情况下会用__slots__?
  • 【领码课堂】AI写码不再“盲跑”,方案先行,自动化高效落地
  • BOSS直聘招聘端AI辅助自动化技术研究
  • 某储备土地前期开发项目控制保护区桥梁自动化监测