如何给ESP32选择外接SPI Flash
给ESP32选择外接SPI Flash
【前言】: 许多用户在使用 ESP32 做开发的时候,都会碰到如何选择外接 Flash 的难题,因为不同厂商的 Flash 存在很多差异,Flash 支持的工作模式也不同。在这里写个帖子给大家参考.
【如何给 ESP32 选择外接 Flash】
用户在选择 Flash 时,需要注意以下几个方面:
* 工作电压
* 容量
* 工作模式
* 工作环境温度
- 工作电压
这是一个用户在选择 Flash 时很容易忽视但又非常重要的参数,下面列出几个常用的 ESP32 模组的 Flash 工作电压。
* ESP32-WROOM-32: 3.3V
* ESP32-WROOM-32D: 3.3V
* ESP32-WROVER: 1.8V
* ESP32-WROVER-B: 3.3V
- 容量
ESP32 支持的 Flash 最大容量为 128 Mbit(16 Mbyte),推荐用户选择的容量范围为 16~128 Mbit 中选择
- 工作模式
Flash 常用的工作模式有 4 种:DOUT/DIO/QOUT/QIO
* DOUT: 地址为 1 线模式输入,数据为 2 线模式输出
* DIO: 地址为 2 线模式输入,数据为 2 线模式输出
* QOUT:地址为 1 线模式输入,数据为 4 线模式输出
* QIO:地址为 4 线模式输入,数据为 4 线模式输出
用户如果需要使用 QIO 模式,则需要在选择 Flash 时确认该 Flash 是否支持 QIO 模式、
- 工作环境温度
不同用户开发的产品使用的环境温度也不同,可根据实际的工作环境进行选择。在flash手册中都有芯片的工作环境温度说明.
- 烧写工具
在乐鑫官方提供的烧写工具中,有对 SPI flash的操作模式供选择, 如果选择对应的芯片不支持的操作模式,会报错的.
工作模式:
Flash 常用的工作模式有 4 种:DOUT/DIO/QOUT/QIO
* DOUT:地址为 1 线模式输入,数据为 2 线模式输出
* DIO:地址为 2 线模式输入,数据为 2 线模式输出
* QOUT:地址为 1 线模式输入,数据为 4 线模式输出
* QIO:地址为 4 线模式输入,数据为 4 线模式输出
- 三种SPI接口说明:
标准SPI 引脚: CLK, /CS, DI, DO, /WP, /Hold
Dual SPI: CLK, /CS, IO0, IO1, /WP, /Hold
Quad SPI: CLK, /CS, IO0, IO1, IO2, IO3
标准SPI
标准SPI通常就称SPI,它是一种串行外设接口规范,有4根引脚信号:clk , cs, mosi, miso
CLK(Serial Clock):时钟线
CS(Chip Select):片选接口
DI(Serial Data Input):数据输入端口
DO(Serial Data Output):输出输出端口
Standard SPI 为普通序列式闪存,注意它的 DI DO都是单向的
DUAL SPI的读写速度是普通序列式闪存的2-3倍,DI和DO是双向的,称作DI0 DI1;
DUAD SPI的读写速度是普通序列式闪存的4-6倍;DI和DO是双向的,称作DI0 DI1,同时,/WP和/HOLD也变成输入输出管脚,称作DI2 DI3
Dual SPI
它只是针对SPI Flash而言,不是针对所有SPI外设。对于SPI Flash,全双工并不常用,因此扩展了mosi和miso的用法,让它们工作在半双工,用以加倍数据传输。也就是对于Dual SPI Flash,可以发送一个命令字节进入dual mode,这样mosi变成SIO0(serial io 0),mosi变成SIO1(serial io 1),这样一个时钟周期内就能传输2个bit数据,加倍了数据传输
Qual SPI
与Dual SPI类似,也是针对SPI Flash,Qual SPI Flash增加了两根I/O线(SIO2,SIO3),目的是一个时钟内传输4个bit
所以对于SPI Flash,有标准spi flash,dual spi , qual spi 三种类型,分别对应3-wire, 4-wire, 6-wire,在相同clock下,线数越多,传输速率越高。
spi flash一般为NOR Flash
提供部分SPI flash 参考型号列表。
Components |
Manufacturer |
Type |
Capacity |
Working Voltage |
Supporting Wires |
Flash |
复旦微电子(Fudan Micro) |
FM25Q32 |
32M |
2.7~3.6 |
Dual/Quad-SPI) |
Flash |
复旦微电子(Fudan Micro) |
FM25Q16 |
16M |
2.7~3.6 |
Dual/Quad-SPI) |
Flash |
复旦微电子(Fudan Micro) |
FM25F16A |
16M |
|
Dual SPI |
Flash |
复旦微电子(Fudan Micro) |
FM25Q08 |
8M |
2.7~3.6 |
Dual/Quad-SPI) |
Flash |
复旦微电子(Fudan Micro) |
FM25F08A |
8M |
|
Dual SPI |
Flash |
华邦电子(Winbond) |
W25Q32JV |
32M |
|
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q16DV |
16M |
|
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25X16CV |
16M |
|
Dual SPI |
Flash |
华邦电子(Winbond) |
W25X80CL |
8M |
|
Dual SPI |
Flash |
华邦电子(Winbond) |
W25Q40CL |
4M |
|
Dual/Quad-SPI) |
Flash |
北京兆易(GigaDevice) |
GD25Q16CTEG |
16M |
2.7V - 3.6V |
Dual/Quad-SPI) |
Flash |
北京兆易(GigaDevice) |
GD25Q41B |
4M |
|
Dual/Quad-SPI) |
Flash |
北京兆易(GigaDevice) |
MD25D16C |
|
|
|
Flash |
北京兆易(GigaDevice) |
GD25Q32C |
32M |
2.7V - 3.6V |
Dual SPI |
Flash |
ISSI |
ISSI25LQ32/16/08B |
32M/16M/8M |
|
Dual/Quad-SPI) |
|
|
|
|
|
|
|
|
|
|
|
|
Flash |
华邦电子(Winbond) |
W25Q80DV |
8M |
2.7V - 3.6V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q80BL |
8M |
2.3V - 3.6V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q80BW |
8M |
1.65V - 1.95V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q80EW |
8M |
1.65V - 1.95V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q80DL |
8M |
2.3V - 3.6V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q16CL |
16M |
2.3V - 3.6V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q16DW |
16M |
1.65V - 1.95V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q16FW |
16M |
1.65V - 1.95V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q32FV |
32M |
2.7V - 3.6V |
Dual/Quad-SPI) |
Flash |
华邦电子(Winbond) |
W25Q32FW |
32M |
1.65V - 1.95V |
Dual/Quad-SPI) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Flash |
北京兆易(GigaDevice) |
GD25Q80C |
8M |
2.7V ~ 3.6V |
|
Flash |
北京兆易(GigaDevice) |
GD25VQ80C |
8M |
2.3V - 3.6V |
|
Flash |
北京兆易(GigaDevice) |
GD25LQ80B |
8M |
1.65V - 2V |
|
Flash |
北京兆易(GigaDevice) |
GD25VQ16C |
16M |
2.3V - 3.6V |
|
Flash |
北京兆易(GigaDevice) |
GD25LQ16 |
16M |
1.65V - 2V |
|
Flash |
北京兆易(GigaDevice) |
GD25LQ32C |
32M |
1.65V - 2V |
|
|
|
|
|
|
|
Flash |
旺宏(MXIC) |
MX25U8035E |
8M |
1.65V - 2V |
|
Flash |
旺宏(MXIC) |
MX25L8035E |
8M |
2.7V ~ 3.6V |
|
Flash |
旺宏(MXIC) |
MX25V8035F |
8M |
2.3V- 3.6V |
|
Flash |
旺宏(MXIC) |
MX25U8032E |
8M |
1.65V - 2V |
|
Flash |
旺宏(MXIC) |
MX25U8033E |
8M |
1.65V-2V |
|
Flash |
旺宏(MXIC) |
MX25R8035F |
8M |
1.65V-3.6V |
|
Flash |
旺宏(MXIC) |
MX25R1635F |
16M |
1.65V-3.6V |
|
Flash |
旺宏(MXIC) |
MX25U1635F |
16M |
1.65V-2V |
|
Flash |
旺宏(MXIC) |
MX25V1635F |
16M |
2.3V - 3.6V |
|
Flash |
旺宏(MXIC) |
MX25L1633E |
16M |
2.7V-3.6V |
|
Flash |
旺宏(MXIC) |
MX25L1636E |
16M |
2.7V-3.6V |
|
Flash |
旺宏(MXIC) |
MX25L3273F |
32M |
2.65V ~ 3.6V |
|
Flash |
旺宏(MXIC) |
MX25U3235F |
32M |
1.65V - 2V |
|
Flash |
旺宏(MXIC) |
MX25L3233F |
32M |
1.65V - 2V |
|
Flash |
旺宏(MXIC) |
MX25R3235F |
32M |
1.65V-3.6V |
|
Flash |
旺宏(MXIC) |
MX25L3236F |
32M |
2.65V-3.6V |
|
Flash |
旺宏(MXIC) |
MX25L3255E |
32M |
2.7V-3.6V |
|
如何给ESP32选择外接SPI Flash相关推荐
- 如何给 ESP32 选择外接 Flash 以及如何使能 QIO 模式
[前言] 许多用户在使用 ESP32 做开发的时候,都会碰到如何选择外接 Flash 的难题,因为不同厂商的 Flash 存在很多差异,Flash 支持的工作模式也不同. [如何给 ESP32 选择外 ...
- esp8266,esp32中的SPI FLASH 访问模式(QIO QOUT DIO DOUT)
本文 ESP8266 和 ESP32 支持四种不同的 SPI flash 访问模式:DIO.DOUT.QIO 和 QOUT. 这些可以通过 esptool.py write_flash 的 --fla ...
- 基于ST MCU( STM32L431RCTx) SPI模块外接SPI FALSH的案例
文章目录 1.相关开发环境 2.SPI1 外接SPI FLASH 3.SPI FLASH初始化 3.1 SPI FLASH支持SPI MODE0/3的通讯控制 3.2 SPI 硬件CRC 不需要DIS ...
- Arduino应用开发——spi flash(以esp32和w25qxx为例)
Arduino应用开发--spi flash 目录 Arduino应用开发--spi flash 前言 1 硬件介绍 1.1 模块简介 1.2 硬件连接 2 软件开发 2.1 寄存器介绍 2.2 编程 ...
- ESP32系列:三线SPI硬件设计及程序驱动设计(SPI FLASH为例)
(1)三线SPI硬件设计 首先,ESP32是支持三线制和四线制的,三线制为半双工通信,四线制为全双工通信.如果你们用的芯片不支持三线制,就不要再折腾了,支不支持三线制,看芯片的datasheet.如图 ...
- 乐鑫Esp32学习之旅28 分享在 esp32 SDK实现驱动 Flash W25Q32 的封装,扩大容量存储更多的资源。(开源源码工程)。
本系列博客学习由非官方人员 半颗心脏 潜心所力所写,仅仅做个人技术交流分享,不做任何商业用途.如有不对之处,请留言,本人及时更改. 系列一:ESP32系列模组基础学习系列笔记 1. 爬坑学习新旅程,虚 ...
- ESP32 IDF LVGL8.0 flash 外部字库显示 中文显示
我从stm32一路学到esp32,发现这款芯片挺好玩的,主要是还是stm32太贵了,stm32主要是很多坑有人遇到了,并给出了解决方法,esp32这方面就少点,有时候找不到的,只能靠自己了. 本文使用 ...
- ZYNQ开机挂载SPI FLASH中的jffs2文件系统
目录 写在前面 Vivado工程建立 petalinux工程建立 下载程序,开机测试 没成功的话看这里 写在前面 做类嵌入式开发很久了,从51到STM32,Arduino,ESP8266,ESP3 ...
- FPGA配置 - 基于SPI FLASH的FPGA多重配置(Xilinx)
原文地址:http://www.elecfans.com/emb/fpga/20140124334884_2.html IPROG指令的作用是对FPGA芯片进行复位操作,该复位操作对FPGA内部的应用 ...
最新文章
- 串口接收数据与分析处理
- ORACLE数据库系统结构
- linux vsftpd架设
- 18 个 Python 高效编程技巧,Mark!
- win7如何关闭密码保护共享
- 今年的 618,你清空的不仅仅是购物车,还有焦虑和迷茫
- Zabbix添加nginx监控项
- VSCode下载安装最新详细教程2022(win10)
- 工业电气自动化及电工电子技能考核实训平台(高级版)
- JavaScript里的语句用分号结尾是个选项吗
- 华硕raid 0 安装linux,ROG Maxius IX主板技巧篇:组建RAID 0
- 【Unity】3D雷霆战机
- 正片叠底(Multiply)和滤色(Screen)是两种基本的混合模式
- abp.ajax get,ABP入门系列之Json格式化
- 对接亚马逊 ads api( Amazon Advertising API) 第三章:对接 Sponsored Products
- 027 反三角函数的求导公式推导
- SiC MOSFET驱动电压的分析
- 淘宝接口 TopAPi
- 红烧牛肚的做法大全 红烧牛肚怎么做好吃
- qt 5.0.2 vs addin 安装错误 Unable to find a Qt build!
热门文章
- linux之top命令详解
- FICO入门1:什么是FICO?
- VS同一解决方案的不同项目的命名空间名字唯一
- iphone html5 摄像头,苹果为何容忍iPhone6摄像头突出?
- ns2.35中的IEEE802.11e模块移植
- (PTA)7-3 选民投票 编程统计候选人的得票数。有若干位候选人(n<=10),候选人姓名从键盘输入(候选人姓名不区分大小写,姓名最长为9个字节),若干位选民,选民每次输入一个得票的候选人的名字
- 论文学习:Feature Importance-aware Transferable Adversarial Attacks
- Mysql导入数据库
- 旧的机器装了XP以后频繁死机
- centos防火墙配置端口白名单限制