每个项目都缺个 "数字储物柜"——SPI NOR Flash 都用来干啥?
做嵌入式开发的工程师可能都有这种感受:不管项目规划时主控Flash留了多少余量,开发到中后期总会发现——又不够了。
Bootloader占一块、主固件占一块、OTA备份占一块、参数区和UI资源再占一点,堆着堆着就满了。
这时候最常见的解决方案就是:外挂一颗SPI NOR Flash。

为什么是SPI NOR Flash?
接口少、成本低、稳定可靠,是它在嵌入式系统里被广泛采用的主要原因。
SPI NOR Flash通常走3.3V单电源供电,可工作在-40℃到+85℃的工业级温度范围,深度掉电模式下的电流可以低到0.3µA左右。数据保存时间可达20年以上。它既能存放启动固件和配置参数,也能存UI资源,基本可以一站式解决板载Flash容量不够的问题。
几个真实的使用场景
智能插座:MCU内部Flash只有128KB,但需要跑蓝牙协议栈和UI动画。外挂一颗4Mbit(0.5MB)的SPI NOR Flash,用来存蓝牙协议和UI资源,插座就能正常工作了。
工业控制器:启动时需要加载多个参数表,数据量比较大。常见做法是用MCU自带的Flash跑固件,外挂一颗8Mbit(1MB)的Flash专门放参数。
智能路由器:做云升级时,主CPU和子CPU需要并行读取新镜像。16Mbit(2MB)甚至更大容量的SPI Flash可以同时放下双镜像和GUI资源,让升级过程更可靠。
只要设备功能一升级,工程师就开始觉得"Flash不够大"。外接SPI NOR Flash就成了最直接的解决办法。
选型时主要看什么
如果项目正在评估SPI NOR Flash,以下几个维度通常需要提前确认:
容量:先算一下固件有多大、OTA要不要双备份、有没有UI或语音资源。常见档位是4Mbit、8Mbit、16Mbit,往上还有32Mbit、64Mbit、128Mbit。
电压和封装:主控支持3.3V还是1.8V?PCB上打算用SOP-8(150mil或208mil)还是WSON-8?不同封装的焊接方式和占板面积不一样,需要提前确认。
接口速度:需不需要Quad SPI?支不支持DTR(双沿读取)?如果MCU要从Flash直接执行代码(XIP模式),读取速度就直接影响系统启动时间。
工作温度和功耗:产品要在什么环境下用?消费级-40℃到85℃通常够用,工业级可能需要到105℃。电池供电的设备要特别关注深度掉电电流和待机功耗。
安全需求:需不需要唯一ID来做设备认证?要不要OTP安全寄存器来存密钥或防拷贝?
供应和兼容性:项目量产后能不能稳定拿到货?有没有备选的兼容型号?
几个常见的容量档位
市面上主流的SPI NOR Flash容量从4Mbit到256Mbit都有,不同容量对应不同场景:
4Mbit(0.5MB) :适合蓝牙设备、简单IoT传感器,存放协议栈和小规模配置数据
8Mbit(1MB) :工业控制器参数存储、带简单UI的终端设备
16Mbit(2MB) :智能路由器、带OTA和GUI的中端设备
32Mbit(4MB)及以上 :需要OTA双镜像、语音资源包、复杂UI的项目
很多工程师的选型逻辑是"先上个够用的,预留一点余量",所以32Mbit和64Mbit在IoT和工业控制板上出现频率特别高。
小结
SPI NOR Flash在嵌入式系统里扮演的角色其实挺朴素的——主控Flash不够用的时候,它来补位。不抢眼,但几乎所有需要OTA、需要UI、需要参数存储的设备都离不开它。
选型的时候不用追求最大容量,先算清楚项目实际需要多少,再往上留一点余量就够了。
参考资料:各厂商SPI NOR Flash数据手册及公开技术资料。本文仅分享选型思路,不涉及具体品牌推荐。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
