0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何读取、修改嵌入式产品Flash中内容?

jf_pJlTbmA9 来源:STM32嵌入式开发 作者:STM32嵌入式开发 2023-10-26 15:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将介绍如何拆焊Flash芯片,设计及制作相应的分线板。了解对嵌入式设备的非易失性存储的简单有效攻击手段。这些攻击包括:

读取存储芯片内容

修改芯片内容

监视对存储芯片的读取操作并远程修改(中间人攻击)

想想,当你拆开一个嵌入式产品,却被挡在Flash之外,好奇的你一定想对它一探究竟。

那么,下面我们就开始。

拆焊Flash芯片

为了读取Flash芯片的内容,有以下两个基本途径:

直接将导线连接到 芯片的引脚

把芯片拆下来,插到另一块板子上

下面介绍的Flash为BGA(球形栅格阵列)封装——无外露引脚。因此,只能选择拆焊的方法。

wKgaomUD9DOAZGx9AADcv1yw8T4642.jpg

图:目标芯片

拆焊法的优点:

可避免对电路板上其他器件造成影响;

可以很容易看到芯片底部的布线;

可用其他芯片或微控制器代替原芯片。

一些不便之处:

电路在缺少完整器件的情况下无法运行;

在拆卸过程中,一些邻近器件可能被损坏;

如果操作不恰当,Flash本身可能毁坏。

OK,拆焊是吧?你看,下图所示的热风枪简直就是神器。只要将芯片周围加热,便可以很容易地拿下芯片:

这种办法简单、快速只是可能伤及无辜——焊掉邻近的元件,所以,务必小心翼翼。

下图显示芯片拆下后PCB的布线。观察图片,猜想底部的两列引脚为空引脚,因为他们压根就没接入电路。

wKgaomUD9DmAKURmAAChtULcCsM018.jpg

图:拆焊下来后

KiCAD定制分线板

现在该做什么?BGA封装简直就是一团糟,依然无法外接导线。

一种可行的方法是制作分线板。通常,分线板是将芯片的所有针脚的位置“镜像”下来,这样就能将芯片的引脚引接出来。

为此,我们首先要搜集芯片的相关信息。大多数情况下,芯片的型号都印制在芯片上,这样我们就很容易识别。如上图,芯片上第一行为MXIC代表Macronix International公司,第二行为芯片的具体型号MX25L3255EXCI datasheet 。以下为datasheet资料:

wKgZomUD9DuAUkyzAAD881Kmn1Q598.jpg

图:针脚排布

PCB的设计可由KiCAD ,常用的EDA软件实现。

分线板的设计过程与其他PCB板一样:

新建电路板,画出电路简图,标明元器件的具体型号

确定芯片的具体尺寸

根据之前datasheet的资料。我们添加1个4×6的网格作为整个芯片的BGA封装,2个1×4的网格作为连接芯片8个有效引脚的接线柱。最后一步是,用线路将这些器件连接起来:

wKgZomUD9DyAB2mVAAFHYwdlL2U146.jpg

图:step2

转接板的设计到此为止,接下来是如何把设计转化成的PCB。

PCB制作

PCB就像是由两层铜和一层基板压制成的三明治,导线分布在铜上面。

根据制作流程,分为:

蚀刻法

数控铣法

以下为两种方法的具体步骤。

蚀刻法

蚀刻,即是用化学药品逐步除去铜的过程。我们先用油墨保护覆铜板上的线路及要保留下来的铜。

1、首先,用热转印法制作PCB。PCB电路图用激光打印机打印在亮光纸上。然后,把亮光纸紧贴在覆铜板上,加热和施以压力,使亮光纸上的电路图转印到覆铜板上。通常,这个过程用熨衣服的熨斗即可完成,但是专用的压制器会使加热及受力更加均匀,更容易成功。

2、接下来是蚀刻,将整块PCB板浸没在腐蚀液,以此来去除多余的铜。

蚀刻后的分线板,转印的墨粉还附着在上面:

wKgaomUD9D6AcyW0AACJPnFxP_0307.jpg

图:step3

除去墨粉后:

wKgaomUD9D-AVQ3GAADBVEOBJgQ089.jpg

图:step4

现在可以准备手工焊接了。微型焊接与正常焊接一样,只是器件的尺寸极小,因此需要借助显微镜。

此外,传统的焊接用的是线状的焊锡丝,而BGA微型焊接用的是锡球。

