SPI通信

1、SPI通信

  • SPI与I2C的优缺点:

    • SPI速度更快

    • 设计简单粗暴,实现的功能没有I2C的多

    • SPI的硬件开销比较大,通信线的个数比较多,会有资源浪费的现象

  • SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线

  • 四根通信线:SCK(Serial Clock)串行时钟线、MOSI(Master Output Slave Input)主机输出 从机输入、MISO(Master Input Slave Output)主机输入 从机输出、SS(Slave Select)从机选择-->低电平有效

  • 同步、全双工

  • 支持总线挂载多设备(一主多从)
    05cc9c08-440e-4d72-aec8-d06b142dc971

2、硬件电路

  • 所有SPI设备的SCK、MOSI、MISO分别连在一起

  • 主机另外引出多条SS控制线,分别接到各从机的SS引脚(需要通讯的置于低电平)

  • 输出引脚配置位推挽输出,输入引脚配置位浮空或上拉输入
    10d673fb-e2af-4ca5-be30-5e9d0226f022

3、移位示意图

7568d587-53d9-4e15-bd0a-bea1b373bd7d

4、SPI时序基本单元

•起始条件:SS从高电平切换到低电平

•终止条件:SS从低电平切换到高电平

低电平选中,高点平未选中
aa056d65-c362-489e-bcb2-dfee4e43760e
77516a2f-866e-45cf-9418-775cd41b1f63
d0d417ec-f9cd-4c2c-95fa-03acfc5f3ee5

5、SPI时序(以W25Q64芯片为例)

3b797cbd-cf43-4ed4-998a-58de018c9851
651237bf-ae5f-460d-974a-2f9671581aa2

6、W25Q64简介

  • W25Qxx系列是一种低成本、小型化、使用简单的非易失性存储器(数据掉电不丢失),常用于数据存储、字库存储、固件程序存储等场景

  • 存储介质Nor Flash(闪存)

  • 时钟频率:80MHz / 160MHz(Dual SPI)/ 320MHz(Quad SPI)

  • 存储容量(24位地址):

    • W25Q40 : 4Mbit / 512KByte

    • W25Q80:    8Mbit / 1MByte

    • W25Q16:    16Mbit / 2MByte

    • W25Q16:    32Mbit / 4MByte

    • W25Q64:    64Mbit / 8MByte

    • W25Q128:  128Mbit / 16MByte

    • W25Q256:  256Mbit / 32MByte

硬件电路

6162b8df-3952-40f1-991e-46a0a4119af0
a57797e8-c6f3-402c-b380-f890774c51a8

CS低电平有效

WP低电平有效 - WP接低电平,保护,不让写 WP接高电平,不保护,可以写

W25Q64框图

554f32ce-a501-4172-a7e8-f53eaa590987

容量是8MB,分为128块,一块为64KB,一块分为16个扇区,一个扇区4KB,一个扇区分为16页,一页256字节(RAM存储器)。

flash操作注意事项

  • 写入操作时:

    • 写入操作前,必须先进行写使能

    • 每个数据位只能由1该写为0,不能由0改写为1

    • 写入数据前必须先擦除,擦除后,所有数据位变为1(如果不擦除:读出的数据 = 原始数据 & 写入的数据)

    • 擦除必须按最小擦除单元进行

    • 连续写入多字节时,最多写入一页(256字节 )的数据,超过页尾位置的数据,会回到页首覆盖写入

    • 写入操作结束后,芯片进入忙状态,不响应新的读写操作

  • 读取操作时:

    • 直接调用读取时序,无需使能,无需额外操作,没有页的限制,读取操作结束后不会进入忙状态,但不能在忙状态时读取

SPI外设简介

  • STM32内部集成了硬件SPI收发电路,可以由硬件自动执行时钟生成、数据收发等功能,减轻CPU的负担

  • 可配置8位/16位数据帧、高位先行/低位先行

  • 时钟频率:fPCLK/(2,4,8,16,32,64,128,256)

  • 支持多主机模型、主或从操作

  • 可精简位半双工/单工通信

  • 支持DMA(用DMA来帮我们自动搬运数据,快速传递大量数据)

  • 兼容I2S协议(数字音频信号传输的专用协议)

  • STM32F103C8T6硬件SPI资源:SPI1、SPI2

SPI框图

39b13caf-aeb5-4c1f-989a-c777c28c8a33

I2C基本结构

d51c8e63-81f6-4bd8-b32f-2b82537cb8f2

时序图

主模式全双工连续传输6b3ca535-c008-402c-aaf4-765e6fde3d6d

非连续传输b2ed0be9-40f8-4f09-b182-8ea9cfa7cb2e

软硬件波形对比(上面是软件/下面是硬件)dc730441-697c-4742-a5e2-53eab8994212

posted @ 2026-01-24 16:55  people121  阅读(3)  评论(0)    收藏  举报