Flash基础入门之Dump Flash芯片
小标 2019-03-18 来源 : 阅读 1926 评论 0

摘要:本文主要向大家介绍了Flash基础入门之Dump Flash芯片,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

本文主要向大家介绍了Flash基础入门之Dump Flash芯片,通过具体的内容向大家展现,希望对大家学习Flash基础入门有所帮助。

Flash基础入门之Dump Flash芯片

该博客连载将介绍dump(转储) flash(闪存)芯片的方法,本文是该博客连载的第一部分。本文中,我们将描述如何拆焊flash芯片,以及设计和构建相应的分线板(breakoutboard)。

本博客连载将详细介绍针对嵌入式非易失性存储器的简单而有效的攻击方法。此类攻击允许攻击者执行以下操作:

读取存储芯片里的内容;

修改存储芯片里的内容;

监视源于或对存储芯片的访问,并对其进行修改(中间人攻击)。

我们将讨论以下主题:

拆焊flash芯片;

用KiCAD设计分线板;

制作和微焊PCB;

在IoT设备上安装分线板;

Dump SPI(串行外设接口) flash芯片;

Dump 并行flash芯片;

中间人攻击。

假设你又打开了一个IoT设备,偶然发现了里面的flash芯片。你一定很好奇,想知道其中奥秘。

拆焊 flash 芯片

有两种方法可以读取flash芯片的内容:

直接连线至芯片的引脚上;

拆焊flash芯片,然后把它插在另一块板子上。

选择读取芯片方法的考虑因素之一是集成电路(IC )的封装方式。比如说,直接连线到芯片引脚的方法对使用四侧引脚扁平封装(QFP)的芯片很有效,但是该方法不适用于无可见引脚的芯片。以下例子中的芯片采用球栅阵列封装(BGA),也就意味着芯片上没有可连接的可见引脚,所以我们选择将之拆焊。

我们要拆焊的芯片图片:

此方法优点:

我们提取flash芯片,不会影响板子上的其他元器件。

将芯片从板上完全移除,我们就能研究下面的PCB,并找出连接flash芯片的线路。

可以用换别的东西替换原来的芯片(比如另一个芯片,单片机等等)。

此方法缺点:

板子在缺少元器件的情况下无法使用,如果你想以后继续用这块板子的话,你要把芯片焊回去。

提取的过程中附近的一些部件可能会受损。

如果操作失误的话,可能会损坏flash芯片本身。

所以...拆焊flash芯片,对吧?如果你以前从未尝试过拆焊电子元器件,那么对你来说棘手的部分是同时在所有引脚上熔化焊料。有几种方法可以做到,我们这里选择用热风枪,加热芯片所在的区域,等待焊料熔化后拿掉芯片。

此方法简单快速,但也容易拆焊周围的元器件,所以要当心,不要移动周围的元器件(此刻千万别打喷嚏)。

下面的图片展示了我们拆下的芯片,可以观察下PCB布线。我们可做出一些假设,比如最下面两行很有可能未被使用,因为它们没有在线路上。

用KiCAD设计分线板

我们现在拿那个芯片做什么? BGA布局让人困惑,对于完全相同的芯片,你可以使用5x5或4x6网格。引脚分配同样有趣,通常是针对芯片。你可能也想知道,如果这些引脚全部封装在像这样的网格中,那么如何连接引脚?

方法之一是做一个分线板!在分线板上做一个芯片所有引脚的镜像,而且引脚之间的距离更大,所以你可以轻易地连接引脚。

为了实现这一点,我们首先需要收集关于芯片本身的一些信息。大多数时候,品牌或型号写在芯片上以便于识别。有了这些信息,你可以查找相应的数据手册。如果你无法识别芯片,或者找不到数据手册,则必须在PCB上做一些逆向工作来识别每个信号。

在我们芯片上的第一行显示了品牌:MXIC代表Macronix International。第二行是芯片的型号,我们由此可以找到MX25L3255EXCI数据手册。

我们感兴趣的部分是引脚布局,即数据手册的第7页,介绍了BGA(4x6和5x5两种网格)和SOP8 (8引脚小尺寸封装)。我们可以看到只有8个引脚是有用的,其他引脚被标记为“NC”,意思是“无连接”。

为了连接flash芯片,我们需要一个包含所有必需引脚的PCB,这些引脚要易于连接。

可以用KiCAD来设计PCB,KiCAD是最受欢迎的电子设计自动化(EDA)软件之一。

如果你不熟悉KiCAD,可以参考许多很好的教程,例如KiCAD Quick-Start Tutorial。

设计分线板和设计其他板子的过程相同:

1. 在EEeschema中创建分线板的电路图,并定义相关的元器件,例如flash芯片。

2. 在PcbNew中定义flash芯片的封装形式,这里我们会用到之前看过的数据手册。我们用BGA封装并添加一个4x6网格和两个连接8个有用引脚的1x4连接器。最后一步是布线来连接我们的元器件。

