【前言】: 许多用户在使用 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 |
|