维修佬 发表于 2021-11-6 19:58:08

求助三星Nand flash如何拷贝数据

本帖最后由 维修佬 于 2021-11-7 08:37 编辑

这次闯祸了,客户的一台高档仪器坏了,没有任何显示,拆开后发现有短路,定位到三星Nand flash芯片损坏,遂问客户借了一台好的,本以为读取一下程序,拷贝到新的芯片里面就搞定了,谁知道写进去以后还是不能用,悲剧的是好的那个芯片复原后也挂了???,求助各位NAND芯片是不是不能这样直接读取写入?如果再问客户借一个好的,会不会出现同样问题?

Clamfly 发表于 2021-11-6 21:43:52

本帖最后由 Clamfly 于 2021-11-6 22:28 编辑

一般不能, NAND有坏块这个因素, 每片NAND上的坏块都不一样的, 软件上会做坏块管理和remap(简单地说是这样), 硬复制的话会将有效数据写到新片的坏块上, 各种可能死法都有.
SLC还好, MLC以上就不能硬复制了. 一时间看不出来你那个是SLC还是MLC还是别的.

另外, NAND的浮栅极会漏电的, 漏得多了储存在上面的数据就会丢, 高温会极大地加剧这个漏电, 我测试过之前手上的一个MLC, 125度20分钟左右就到达ECC能纠正的最大错误率了, 更严酷一点就丢数据了.
你这个两片都吹过了吧......估计数据bye bye了, 默哀.

维修佬 发表于 2021-11-6 22:00:38

Clamfly 发表于 2021-11-6 21:43
一般不能, NAND有坏快这个因素, 每片NAND上的坏快都不一样的, 软件上会做坏快管理和remap(简单地说是这样), ...

感谢,那我如果问客户再借一个好的,有没有可能复原?如何有效的读出里面的数据并写入新的芯片里

Clamfly 发表于 2021-11-6 22:02:22

本帖最后由 Clamfly 于 2021-11-6 22:31 编辑

你可以试着将你读出的数据bin, 重新写入到你拿来参考的那个NAND上(坏块分布不变所以没问题), 然后用尽量低温的焊锡来焊接, 或许可能将你拿来参考的那个设备救回来.

---------------------------------
不好意思, 我想多了, 忘了你是高温吹下来的, 读出bin之前数据就可能已经乱了. 没解的.
写NAND就别想了, 在我这边看来, 完美的方法是原厂烧录. 其它的直接拷贝都是有隐患的.

三世执戟 发表于 2021-11-6 22:05:57

>如果问客户再借一个好的

很可能会再坏1台。拆下来的最好能备份数据,NAND还要备份OOB数据。

NAND因为有坏处,可能无法对拷,原因上面有小伙伴细说了。

另外即使没有坏块,每台设备也有自己的校准数据,序列号这些。
所以复制过来的也末必能用。除非把这些细节都摸清楚。

Clamfly 发表于 2021-11-6 22:11:03

楼上正解.
还可能有防拷贝校验, 这是上层软件很可能做的事情.

armok. 发表于 2021-11-6 22:13:35

“求助三星Nand flash烧录”标题不合格。请自行修正。

帖子标题必须能充分说明帖子的内容。如你要问AVR的ADC如何才能测量得比较准确,“AVR的ADC如何消除干扰测量得比较准确?”是合格的标题。不合格举例:
    1:小女子冰天雪地裸体跪求解决方法
    2:救命啊...
    3:高手请出招,一个无法解决的AVR问题
    4:一个困扰学习单片机初学者,惊动单片机开发者的难题
    5:AVR的ADC测量   (点评:你到底是问问题,或是有技术心得与大家分享?)

wyn20007 发表于 2021-11-6 23:49:19

高温会损坏

维修佬 发表于 2021-11-7 01:07:53

感谢各位回复,已经挂掉2台进口仪器了,所以我想知道是不是还有可能,通过拷贝的方法,安全的读取一台好的仪器数据,写到新的nand里,从而救活这2台损坏的仪器?

armok. 发表于 2021-11-7 07:16:58

