ESP32-S3的SPI接口

ESP32S3具有4组SPI接口分别是:SPI0/1、SPI2/3

串行外设接口 (SPI) 是一种同步串行接口,可用于与外围设备进行通信。ESP32-S3 芯片集成了四个 SPI 控制器:
• SPI0
• SPI1
• 通用 SPI2,即 GP-SPI2
• 通用 SPI3,即 GP-SPI3
SPI0 和 SPI1 控制器主要供内部使用以访问外部 flash 及 PSRAM。

VDD_SPI 电压控制

表 2-12. VDD_SPI 电压控制
VDD_SPI 电压控制

ESP32-S3复位时GPIO45决定ESP32内部VDD_SPI电压,见表2-12.
电压有两种控制方式,具体取决于 EFUSE_VDD_SPI_FORCE 的值。
• 供电管脚(VDD3P3_CPU 或 VDD_SPI)由 eFuse 位 EFUSE_PIN_POWER_SELECTION 决定(详见《ESP32-S3 技术参考手册》 > 章节 eFuse 控制器),可通过 IO_MUX_PAD_POWER_CTRL 位配置,详见 《ESP32-S3 技术参考手册》 > 章节 IO MUX 和 GPIO 交换矩阵。
5. 在 ESP32-S3R8V 芯片中,由于 VDD_SPI 电压已设置为 1.8 V,所以,不同于其他 GPIO,该芯片在 VDD_SPI电源域中的 GPIO47 和 GPIO48 的工作电压也为 1.8 V。

GPIO8-GPIO14用于FSPI、SUBSPI、FSPI

SPI2使用GPIO9-GPIO14,即SPI名称一列,或使用任意 IO 管脚

GPIO名称FSPI名称SUBSPI名称SPI名称
GPIO8SUBSPICS1
GPIO9SUBSPIHDFSPIHD
GPIO10FSPIIO4SUBSPICS0FSPICS0
GPIO11FSPIIO5SUBSPIDFSPID
GPIO12FSPIIO6SUBSPICLKFSPICLK
GPIO13FSPIIO7SUBSPIQFSPIQ
GPIO14FSPIDQSSUBSPIWPFSPIWP
-(不推荐)八线 SPI 连接的 SPI2 接口替代信号线。SPI0/1 接口通过 SUBSPI 总线(单独的线,与 SPI 总线的电压不同)连接封装内或封装外 flash/PSRAM。注意,不可使用 SPI2 接口连接。用于快速 SPI 传输的 SPI2 主接口。支持单线、双线、四线 SPI 模式。

GPIO26-GPIO32用于与封装内 flash/PSRAM 通讯,不建议作其他用途

GPIO26-GPIO32用于连接封装内或封装外 flash/PSRAM 的 SPI0/1 接口。支持单线、双线、四线 SPI 模式,与 5d 搭配使用在八线 SPI 模式下可作为低 4 位数据线接口及 CLK、CS0、CS1 接口。参见章节 2.7 芯片与 flash/PSRAM 的管脚对应关系。

GPIO名称SPI名称
GPIO26SPICS1
GPIO27SPIHD
GPIO28SPIWP
GPIO29SPICS0
GPIO30SPICLK
GPIO31SPIQ
GPIO32SPID

GPIO33-GPIO39用于FSPI、SUBSPI、SPI,GPIO39复用JTAG的MTCK

GPIO名称FSPI名称SUBSPI名称SPI名称
GPIO33FSPIHDSUBSPIHDSPIIO4
GPIO34FSPICS0SUBSPICS0SPIIO5
GPIO35FSPIDSUBSPIDSPIIO6
GPIO36FSPICLKSUBSPICLKSPIIO7
GPIO37FSPIQSUBSPIQSPIDQS
GPIO38FSPIWPSUBSPIWP
GPIO39SUBSPICS1
-(不推荐)SPI2 主接口不可使用时的替代 SPI2 接口,其性能与通过 GPIO 交换矩阵使用 SPI2 类似,因此建议使用 GPIO 交换矩阵。SPI0/1 接口通过 SUBSPI 总线连接 – 另一组信号线,可在 SPI0/1 非八线连接时使用。SPI0/1 接口信号线。与 5c 搭配使用在八线 SPI 模式下可作为高 4 位数据线接口及 DQS 接口。
GPIO47SPI CLK_P_DIFFSUBSPI CLK_P_DIFF
GPIO48SPI CLK_N_DIFFSUBSPI CLK_N_DIFF O/T

芯片与 flash/PSRAM 的管脚对应关系

表 2-14 列出了所有 SPI 模式下芯片与 flash/PSRAM 的管脚对应关系。
封装内带有 flash/PSRAM 的芯片变型(见表 1-1 型号对比)与封装内 flash/PSRAM 连接的管脚取决于所使用的SPI 模式。
封装外 flash/PSRAM 的推荐连接管脚也可参照下表。
更多关于 SPI 控制器的信息,可参考章节 3.5.2 串行外设接口 (SPI)。
注意:不建议将连接 flash/PSRAM 的管脚用于其他用途。
表 2-14. 芯片与封装内 flash/PSRAM 的管脚对应关系
芯片与封装内 flash/PSRAM 的管脚对应关系

