ESP32之软件SPI驱动及SPI、HSPI和VSPI的理解
发布日期:2021-07-19 12:30:10 浏览次数:10 分类:技术文章

本文共 1092 字,大约阅读时间需要 3 分钟。

SPI系统框图

ESP32 共有 4 个 SPI 控制器,用于连接支持 SPI 协议的设备。 SPI0 控制器作为 cache 访问外部
存储单元接口使用, SPI1 作为主机使用, SPI2 和 SPI3 控制器既可作为主机使用又可作为从机使用。作主机使
用时,每个 SPI 控制器可以使用多个片选信号 (CS0~CS2) 来连接多个 SPI 从机设备。 SPI1 ~ SPI3 控制器共享
两个 DMA 通道。
SPI 控制器在 GP-SPI 模式下,支持标准的四线全双工通信(MOSI、 MISO、 CS、 CLK)和三线半双工通信(DATA、
CS、 CLK)。 SPI 控制器在 QSPI 模式下使用信号总线 D、 Q、 CS0~CS2、 CLK、 WP 和 HD 作为 4-bit 并行 SPI
总线来访问外部 Flash 或 SRAM。
SPI信号与引脚信号功能映射关系

需要注意的是,HSPI和VSPI并不是网友们认为的high-speed SPI 和Very High-speed SPI,这是SPI和HSPI、VSPI是一样的,只不过是换个名字用于区分,SPI相当于SPI0或SPI1,HSPI相当于SPI2,VSPI相当于SPI3。

在这里插入图片描述

如果SPI采用GPIO矩阵,则最大频率会限制在26.6MHz,如果采用IOMUX,最高频率会限制在80MHz;
一般情况下,如果你用esp-idf的例程spi_master配置频率超过26.6Mhz时,会出现以下LOG:

* When work in full-duplex mode at frequency > 26.7MHz, device cannot read correct data. * Try to use IOMUX pins to increase the frequency limit, or use the half duplex mode. * Please note the SPI master can only work at divisors of 80MHz, and the driver always tries to find the closest frequency to your configuration. * Specify ``SPI_DEVICE_NO_DUMMY`` to ignore this checking. Then you can output data at higher speed, or read data at your own risk.

如果需要IOMUX提高SPI速率,则可以做一下配置

在这里插入图片描述

转载地址:https://blog.csdn.net/jdsnpgxj/article/details/100013357 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:esp-idf版本更新及切换方法
下一篇:Java Class对象与反射机制

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月02日 17时07分42秒