“求助三星Nand flash拷贝出错解决方法  ”标题还是不合格。请自行修正。

帖子标题必须能充分说明帖子的内容。如你要问AVR的ADC如何才能测量得比较准确,“AVR的ADC如何消除干扰测量得比较准确?”是合格的标题。不合格举例:
    1:小女子冰天雪地裸体跪求解决方法
    2:救命啊...
    3:高手请出招,一个无法解决的AVR问题
    4:一个困扰学习单片机初学者,惊动单片机开发者的难题
    5:AVR的ADC测量   (点评:你到底是问问题,或是有技术心得与大家分享?)

chenerbox2 发表于 2021-11-7 07:49:25

本帖最后由 chenerbox2 于 2021-11-7 07:50 编辑

有的编程器可以测试坏块,用之前先看一下,挑那些保存数据的地方没有坏块的,感觉5608这种,虽说是个nand,用过几块没发现有坏块,你拆下来读一下装上去应该是不可能被系统发现的

我用的k9f1g08就是这样操作的,linux的系统,仪表用的,一片也就是几个坏块

Clamfly 发表于 2021-11-7 08:04:49

我好奇的是损失有多大?

NAND正规使用的话, 软件要附带很多东西的(mapping/坏块检测替换/均衡/...), 可以说是用软件补足硬件的天生缺陷, 正常设计的产品里, NAND上除了放用户数据外, 还要额外的空间放这些管理NAND的管理数据(简单理解是这样), 这些"管理数据"是这片NAND独有的, copy到别的器件上是没有意义的. 要完美修复你要很清楚这上面跑的NFT栈的细节, 这是只有原厂才有的信息. 我说的是正规使用的情况, 那些将NAND当成NOR用的野路子不在此列(这种"野"法反而可以用硬copy,反正都没规则可言了)

另外5楼说的很清楚了, 除了储存这块, 整体上还有一些不能直接copy的因素, 即使copy了储存层面没问题, 整个机器还是不能用.

LZ这事我觉的还是认栽交给原厂吧, 固件有壁垒, 硬修的话搞不好会坑死客户.

chenerbox2 发表于 2021-11-7 08:16:57

Clamfly 发表于 2021-11-7 08:04
我好奇的是损失有多大?

NAND正规使用的话, 软件要附带很多东西的(mapping/坏块检测替换/均衡/...), 可以 ...

正规的这么说没错, 但是这个板子cpu 应该是个 三星2440, 有这么厉害吗?

Clamfly 发表于 2021-11-7 08:22:10

chenerbox2 发表于 2021-11-7 08:16
正规的这么说没错, 但是这个板子cpu 应该是个 三星2440, 有这么厉害吗?

正规商用产品不是开发板, 不是一个级别的. NAND要用好, 绝不能野, 否则售后有受的.

Clamfly 发表于 2021-11-7 08:26:31

本帖最后由 Clamfly 于 2021-11-7 08:35 编辑

chenerbox2 发表于 2021-11-7 07:49
有的编程器可以测试坏块,用之前先看一下,挑那些保存数据的地方没有坏块的,感觉5608这种,虽说是个nand,用过 ...

要吐槽的地方好多, 无力了... 只能说SLC真好, 还有没死过真好.


------------------------------------
好吧, 我还是写了.
原厂NAND的坏块标记一般是放在各个block内某固定page结构的OOB区域的, 是可以erase掉的, 除非你手上拿到的是原厂片, 其它量产过数据的NAND器件, 坏块信息已经被转换成别的更有效的数据结构存在另外合适的地方, 原始的坏块标记一般弃用, 这是NFT栈的常规设计. 而其它好块的OOB区域会根据NFT的设计写上管理信息, 因为写的位置一样, 写的数据可能与原厂坏块标记可能相似, 一般已经无法分辨哪个是原始坏块标记, 哪个是后来写的NFT管理数据了.
你要去挑LZ那两块NAND上的好块来dump数据, 不可能的...
而且即使dump出来了, 要怎么写到新片上? 跳过新片上的坏块写? NFT在NAND上的数据结构笼统说是地址相关的树状结构哦, 这样搞所有地址都乱了哦.头好痛...