设计已完成,那么如何将KiCAD里的设计做成PCB呢?

制作PCB

PCB一般是两层铜之间夹一层基板。基板通常由FR-4(环氧板)制成,但也可以用其它便宜的材料。在铜层上完成布线后,要除去多余的铜。

有几种技术可以去除不需要的铜,我们尝试了以下技术:

蚀刻;

数控铣。

我们使用蚀刻技术制作了4x6 BGA PCB,并且用数控铣技术制作了5x5 BGA PCB,详见下文。

蚀刻

蚀刻是指使用化学试剂除去金属上未受保护的表面。我们使用墨粉规划线路,并保护需要保留的铜。

我们用热转印法来实现设计。用激光打印机将设计打印在亮面纸上,然后将该纸粘贴到基板上,并施加热量和压力将设计印在铜层上。通常可以使用普通的熨斗来施加热量和压力。我们发现层压机效果更好,因为施加的热量和压力分布更均匀。

下一步就是蚀刻。将板子浸入化学试剂中,除了墨粉覆盖的铜,其余的铜将被去除。

蚀刻后的分线板还带着墨粉:

用丙酮除掉墨粉:

PCB板现在可以进行微焊了,微焊就是焊接微小的元器件,因此需要显微镜。

传统焊接的另一个区别是焊锡,传统焊接使用锡线,而BGA微焊使用锡球。

接下来,我们可以开始重整锡球:

在每个焊盘上放一个焊球,并加热至熔化;

调整芯片和板子;

回流焊。

注:此图为GIF,见附件flash_reballing.gif

正在重整锡球:

最终将芯片微焊在了板子上:

数控铣(xǐ)

另一种技术是用数控铣床来加工铜层,该技术实际上是通过隔离来生成线路,并且保留多余的铜,而不是除掉不需要的铜。

1. 用5x5 BGA构建PCB。4x6版本用于分线板,我们这里设计了5x5版本,以便直接插入通用EEPROM(电子抹除式可复写只读内存)编程器的ZIF(零插拔力插座)插口。正如我们在数据手册中看到的,该芯片采用SOP8封装,因此我们选择模拟DIP8(8引脚双列直插封装)排针,引脚分布与SOP8相同。对于通用EEPROM编程器来说,这就基本上相当于是通过SOP8-DIP8适配器来读取SOP8芯片。

2. 芯片的封装形式与我们为4x6设计的相似,但是对于5x5网格,DIP81x4连接器距离更近,而且为遵循SOP8布局,线路也更复杂,这完全不同于之前那个BGA。

3. KiCAD无法直接生成与数控铣床兼容的文件,因此我们要使用FlatCAM。FlatCAM可以处理Gerber文件,并且可以为数控铣床定义分隔铜线路的轨迹。为了避免短路,我们完全去除了BGA芯片下的一个区域中不需要的铜。

4. 我们将生成的STL文件传输给负责控制数控铣床的bCNC。bCNC的一些功能很好用,例如自动调平,即多点测量电路板的实际高度(因为没有什么东西是完全平的),以及生成下面图片中看到的热图像。

对应bCNC中绿色高亮的轨迹正在加工:

5. 加工好的板子:

近看成品可以看出BGA芯片下的线路:

6. 接下来,我们涂一些阻焊层,这是保护铜免受氧化的特殊绿色层,并用紫外线固化。

7. 阻焊层覆盖的BGA和1x4连接器的焊盘是无法使用的,我们得手动刮开焊盘上面的薄层。

8. 镀锡,在所有焊盘上放置焊锡:

9. 再用数控铣床打洞和切割板子的边缘:

10. 最终的焊有BGA芯片的板子成品,可拿来直接插入通用EEPROM编程器:

因为我们选择模拟SOP8引脚排列,我们只需告诉编程器我们的芯片是SOP8版本!

彩蛋——失败集锦

我们整理了一些失败状况,因为总会发生计划外的事情,但是我们通过这些试验学到了很多东西,现在我们已经准备好进行下一步在IoT设备上安装了:)

热转印并不像听起来那么容易。。。

以合适的深度在数控铣床上加工也不像听起来那么容易。。。

找不到不粘在绿色阻焊层的塑料(后来发现宜家的冻存袋很好用:))

尝试处理绿色阻焊。

第二次尝试用了一个带弹簧的工具:看起来好像还可以,但是实际上连接焊盘的线路被切断了。。。

第三次先加了一些焊锡,想着这样能变厚一些。

弄出来一个很厚的绿色阻焊层的“湖”,无法做紫外线固化,当结冰的湖的表面破裂时。。。


以上就介绍了Flash的相关知识,希望对Flash有兴趣的朋友有所帮助。了解更多内容,请关注职坐标常用软件Flash频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 2
看完这篇文章有何感觉?已经有2人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程