您好,欢迎来到一二三四网。
搜索
您的当前位置:首页ESP32 SPI 接口的应用

ESP32 SPI 接口的应用

来源:一二三四网

应用分类

1 SPI Flash/PSRAM
1.1 内置 SPI Flash/PSRAM
  • SPI0:被 Flash 占用,内置 Flash 端口与芯片管脚对应关系如下,一般是 GPIO6 ~ GPIO11 ,且这几个管脚不可用于其他功能。但不同型号的模组默认的 Flash 接口可能不同,可使用 esptool 工具通过 espefuse.py summary 命令来查询默认的配置。
SPI_PAD_CONFIG_CLK (BLOCK0): Override SD_CLK pad (GPIO6/SPICLK)  = 0 R/W (0b00000)
SPI_PAD_CONFIG_Q (BLOCK0): Override SD_DATA_0 pad (GPIO7/SPIQ)  = 0 R/W (0b00000)
SPI_PAD_CONFIG_D (BLOCK0): Override SD_DATA_1 pad (GPIO8/SPID)  = 0 R/W (0b00000)
SPI_PAD_CONFIG_HD (BLOCK0): Override SD_DATA_2 pad (GPIO9/SPIHD)  = 0 R/W (0b00000)
SPI_PAD_CONFIG_CS0 (BLOCK0): Override SD_CMD pad (GPIO11/SPICS0)  = 0 R/W (0b00000)

  • ESP32 系列的模组,目前默认最大支持 16MB 的 Flash 。
  • ESP32 系列的模组,除 ESP32-WROVER 模组为 1.8V Flash 以外,其他型号的模组均为 3.3V Flash。
  • 带有内置 Flash 的芯片型号需要注意上电时的 MTDI(GPIO12) 电平。例如 ESP32-U4WDH 的内置 Flash 的工作电压是 3.3V,上电时需要将 MTDI(GPIO12) 拉低。请参见关于”Strapping 管脚“ 的说明。
  • 目前 ESP 适配过的 Flash 型号可参见 “”
  • SPI1:FLASH 和 PSRAM 共用一组 SPI,通过不同的 CS 线实现控制。GPIO16 ~ GPIO17 一般是用于 Flash 和 PSRAM 的共用接口,且这 2 个管脚不可用于其他功能。PSRAM 的接口除了 CS(任意 GPIO)不能与 Flash 共用外,CLK 接口(建议参考模组使用的时钟脚),其他都可以与 Flash 的接口共用;目前最大支持使用外接 8MB PSRAM。
  • 当使用 VDD_SDIO 的 1.8 V 模式给 Flash/PSRAM 等外设供电时,需要在 VDD_SDIO 上接个对地 2 kΩ 的
    电阻,参考 中原理图。
  • SPI Flash/PSRAM 硬件原理图可参见
  • SPI Flash 编程指南参见 “”
  • “” 和 “”

【软件应用例程】
  • 对自带的 Flash 设置特定的分区,作为操作 SPIFFS 文件系统的分区。可参见例程:
  • 对自带的 Flash 设置特定的分区,构建 SPIFFS 图像生成示例:
  • 对自带的 Flash 设置特定的分区存储音频文件并播放存在 Flash 中的 MP3 文件示例:
  • 对自带的 Flash 设置特定的分区构建 SPIFFS 文件系统来存储 MP3 文件,并播放存在 SPIFFS 文件系统中的 MP3 文件示例:

【Flash & PSRAM 常见应用问题】

1.2 外接 SPI Flash 存储外部数据
  • 可使用通用 SPI ,支持任意 GPIO 管脚进行映射。使用任意 GPIO 进行映射时,需要注意对时序产生的影响,可参考 “” 说明。
  • 目前只支持外接 SPI NOR Flash 芯片,以 W25Q32 型号的 SPI NOR Flash 芯片为例,可参见例程

1.3 外接 SPI PSRAM 存储外部数据
  • 硬件上支持使用 SPI2 或 SPI3 接口外接 PSRAM 芯片,但是 SPI2 和 SPI3 不支持 Cache ,且目前软件上无 SPI2、SPI3 的 PSRAM 的驱动,所以目前使用 SPI2\SPI3 外接 PSRAM 是可不用的。

2 SD SPI(可使用 SPI 接口或 SDIO 接口)
  • 说明
  • SDSPI 例程参见:,包含硬件接线及上拉要求;支持 SD(SDSC、SDHC、SDXC)卡。

3 SPI 外接 LCD

ESP32 目前支持 SPI 串行接口、6800、8080 并口的 LCD。

3.1 ESP32 适配的 LCD 参数

1. SPI 接口

  • 最大分辨率:480*320
  • 最大帧率:80MHz 的频率大概是 12 帧

2. 8080/6800 接口协议

  • 最大分辨率:854*480

3.2 SPI LCD 硬件设计参考
  • 官方提供了 ,开发板预留屏幕接口类型:SPI 串行接口、8 位和16 位并行接口,可用于测试。对应原理图请参见 “”
  • 贴装一款 3.2 寸的 SPI(标准四线串行外设接口)LCD 显示器,分辨率为 320*240。请见 。

3.3 SPI LCD 软件应用
  • ESP32 的 SPI LCD 的 HMI 示例程序参考
  • 适配的 LCD 的驱动库可参见 ; 默认使用的是 ILI9341 LCD 。
  • ESP32 的 8080 并口的例程可参见 例程。对于 8080 协议的 LCD 接口,我们使用的是 I2S 接口软件方式实现,但此方式只支持 “写”,不支持 “读”。
  • ESP32 SPI 驱动墨水屏的例程可参考 例程

3.4 SPI LCD 方案介绍
  • “” 视频介绍

4 SPI 通信
4.1 SPI Master
  • ESP32 SPI1 ~ SPI3 可以作为 SPI 主机与其他从机通信。ESP32 SPI 作主机使用时,每个 SPI 控制器可以使用多个片选信号 (CS0 ~ CS2) 来连接多个 SPI 从机设备。每个 ESP32 SPI 主机默认最多可以接 3 个从机。在非 DMA 模式下,一次最多可以接收/发送 byte 的数据,收发数据长度以字节为单位。
  • 详细说明建议阅读 的 “7 SPI 控制器” 章节和 “” 编程指南。
  • 参考例程:

4.2 SPI Slave
  • SPI2 和 SPI3 可以作为从机。SPI2,有时也称为 HSPI ;SPI3,有时也称为 VSPI 。
  • 详细说明建议阅读 的 “7 SPI 控制器” 章节和 “” 编程指南。
  • 参考例程:

4.3 SPI 传输 AT 指令
  • ESP32-C3 、ESP32 都支持 SPI 传输 AT 指令,但由于 ESP32 的硬件条件的,我们更推荐使用 ESP32 的 方式传输 AT 指令,吞吐率参见 “” 说明。

硬件条件的是指:

  • SPI Slave 支持的 SPI Clock 为10MHz, 最理想的情况下大约 1MB/s , 但是实际要损失很多。
  • SPI Slave 需要在挂载好 Buffer 之后才允许 Master 收发数据。
  • 请参见 ”“ 说明。
  • ESP32 SPI 传输 AT 参见:
  • 同时请阅读

5 无线网卡方案

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- howto1234.net 版权所有 湘ICP备2023021910号-3

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务