还有, 市面上的那些编程器都只能判断没用过的NAND, 而且都很水, 是个摆设.

维修佬 发表于 2021-11-7 08:29:25

Clamfly 发表于 2021-11-7 08:04
我好奇的是损失有多大?

NAND正规使用的话, 软件要附带很多东西的(mapping/坏块检测替换/均衡/...), 可以 ...

原厂已经联系不上了,10年前购买的单价是一台3万多,这2台都超过7万了,关键是现在还买不到

Clamfly 发表于 2021-11-7 09:14:00

尝试倒腾下看能不能把后来借的抢救回来吧.
剩下的可能真是些非常规手法了(野路子), 我个人觉得成了也是埋坑, 我帮不上了.

redroof 发表于 2021-11-7 10:19:01

chenerbox2 发表于 2021-11-7 08:16
正规的这么说没错, 但是这个板子cpu 应该是个 三星2440, 有这么厉害吗?

2440已经跟二十年前的电脑差不多性能了,当然可以带上全套的坏块管理系统。
所有用nand flash的都得带上坏块管理啊,没有不带的选项。就像人都得吃饭喝水一样自然。
nand flash里面的数据只能逻辑拷贝,不能物理拷贝,这是常识。除非你精确知道它内部的flash文件系统的细节

Clamfly 发表于 2021-11-7 10:26:43

现在的编程器都附带一堆NAND相关的功能, 误导了很多人, 唉.

redroof 发表于 2021-11-7 10:33:24

Clamfly 发表于 2021-11-7 08:26
要吐槽的地方好多, 无力了... 只能说SLC真好, 还有没死过真好.




常见的flash文件系统应该就那么几种吧,而且都是开源的。如果原厂没做加密什么的,那么原则上应该能做个板子,识别他们的文件系统,做逻辑拷贝。只是工作量问题。

Clamfly 发表于 2021-11-7 10:35:57

本帖最后由 Clamfly 于 2021-11-7 10:46 编辑

redroof 发表于 2021-11-7 10:33
常见的flash文件系统应该就那么几种吧,而且都是开源的。如果原厂没做加密什么的,那么原则上应该能做个 ...

用开源的话应该就是这样, 不知道LZ的WinCE系统里面的怎样, 我觉得应该是闭源的.

另外, 也有只用NFT再在上面叠加通用文件系统的, NFT的话, 闭源的多去了.

shandian007 发表于 2021-11-7 10:36:34

本帖最后由 shandian007 于 2021-11-7 10:40 编辑

如果知道原厂家所采用的的坏块管理算法,需要在NAND烧写器上选择对应的算法,这样读出和写入的数据才能正确。如果采用特殊坏块算法,需要向烧写器厂家定制。
你这个什么资料都没有,应该是很难修好了。

******************添加图片*********************************

redroof 发表于 2021-11-7 10:53:40

Clamfly 发表于 2021-11-7 10:35
用开源的话应该就是这样, 不知道LZ的WinCE系统里面的怎样, 我觉得应该是闭源的. ...

对精密仪器来说,文件系统只是第一步。就算人家不做任何序列号加密什么的,校准值总是得有的。你除非拿到之前那个仪器内部的校准值,不然还是没戏

Clamfly 发表于 2021-11-7 10:55:59

redroof 发表于 2021-11-7 10:53
对精密仪器来说,文件系统只是第一步。就算人家不做任何序列号加密什么的,校准值总是得有的。你除非拿到 ...

是啊, 5楼已经说明白了. 12楼也说了. 奈何LZ一身蚁啊.

redroof 发表于 2021-11-7 11:27:30

本帖最后由 redroof 于 2021-11-7 11:29 编辑

Clamfly 发表于 2021-11-7 10:55
是啊, 5楼已经说明白了. 12楼也说了. 奈何LZ一身蚁啊.

现在的大部分仪器设备,从设计上根本就不能由非原厂来维修。我们见过很多客户拿给第三方维修,搞得完全没有维修价值了又想给我们修的,那样我们自己也没办法了。。。
曾经有个搞笑的第三方维修者,把我们交换机芯片拆走了又没换新的,然后告诉客户说不能修。。。
交换机芯片里面确实没程序啊,也没有校准值,如果坏了只要他能换个好的,真能用的。

