查看: 774|回复: 0

[经验] Nandflash量产烧录排雷攻略

[复制链接]

该用户从未签到

发表于 2021-1-24 11:35:17 | 显示全部楼层 |阅读模式
分享到:
Nandflash芯片以其高性价比,大存储容量在电子产品中广泛应用。但是,在此量大质优的应用领域,很多客户却痛苦于批量质量问题:专用工具无法满足量产,量产工具却可能出现极大的不良品率,那么究竟要如何解决呢?

其根本原因在于:目前大部分用户并不是很了解Nandflash烧录的复杂性。

用户常采用很直接的方法,即用一颗能正常运行的NandFlash芯片作为母片,在连接编程器之后,点击烧录软件上的“读取”按钮,把数据从芯片里面完整读取出来,再找几颗空芯片,把数据重复写进去。本以为可达到量产的目的,但实际上生产出来的产品却达不到品质的要求,往往会出现批量的产品异常开机或启动的状况!

1、原因分析
原因究竟在哪里呢,在分析之前,那就先得了解一下Nandflash基本的工艺特性:

首先,我们来看NandFlash存储结构,它由多个Block组成,每一个Block又由多个Page组成,每个Page又包含主区(Main Area)和备用区(Spare Area)两个域。其次NandFlash是有坏块的,由于NandFlash的工艺不能保证Nand的Memory Array在其生命周期中保持性能的可靠。

因此在Nand的生产中及使用过程中会产生坏块的。

1、坏块的影响
因为坏块影响了数据的存放地址,用户就不能按常用方法那样,把母片的数据全部读取出来,然后再把数据原原本本拷贝到其他芯片上了,也就产生了传统拷贝机无法量产Nandflash的问题!

既然NandFlash有坏块是无法避免的问题,那就要想办法避开那些坏块;最简单、最有效、最常用的方法就是:跳过!

使用“跳过坏块”,我们很好地解决了NandFlash的坏块问题,原本写到坏块的数据,我们也安全转移到下一个块里面!

地址变化
跳过是一种常用而有效的方法,但是实际上,根本问题还依然存在,细心的人会发现,数据存放的地址也发生了变化!

31.jpg

实际应用中,很多用户会把多个文件数据同时存储到NandFlash上(比如uboot、uImage、Logo、rootfs等烧录文件),并给每个文件在NandFlash存储单元中划分了一定大小的存储空间区域,指定了每个文件存储的起始物理地址块;如果某个区域出现了坏块,为了避开它,势必需要把数据安全往下一块转移,而引起的后果就是后续烧录文件的起始物理地址也随着发生了偏移,这将会导致主控MCU无法通过固定的地址,准确、完整地获取到每个文件的数据,最终造成的结果就是产品异常启动。

2、解决建议
解决建议:分区烧录

分区烧录,用户提前设置好每个文件烧录的起始块地址,无论坏块出现在哪个空间区域,都可以确保每个文件起始块地址都不会发生偏移变化,数据也将根据客户预设方案存放在NandFlash存储区域内,主控MCU也能准确完整读取到每个文件的数据,那么产品就正常跑起来了!

32.jpg


回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条



手机版|小黑屋|与非网

GMT+8, 2024-11-8 03:22 , Processed in 0.121528 second(s), 16 queries , MemCache On.

ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

苏公网安备 32059002001037号

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.