wKgZomUD9EGAf9tcAAFUAFclZbY438.jpg

图:step5

接下来,开始重整锡球:

将一个新的锡球放置在凹槽上,加热,熔化锡球;

校准芯片和板子;

回流。

wKgZomUD9EKAJUOaAADtdbOVgeQ478.gif

图:step6

锡球重整完成:

wKgaomUD9EOAdIgDAAFKi4v5j_4008.jpg

图:step7

芯片焊接完成后的最终结果:

wKgZomUD9EWAennAAACZkJo5lV4301.jpg

图:step8

数控铣

作为替代方法,数控铣仅是将需要的线路和剩余的铜隔离开来而已。

(1)5X5的BGA通常用于制作 PCB,而4X6的常用于分线板。我们设计5X5的是为了该分线板可以直接插接在通用EEPROM 编程器的ZIF插槽里,电路简图如下:

wKgaomUD9EaAJC-8AAB5xgRiXG4837.jpg

图:step9

(2)芯片的尺寸与前面设计的4X6的一样,只是网格变成5X5,板上的布线也稍显复杂:

wKgZomUD9EiASqLVAAEbyvO-Tjs872.jpg

图:step10

(3)由于KiCAD无法直接生成与数控铣兼容的目标文件,因此,我们用Flatcam接收Gerber文件并确定数控铣隔离的导线的路径:

wKgZomUD9EqAbwWsAAEdd9EnjPk433.jpg

图:step11

wKgaomUD9EuAGmcDAAFE0DKIyvU211.jpg

图:step12

(4)接下来将生成的STL文件导入bCNC——数控铣的终端控制程序,如下图所示:

wKgZomUD9E2Af8zGAACTHQrqZTs312.jpg

图:step13

雕刻过程中:

wKgaomUD9E-APSeRAABOxw5bK-8748.jpg

图:step14

(5)板子雕刻完成:

wKgaomUD9FCAfq21AAEVqB02Sdo284.jpg

图:step15

最终结果:

wKgZomUD9FKAZdZGAAE617YUm5g340.jpg

图:step16

(6)下一步,涂覆阻焊层,保护铜不被氧化,并用紫外灯固化:

wKgaomUD9FSADgKgAADbmQS6klI202.jpg

图:step17

wKgZomUD9FWAT5o2AABY3qjurTs645.jpg

图:step18

(7)阻焊层覆盖了BGA的铜片及1X4的接线柱,我们得刮掉这个薄层,使铜片露出来:

wKgZomUD9FaAMStKAAEdoA_DpDI310.jpg

图:step19

(8)给各个节点焊锡:

wKgaomUD9FiAMdyMAAE0fdz8UeQ693.jpg

图:step20

wKgZomUD9FqAU8bUAACY0gDPmYw340.jpg

图:step21

(9)回到数控铣,打孔,切削PCB的边缘:

wKgaomUD9FyACspEAAClpe3YUbM582.jpg

图:step22

wKgaomUD9F6AbyokAAIAusNnsBI580.jpg

图:step23

(10)最终成品,BGA焊接在板子上,准备插到EEPROM编程器上:

wKgaomUD9F-AY_4wAACJ_sjkbIc106.jpg

图:step24

结论

了解了如何拆焊Flash芯片和如何设计PCB,以及制作PCB的两种不同方法。