dz20062008 发表于 2021-11-7 21:33:18

nand flash高温数据会挥发的,所以我焊接emmc都比较小心的。

dz20062008 发表于 2021-11-7 21:43:24

tsop48应该不用高温就能吹下来的,不明白为啥会搞坏。我经常搞反了也没烧坏过。nand flash编程器都很贵,都是几万一台。

shuiluo2 发表于 2021-11-7 21:47:40

学习了,原来MLC也要这么小心,难怪以前接触Linux开发板时,有板商为竞争降本,将SLC换成MLC,引起很大争议。当然最后很多都换用MLC了,因为SLC价格太高了。

Clamfly 发表于 2021-11-7 21:58:32

dz20062008 发表于 2021-11-7 21:43
tsop48应该不用高温就能吹下来的,不明白为啥会搞坏。我经常搞反了也没烧坏过。nand flash编程器都很贵,都 ...

我测试的那个MLC没有坏, 只是好多ECC错误, 数据丢了, 片子功能还是好的(性能可能退化了).
LZ那个应该是SLC, 不知道是怎么搞下来的. 理论上SLC要耐折腾些, 但没试过.

dz20062008 发表于 2021-11-9 02:03:42

Clamfly 发表于 2021-11-7 21:58
我测试的那个MLC没有坏, 只是好多ECC错误, 数据丢了, 片子功能还是好的(性能可能退化了).
LZ那个应该是SL ...

我焊接mlc emmc后如果高温过,只要能识别就没事,低格式化后就会恢复性能,芯片物理上没损坏劣化。不识别怀疑是内置固件丢失。镁光,闪迪emm焊接怕热,东芝最不怕热,三星海力士其次。所以你的mlc。ecc报错只是说明数据丢了,不代表存储单元坏了,编程器低级格式可修复

dz20062008 发表于 2021-11-9 02:10:34

维修佬 发表于 2021-11-6 22:00
感谢,那我如果问客户再借一个好的,有没有可能复原?如何有效的读出里面的数据并写入新的芯片里 ...

维修行业修仪器是大忌讳,特别是计量用具。仪器一般都是需要校准,所用元件都是有特殊要求,修仪器是一个特殊维修专业,仪器修了就需要校准。有些非仪器电路也有校准,比如激光通讯激光驱动芯片与驱动元件都是做过匹配的。

Clamfly 发表于 2021-11-9 06:57:56

dz20062008 发表于 2021-11-9 02:03
我焊接mlc emmc后如果高温过,只要能识别就没事,低格式化后就会恢复性能,芯片物理上没损坏劣化。不识别 ...

我们都不用编程器的{:smile:}
emmc内部有固件, 原厂出厂的器件有抗一次回流焊的保证, 多次就难说了.

fsclub 发表于 2021-11-10 20:58:41

死马当活马医,再借一台,不要拆FLASH,直接在IO相连的别的焊盘上到编程器读数据。再烧录到新的已经 焊接好的板子上,也飞线,可以一试。

redroof 发表于 2021-11-10 22:12:15

fsclub 发表于 2021-11-10 20:58
死马当活马医,再借一台,不要拆FLASH,直接在IO相连的别的焊盘上到编程器读数据。再烧录到新的已经 焊接好 ...

看他的烧写器是否支持wince文件系统了
有坏块几乎是必然的,两个flash的块坏位置不同也是必然的。所以强行拷了几乎肯定不能用,除非你的目标flash是特挑的无坏块的

fsclub 发表于 2021-11-11 00:12:29

redroof 发表于 2021-11-10 22:12
看他的烧写器是否支持wince文件系统了
有坏块几乎是必然的,两个flash的块坏位置不同也是必然的。所以强 ...

主要是程序不一定写满FLASH,坏的不一定在程序区

zhanyanqiang 发表于 2024-6-11 15:34:32

{:smile:}学到不少
页: [1]
查看完整版本: 求助三星Nand flash如何拷贝数据