1 CS0 用于封装内 flash
2 CS1 用于封装内 PSRAM

SPI术语

为了更好地说明 GP-SPI 的功能,本章使用了以下术语。
主机模式 GP-SPI 用作 SPI 主机,发起 SPI 传输事务。
从机模式 GP-SPI 用作 SPI 从机,当其 CS 被拉低时,与 SPI 主机进行数据传输。
MISO 主机输入,从机输出。数据从从机发送至主机。
MOSI 主机输出,从机输入。数据从主机发送至从机。
传输事务 一次完整的传输事务:主机拉低从机的 CS 线,开始传输数据,然后再拉高从机的 CS 线。传输事务为原子操作,即不可打断。
SPI 传输 SPI 主机与从机完成数据交换的一次完整过程。一次 SPI 传输可以包含一个或多个 SPI 传输事务。
单次传输 在这种传输模式下,仅包含一次传输事务。

CPU 控制的传输 由 CPU 控制,SPI_W0_REG ~ SPI_W15_REG 与 SPI 设备之间的数据传输。
DMA 控制的传输 由 DMA 引擎控制,DMA 与 SPI 设备之间的数据传输。
分段配置传输 主机模式下,DMA 控制的数据传输。此类传输包含多个传输事务(分段),每个传输事务均可独立配置。
从机连续传输 从机模式下,DMA 控制的数据传输。此类传输包含多个传输事务(分段)。
全双工 主机与从机之间的发送线和接收线各自独立,发送数据和接收数据同时进行。
半双工 主机和从机只能有一方先发送数据,另一方接收数据。发送数据和接收数据不能同时进行。
四线全双工 四线包括:时钟线、片选线和两条数据线。其中,可使用两条数据线同时发送和接收数据。
四线半双工 四线包括:时钟线、片选线和两条数据线。其中,分时使用两条数据线,不可同时使用。
三线半双工 三线包括:时钟线、片选线和一条数据线。使用数据线分时发送和接收数据。

1-bit SPI 一个时钟周期传输一位数据。
(2-bit) Dual SPI 一个时钟周期传输两个数据位。
Dual Output Read Dual SPI 的一种数据模式,一个时钟周期可传输一位命令、或一位地址、或两位数据。
Dual I/O Read Dual SPI 的另外一种数据模式,一个时钟周期可传输一位命令、或两位地址、或两位数据。
(4-bit) Quad SPI 一个时钟周期传输四个数据位。
Quad Output Read Quad SPI 的一种数据模式,一个时钟周期可传输一位命令、或一位地址、或四位数据。
Quad I/O Read Quad SPI 的一种数据模式,一个时钟周期可传输一位命令、或四位地址、或四位数据。
QPI 一个时钟周期可传输四位命令、或四位地址、或四位数据。

(8-bit) Octal SPI 一个时钟周期传输八个数据位。
Octal Output Read Octal SPI 的一种数据模式,一个时钟周期可传输一位命令、或一位地址、或八位数据。
Octal I/O Read Octal SPI 的另外一种数据模式,一个时钟周期可传输一位命令、或八位地址、或八位数据。
OPI 一个时钟周期可传输八位命令、或八位地址、或八位数据。
FSPI Fast SPI,GP-SPI2 输入输出信号的前缀。FSPI 总线信号可通过GPIO 交换矩阵或 IO MUX 与 GPIO 管脚相连。
SPI3 GP-SPI3 输入输出信号的前缀。SPI3 总线信号仅可通过 GPIO 交换矩阵连接到 GPIO 管脚。

SPI特性

GP-SPI 具体以下特性:
• 支持主机模式和从机模式
• 支持半双工通信和全双工通信
• 支持 CPU 控制的传输模式以及 DMA 控制的传输模式
• 支持多种数据模式:
– GP-SPI2:

  • 1-bit SPI 模式
  • 2-bit Dual SPI 模式
  • 4-bit Quad SPI 模式
  • QPI 模式
  • 8-bit Octal SPI 模式
  • OPI 模式
    – GP-SPI3:
  • 1-bit SPI 模式
  • 2-bit Dual SPI 模式
  • 4-bit Quad SPI 模式
  • QPI 模式
    • 时钟频率可配置:
    – 在主机模式下:时钟频率可达 80 MHz
    – 在从机模式下:时钟频率可达 60 MHz

• 数据长度可配置:
– 在主机和从机 CPU 控制的传输模式下:数据长度为 1 ~ 64 B
– 在主机 DMA 控制的单次传输模式下:数据长度为 1 ~ 32 KB
– 在主机 DMA 控制的分段配置传输模式下:数据长度字节数无限制
– 在从机 DMA 控制的单次或连续传输模式下:数据长度字节数无限制

• 数据位的读写顺序可配置
• 为 CPU 控制的传输和 DMA 控制的传输分别提供独立中断
• 时钟极性和相位可配置
• 四种 SPI 时钟模式:模式 0 ~ 模式 3

• 在主机模式下,提供多条 CS 线:
– GP-SPI2:CS0 ~ CS5
– GP-SPI3:CS0 ~ CS2
• 支持访问 SPI 接口的传感器、显示屏控制器、flash 或 RAM 芯片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值