做工业设备的工程师应该都有这个体会:设备在客户那里跑得好好的,突然断电再来电,存储就坏了。数据丢了,系统起不来了,售后跑现场跑断腿。
这个问题,很多时候是存储芯片的异常上下电测试没做够。
一、为什么要做这个测试?
SD NAND正常工作时,突然把电拔了,会发生什么?
理论上,芯片内部有掉电保护机制,应该能hold住。但理论归理论,实际能不能扛住,得测了才知道。
异常上下电测试,说白了就是模拟各种“意外”:
通过这种测试,可以验证几件事:
第一,电源波动或者突然断电的时候,SD NAND会不会挂掉。第二,关键时刻的数据能不能保得住。第三,重新上电之后,系统还能不能正常跑起来。
米客方德的SD NAND在出厂前都会做这个测试,工业级型号要求通过10000次随机掉电测试。但客户拿到芯片之后,最好也在自己的板子上再跑一遍。因为整机的电源设计和我们的评估板不一样,有些问题只有在客户的板子上才能暴露出来。
二、测试电路怎么搭?
搭一个异常上下电的测试电路,其实不复杂。
下面是以米客方德MKDV1GIL-AST为例的一个测试方案。

需要的材料:
连接方式:
STM32的一个IO口接到继电器的控制端。继电器的负载端接SD NAND的工作电路。
程序里写一个循环:上电→等几秒→断电→等几秒→再上电。反复跑,跑几千次上万次,观察SD NAND有没有出问题。
两种方案的区别:
上面这个方案比较简单,SD NAND直接插在读卡器上,适合快速验证。
如果想测得更细一点,可以把SD NAND直接接到单片机上。这种需要两块开发板:一块专门控制继电器负责上下电,另一块跑正常的工作程序。好处是可以在断电的间隙做一些读写操作,模拟真实使用场景,能发现更多问题。
米客方德的FAE那边有现成的测试代码和电路图,需要的话可以直接找他们要。
三、测试完看什么?
跑完测试之后,重点检查几样东西:
第一,文件系统有没有损坏。 重新上电后,能不能正常挂载?目录还在不在?
第二,最近写入的数据丢了多少。 掉电那一刻正在写的数据,丢了可以理解。但如果之前写好的数据也丢了,那就有问题。
第三,SD NAND还能不能正常读写。 反复掉电之后,芯片会不会彻底不认了?
米客方德工业级SD NAND的规格书里写着通过了10000次随机掉电测试。我们自己测下来,跑个两三万次也没问题。但还是要强调一下:客户自己的板子最好也测一遍。因为整机的电源设计、负载情况都不一样,有些问题只有在自己板子上才能复现。
四、几点建议
测试的时候留意这几个点:
异常上下电测试做扎实了,设备在现场出问题的概率会小很多。对于工控、车载、户外设备这些不好维护的场景,这笔测试投入是值得的。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。