做存储类产品的工程师,FLASH测试是绕不开的一道坎。不管是U盘、SSD、单片机外挂的SPI Flash,还是消费电子里的eMMC,只要用到FLASH存储,量产前都得经过严格的测试。很多新手觉得FLASH测试不就是写写读读吗,有什么好测的?真到做项目时才发现,里面的坑比想象中多得多。
先说两种最常见的FLASH:NOR和NAND。NOR的特点是随机读速度快、可以直接取指运行代码,一般用来存固件程序;NAND的容量大、写入速度快,一般用来存数据。测试时两者侧重点不一样。NOR更关注坏块管理和读取可靠性,NAND则要重点测ECC纠错、磨损均衡和坏块扫描。
FLASH测试项目其实分好几个层次。第一个是基础功能测试,比如擦除、编程、读取能不能正常工作,这是最基本的。第二个是参数测试,包括读取时间、编程时间、擦除时间、电流功耗这些,看datasheet里的标称值和实际值是否吻合。第三个是可靠性测试,包括高低温循环、数据保持、擦写次数、抗干扰能力这些,考验FLASH在恶劣环境下的稳定性。
量产测试中最常用的设备是自动测试设备(ATE),配合专用的FLASH测试板,能在几秒内完成一颗芯片的全项测试。如果是小批量或者做实验室验证,也可以用FPGA加测试座搭一个简易测试平台。我之前做过一个SPI Flash的小批量测试板,用STM32当主控,配合Python脚本在上位机记录测试数据,成本只有几万块,应付几千颗的小批量完全够用。
实际测试中有几个高频坑。第一个是接触不良,尤其是socket测试座,用久了弹片磨损,导致测试时好时坏。建议定期更换测试座,或者用视觉系统检查芯片放置是否到位。第二个是电源纹波,FLASH对供电要求比较敏感,编程瞬间电流很大,如果电源纹波太大,容易出现编程失败。测试板上的电源电容一定要给足,并且靠近芯片引脚。第三个是温度影响,高低温测试时,擦写时间和读取稳定性都会跟常温下有较大差异,测试参数要根据温度做相应调整。
还有一个容易被忽略的点就是坏块处理。NAND Flash出厂就允许有一定数量的坏块,测试时要把坏块信息记录下来并写入坏块表。如果是做成品测试,还要确认ECC纠错功能是否正常开启,有的时候ECC驱动没开好,明明有ECC硬件却没启用,结果误判成大量坏块。做FLASH测试一定要仔细,因为漏掉一个坏块到客户手里就是数据丢失的大问题。
下一篇:没有了