ESP8266下载固件时候对于SPI flash倍速的选择问题 下载本文

内容发布更新时间 : 2024/5/16 6:40:14星期一 下面是文章的全部内容请认真阅读。

ESP8266下载固件时候对于SPI flash倍速的选择问题

个人使用的经验,目前市面上ESP8266生产的参加很多,因为有的厂家为了

节约成本,可能会在flash的选择上面下功夫。多半就是减小容量或者选择质量差的,此处我不说明,自己拆开看,外壳很好拆,自己没事可以拆开看看。特别是新买的模块,可以选择拆开一个,然后分析模式和内存的大小,拆开之后还能使用,但是拆开了使用要远离干扰源

鉴于有的人英文不好,做一下翻译Select the SPI fiash read mode (选择SPI flash的读写模式)

QIO: Quad read and write mode(4倍读写模式) QOUT: Quad read mode(4倍读模式) DIO: Dual read and write mode(2倍读写模式) DOUT: Dual read mode (2倍读模式)

Check your flash datasheet and decided the correct mode that flash support(查看flash数据表,确定你的Flash支持那种模式)

Wifi performance might be better with higher flash r/w speed.(高速flash模式下WiFi性能可能会更好)为了方便介绍,此处我用W25Q32芯片作为介绍,W25Q32采用的是SPI的通讯方式, 从W25Q32的数据手册之中我们可以看到以下内容:W25Q32支持标准串行**接口(SPI),和高速的双倍/四倍输出,双倍/四倍用的引脚:串行时钟、片选端、串行数据I/O0(DI)、I/O1(DO)、I/O2(WP)和I/O3(HOLD)。SPI最高支持104MHz,双倍速是208MHz,四倍速是416MHz。这个传输速率比得上8位和16位的并行Flash存储器。连续读模式允许利用少至8-clocks指令去读取24-bit 地址来实现高效的存储访问,允许真正的XIP(execute in place)操作。 标准SPI指令

该w25q32是通过一个SPI兼容总线组成的四访问:串行时钟信号(CLK),芯片选择(/ CS),串行数据输入(DI)和串行数据输出(DO)。标准的SPI指令使用DI引脚输入串行写入

指令,地址或数据到设备上的上升沿时钟。DO输出引脚是用来读取数据或状态的装置,在下降沿时钟。SPI总线操作模式0(0,0)和3(1,1)的支持。模式0和之间的主要差异模式3是时钟信号的正常状态时,SPI总线主备用数据没有被转移到串行闪存。对于模式0,时钟信号在的下降沿和上升沿,通常是低电平。对于模式3,时钟信号在的下降沿和上升沿,通常是高电平。 双倍SPI指令

W25Q32使用”Fast Read Dual Output and Dual I/O(3B和BBhex)”指令支持双倍速SPI操作。这些指令允许数据以正常速度的两到三倍的在设备间传输。双倍读指令适用于 上电时快速加载代码到RAM 或者 直接从SPI总线上执行代码(XIP) 的情形。当使用双倍速SPI指令时,DI和DO引脚将充当 IO 0和IO 1. 四倍速SPI指令

W25Q32使用”Fast Read Quad Output”、” Fast Read Quad I/O” 、”Word Read Quad I/O” 和 “Octal Word Quad I/O”指令(6B、EB、E7、E3)支持四倍速SPI操作。这些指令允许数据以正常速度的四到六倍的在设备间传输。四倍读指令显著提升连续和随机访问传输速度,这速度满足将代码快速加载到RAM或者直接在SPI总线上执行(XIP)。使用四倍速SPI指令时,DI和DO引脚将充当 IO 0和IO 1 ,WP和HOLD充当IO2 和IO3。四倍速SPI指令要求状态寄存器2中的QE功能位打开。 从ESP8266EX的数据手册之中我们可以看到以下内容: 外置 Flash

ESP8266EX 使用外置 SPI Flash 存储用户程

建议按照如下所示来分配 SPI Flash 容量量。? 不支持 OTA:最少支持 512 kB? 可支持 OTA:最少支持 1 MB? 注意:支持的 SPI 模式:Standard SPI、Dual SPI 和 Quad式,否则下载的固件/程序可能无法正常工作。

从以上可以得出,要想ESP8266EX能够稳定正常的工作,正确的选择模式极为重要。 从ESP8266EX模块设计原理图层面上来做区分,原理图如下:

通过原理图中R3 R4 R5 R6 四个电阻来决定flash的模式, 当 R3=NC,R4=NC,R5=0R,R6=0R,QIO 模式; 当 R3=0R,R4=0R,R5=NC,R6=NC,DIO 模式;

对于自己手中不知道是什么模式的模块,如果有多的,拆一个铁盖开,用个万用表一打就知道。