IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> ESP32 SPI 接口的应用 -> 正文阅读

[嵌入式]ESP32 SPI 接口的应用

总体介绍

1. ESP32 共有 4 个 SPI 控制器 SPI0、SPI1、SPI2、SPI3,用于连接支持 SPI 协议的设备。
  • SPI0 控制器作为 cache 访问外部存储单元接口使用;
  • SPI1 作为主机使用;
  • SPI2 和 SPI3 控制器既可作为主机使用又可作为从机使用。作主机使用时,每个 SPI 控制器可以使用多个片选信号 (CS0 ~ CS2) 来连接多个 SPI 从机设备。
  • SPI1 ~ SPI3 控制器共享两个 DMA 通道。
2. 作为通用 SPI 支持以下特性:
  • 4 种模式的 SPI 传输格式,模式取决于 SPI 时钟的极性 (CPOL) 和相位 (CPHA);
  • 最高支持到 80 MHz(实际可支持频率还受限于所用 pad、PCB 走线、外接器件规格等);
  • 最高支持 64 byte 的 FIFO ;
  • 所有 SPI 接口都可以连接外部 flash/SRAM 和 LCD。每一个 SPI 控制器都可连接到 DMA 通道。
3. 编程指南说明:

应用分类

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) 拉低。请参见《ESP32 技术规格书》关于”Strapping 管脚“ 的说明。

  • 目前 ESP 适配过的 Flash 型号可参见 “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? 的
    电阻,参考《ESP32-WROVER 技术规格书》 中原理图。

  • SPI Flash/PSRAM 硬件原理图可参见《ESP32 硬件设计指南》
    在这里插入图片描述

  • SPI Flash 编程指南参见 "SPI Flash API"

  • "SPI Flash 加密" 和 "ESP32-Secure Boot 安全方案"


【软件应用例程】


【Flash & PSRAM 常见应用问题】


1.2 外接 SPI Flash 存储外部数据

  • 可使用通用 SPI ,支持任意 GPIO 管脚进行映射。使用任意 GPIO 进行映射时,需要注意对时序产生的影响,可参考 “Timing Considerations” 说明。
  • 目前只支持外接 SPI NOR Flash 芯片,以 W25Q32 型号的 SPI NOR Flash 芯片为例,可参见例程 esp-idf/examples/storage/ext_flash_fatfs

1.3 外接 SPI PSRAM 存储外部数据

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

2 SD SPI(可使用 SPI 接口或 SDIO 接口)


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 硬件设计参考


3.3 SPI LCD 软件应用


3.4 SPI LCD 方案介绍


4 SPI 通信

4.1 SPI Master

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

4.2 SPI Slave


4.3 SPI 传输 AT 指令

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

硬件条件的限制是指:

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

5 ESP-Hosted 无线网卡方案


SPI 使用注意事项

  • ESP32 的 SPI 在专用 IO_MUX SPI 引脚上的速度可达 80 MHz ,在 GPIO matrix 引脚上的速度可达 40 MHz ,但在 GPIO matrix 上的全双工传输只支持高达 26 MHz 的速度。请阅读 “SPI Master Driver” 编程指南。

SPI 常见应用问题

可查阅 ”ESP-FAQ 外设“ 章节。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-12-24 18:38:44  更:2021-12-24 18:39:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 14:40:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码