来源:STM32嵌入式开发
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    462

    文章

    53534

    浏览量

    459106
  • pcb
    pcb
    +关注

    关注

    4391

    文章

    23742

    浏览量

    420756
  • 嵌入式
    +关注

    关注

    5186

    文章

    20146

    浏览量

    328816
  • FlaSh
    +关注

    关注

    10

    文章

    1715

    浏览量

    154705
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言在嵌入式开发的应用

    C 语言在汽车电子控制系统开发的主导地位。 2、设备驱动程序 设备驱动程序是嵌入式系统连接硬件和软件的桥梁,它负责实现嵌入式系统与外部设备之间的通信和控制。C 语言由于其对底
    发表于 11-21 08:09

    嵌入式和FPGA的区别

    用于芯片量产前的功能验证。 架构与工作原理差异 嵌入式系统采用顺序执行架构,基于冯·诺依曼或哈佛体系结构,程序指令按顺序从存储器读取并执行。这种架构灵活但效率相对固定。 FPGA则是并行处理
    发表于 11-19 06:55

    嵌入式系统的定义和应用领域

    嵌入式系统,简而言之,就是一种专为特定设备或装置设计的计算机系统。它们通常配备一个嵌入式处理器,其控制程序被存储在ROM。这些系统在许多日常用品中都有广泛的应用,例如手表、微波炉、录像机和汽车等
    发表于 11-17 06:49

    还在用PDF文档查资料?飞凌嵌入式产品在线文档」让您的开发效率狂飙

    产品在线文档以版本迭代的实时性、内容检索的高效性、场景适配的兼容性、互动体验的连接性,解决了传统PDF手册的痛点,大大提升了用户获取信息的效率,让技术支持服务质量更进一步! >>点击这里,即可访问飞凌嵌入式在线文档中
    发表于 09-26 08:57

    嵌入式芯片主流厂商、代表产品及特点

    嵌入式系统 是一种专用计算机系统,通常作为设备或装置的核心组成部分。其典型形态是由嵌入式处理器构成的控制板,程序固化在ROM运行。几乎所有具备数字接口的设备(如手表、微波炉、录像机、汽车等)均采用
    的头像 发表于 08-11 09:16 1161次阅读
    <b class='flag-5'>嵌入式</b>芯片主流厂商、代表<b class='flag-5'>产品</b>及特点

    嵌入式系统FLASH 的程序代码必须搬到 RAM 运行吗?

    嵌入式系统里,FLASH 的程序代码并非必须搬到 RAM 运行,这得由硬件配置、实际性能需求和应用场景共同决定。就像很多低端单片机,无论是依赖片内
    的头像 发表于 08-06 10:19 1138次阅读
    <b class='flag-5'>嵌入式</b>系统<b class='flag-5'>中</b>,<b class='flag-5'>FLASH</b> <b class='flag-5'>中</b>的程序代码必须搬到 RAM <b class='flag-5'>中</b>运行吗?

    嵌入式开发入门指南:从零开始学习嵌入式

    随着物联网、智能硬件的发展,嵌入式开发成为热门技能之一。以下将为初学者提供一份详细的嵌入式开发入门指南,涵盖学习路径、必备工具、推荐资源等内容。 1. 嵌入式系统的定义与应用
    发表于 05-15 09:29

    嵌入式适合自学吗?

    ,学习者可能会因为缺乏专业的指导而走很多弯路。例如,在学习STM32时,可能会因为不了解正确的学习方法和顺序,而花费大量时间在一些不必要的内容上。 2)难以解决实际问题:在嵌入式开发,经常会遇到各种
    发表于 04-27 09:54

    Python在嵌入式系统的应用场景

    你想把你的职业生涯提升到一个新的水平?Python在嵌入式系统中正在成为一股不可缺少的新力量。尽管传统上嵌入式开发更多地依赖于C和C++语言,Python的优势在于其简洁的语法、丰富的库和快速的开发周期,这使得它在某些嵌入式场景
    的头像 发表于 03-19 14:10 1191次阅读

    嵌入式系统开发圣经【干货】

    内容包括:嵌入式系统的介绍、嵌入式SoC硬件系统概论、嵌入式系统软件开发。适用于产品主管、系统设计分析人员及欲进入该领域的工程师。本资料详细
    发表于 03-12 13:58

    CPLD 在嵌入式系统的应用

    在现代电子设计领域,复杂可编程逻辑器件(CPLD)因其灵活性、成本效益和快速开发周期而在嵌入式系统扮演着重要角色。 1. CPLD简介 CPLD是一种集成电路,其内部包含可编程逻辑块和可编程互连
    的头像 发表于 01-23 09:50 1756次阅读

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功
    的头像 发表于 01-13 16:30 1184次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

    MPU在嵌入式系统的应用

    一、MPU的基本功能 微处理器单元(MPU)是嵌入式系统的大脑,负责执行程序指令、处理数据和控制其他硬件设备。MPU的基本功能包括: 指令执行:MPU能够从存储器读取指令,解码这些
    的头像 发表于 01-08 09:26 1500次阅读

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备的系统,它通常具有特定的功能和有限的资源。你需要学习一些计算机基础知识,如数据结构、操作系统、计算机组成原理等。这些知识将帮助你理解嵌入
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能是指将人工智能技术应用于嵌入式系统的一种技术。嵌入式系统是嵌入到其他设备或系统
    的头像 发表于 12-11 09:23 1519次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能