一、FLASH选型核心要素
1. 存储容量规划
首先需要评估项目所需的存储空间,这不仅包括当前需求,还要为未来可能的功能更新和数据增长预留一定的余量。
|
|
|
---|---|---|
小容量程序存储/配置参数 |
|
|
中容量数据存储 |
|
|
大容量数据存储 |
|
|
2. 芯片类型选择
根据你的具体应用场景和性能要求,选择合适的FLASH类型至关重要。
- NOR Flash:
- 特点:支持XIP(eXecute In Place),CPU可以直接从其读取代码执行,读取速度较快,但写入和擦除速度较慢,容量一般较小,成本较高。
- 适用场景:主要用作启动芯片(存储Bootloader)、存储可靠性要求高的小容量固件或配置数据。
- NAND Flash:
- 特点:容量大,成本低(单位容量价格),但接口复杂(Raw NAND),需要ECC(错误校验) 和坏块管理,不支持XIP。可分为SLC、MLC、TLC、QLC等,寿命和性能依次递减。
- 适用场景:适用于大容量数据存储,如文件系统、多媒体数据、用户资料等。
- eMMC (embedded MultiMediaCard):
- 特点:本质是将NAND Flash芯片、控制芯片封装在一起的标准接口芯片。内置Flash控制器,自动处理坏块管理、ECC校验、磨损均衡等复杂操作,对外提供标准eMMC接口,极大简化了设计难度。容量大,性能较好。
- 适用场景:适用于需要大容量存储且希望简化软硬件设计的应用,如嵌入式Linux系统的根文件系统、移动设备、工控设备等。
- SD NAND:
- 特点:可以理解为贴片式的TF卡/SD卡。采用LGA-8等小封装,自带Flash控制器(类似eMMC,免驱动),接口简单(通常为SPI/SDIO),焊接方便,容量适中(128MB/512MB/4GB)。
- 适用场景:适合空间受限(如可穿戴设备)、需要大容量存储但又追求设计简单、稳定性优于插卡式TF卡的RTOS或轻量级应用。
3. 存储单元类型(针对NAND Flash)
若选择Raw NAND或关注eMMC/SD NAND的内在颗粒,需了解其存储单元类型对可靠性影响巨大。
|
|
|
|
|
---|---|---|---|---|
|
|
|
约10万次 |
|
|
|
|
约1万次 |
|
|
|
|
约3000次 |
|
|
|
|
约1000次 |
|
建议:在满足容量需求的前提下,优先选择SLC和MLC,谨慎选择TLC,尽量避免选择QLC。
4. 接口类型
- SPI (Serial Peripheral Interface):
- 特点:引脚少(通常4-6线:SCK, MOSI, MISO, CS等),连接简单,占PCB空间小,通用性强,但速度相对并行较慢。
- 适用:Nor Flash(SPI Flash)、SD NAND、小容量SPI NAND,以及对速率要求不极高的场景。
- SDIO (Secure Digital Input Output):
- 特点:基于SD卡标准,支持更高速度的数据传输。
- 适用:SD NAND、Wi-Fi模块等。
- 并行接口 (Parallel):
- 特点:数据位宽(如8bit, 16bit)传输,速度快,但引脚数量多(数据线+地址线+控制线),布线相对复杂,易受干扰。
- 适用:大容量并行NOR Flash(现已较少使用)、Raw NAND Flash。
- eMMC Interface:
- 特点:高速串行接口,信号线数量适中(CLK, CMD, 4-8位DATA线),协议复杂但由控制器处理。
- 适用:eMMC芯片。
5. 关键性能参数
- 读写速度:关注页编程时间、扇区擦除时间和随机读取速度。Class等级(对于SD NAND/TF卡)或速度模式(如eMMC HS400)是参考。
- 功耗:工作电流和待机电流对电池供电设备至关重要。
- 工作温度:
- 商业级:0℃ ~ 70℃
- 工业级:-40℃ ~ 85℃(许多嵌入式项目要求)
- 汽车级:-40℃ ~ 105/125℃(要求更严苛)
- 封装形式:
- SOP/SOIC:常见于SPI Nor Flash,方便手工焊接。
- WSON/USON:小封装,散热较好。
- BGA:eMMC、大容量NAND常用,引脚多,空间利用率高,但焊接难度大,检查和维修需X光机。
- LGA:如SD NAND,焊接相对BGA简单。
6. 可靠性与寿命
- ECC (Error Correction Code) 需求:
- Raw NAND必须提供足够强的ECC(如每512字节需要校正4bit/8bit/24bit错误),且选用的MCU/专用ECC芯片需支持。eMMC/SD NAND则内置ECC。
- 坏块管理 (Bad Block Management, BBM):
- Raw NAND需软件实现坏块识别、标记和替换。eMMC/SD NAND内置控制器完成。
- 磨损均衡 (Wear Leveling):
- 确保所有存储区块擦写次数均匀,延长整体寿命。eMMC/SD NAND内置。若在Raw NAND上实现文件系统(如LittleFS, SPIFFS)或专用管理算法,需支持此功能。
- 数据保持时间:通常为10-20年,但受擦写次数、存储温度影响。
- 耐久性:即擦写次数(P/E Cycles),见前述存储单元类型。
7. 成本与供应链
- 在满足所有技术指标的前提下,选择性价比高的型号。
- 考虑芯片供货稳定性、长期供货承诺以及第二货源方案,避免停产风险。
- 开发支持:评估供应商是否提供清晰的数据手册、参考设计、样例代码及技术支持。
二、设计注意事项
- 硬件设计:
- 对于高速信号(如eMMC、SDIO),需注意阻抗匹配和走线等长。
- 对于并行总线,注意走线长度尽量一致。
- 适当使用串行电阻(~22Ω – 33Ω)来抑制反射。
-
- 电源去耦:在FLASH芯片的电源引脚附近放置充足的去耦电容(例如100nF + 10uF),以确保电源稳定,减少噪声。
- 信号完整性:
- 上拉电阻:SPI的CS信号、SD卡的DAT线等通常需要上拉电阻(通常10kΩ – 100kΩ),值需参考芯片手册和控制器要求。
- 未使用引脚:根据数据手册处理未使用的引脚,通常建议上拉或下拉。
- 软件与驱动:
- 驱动程序:确保MCU有可靠的底层驱动(SPI、SDIO、eMMC控制器驱动)。
- 文件系统:对于大容量存储,选择合适的文件系统(如FAT32, LittleFS, SPIFFS, ext4等)。LittleFS/SPIFFS等专为Flash设计,自带磨损均衡和坏块管理(对Raw NAND尤为重要)。
- FTL (Flash Translation Layer):对于eMMC/SD NAND,FTL已内置。若直接操作Raw NAND,可能需在软件中实现或依靠文件系统实现部分功能(逻辑地址到物理地址映射、坏块管理、磨损均衡)。
- PCB布局:
- 靠近主控:尽量让FLASH芯片靠近MCU,缩短走线距离。
- 远离干扰源:远离电源、高频信号等噪声源。
- 参考层:信号线下方最好有完整的地平面,提供回流路径。
三、选型流程
- 明确需求:列出容量、速度、环境温度、寿命、功耗、成本等关键指标。
- 初选类型:根据需求确定是选Nor、Raw NAND、eMMC还是SD NAND。
- 筛选型号:在代理商网站或用平台(如立创商城)按参数筛选,列出候选型号。
- 深入评估:仔细阅读候选型号的数据手册,特别注意时序要求、ECC需求(Raw NAND)、封装和推荐工作条件。
- 检查兼容性:确保与所选MCU的接口(如QSPI模式、eMMC版本)完全兼容。
- 评估开发难度:评估自身团队对底层驱动、Flash管理算法的掌握程度。若资源有限,优先选择带控制器的eMMC或SD NAND以降低开发复杂度1。
- 参考设计与评审:寻找官方评估板参考设计。完成原理图和PCB布局后,最好进行设计评审。
总结
为存储芯片FLASH选型,本质上是在容量、速度、可靠性、成本、开发难度之间寻求最佳平衡。
- 若存储小量代码或关键数据且需直接执行,SPI NOR Flash是可靠选择。
- 若需要大容量存储数据且希望最大限度控制硬件和软件(不惧复杂性),可选择Raw NAND(优先SLC/MLC)。
- 若需要大容量存储且希望设计简单快捷、稳定性高,eMMC是成熟方案。
- 若产品空间紧凑(如可穿戴设备)、需要中等容量且追求稳定性和简便性(优于插卡),SD NAND是一个值得考虑的折中方案。
最终决策前,强烈建议搭建实际电路进行测试,尤其要验证读写速度、功耗和长期存储的可靠性。