芯片烧写工具

news2025/1/12 0:59:05

问题描述

最近出了一个机器变砖的问题,一些用户使用的设备,头一天晚上用的好好的,第二天来一上电开机就起不来了。

然后就寄回来,返厂维修。一些是因为部分电子器件坏了,还有一些是文件系统问题,重新升级一下就好了。

这个文件系统问题造成的不良品返修,在出货中占比2%,影响还是很大。

维修中心负责维修,修好了再给客户寄回去。但产品出问题还是会影响到产品口碑和出货,所以品质那边就要我们工程师尽快调查这个问题。

出问题的板卡上的SPI Nor-Flash送交了原厂,出了个测试报告,结论是这个Flash是没有问题的。

这个文件系统的索引区有两个,一个作为备份,一个作为活动分区。机器启动后在Bootloader里先加载文件系统,再加载APP程序文件,完成启动。

加载文件系统时,要读取文件分区表。分区表有两个,交替选择其中一个作为活动分区,另一个作为备份。

最后大概是发现,文件系统的分区表数据读取后,要计算CRC来校验,这时出现了错误。两个分区表都出错,无法成功加载文件系统,就会格式化分区表。

原来的文件元数据就都丢失了,所以无法正常加载APP程序文件,启动失败而变砖。

我们使用工具将Flash数据读取出来,发现分区表里有个别字节数据异常,比如0xFF变成0xBF。

仅从理论分析上,原因有三,一个是Flash数据确实发生变化,一个是SPI读取Flash数据时,信号受干扰,一个是读到DRAM里后,数据出错。

最后只能软件上在CRC校验的处理中加入保护逻辑,不要随便格式化。

解决问题中使用的工具

要想调查分析这个问题,普通调试方法是无效的,机器是无法启动的,需要读取有问题的板卡上的Flash数据。所以我们从淘宝上购买了烧写Flash的工具,还有匹配我们Flash的底座。使用的底座是根据封装类型和Pin脚数目而定的。

把板子上的SPI Nor Flash吹下来,放入烧写工具的底座,将其中的数据全部dump出来,保存成一个bin文件,然后分析文件系统出错的原因。

烧写工具介绍

深圳市思泰佳电子有限公司,VS4000P通用型编程器。

思泰佳官网,编程器设备生产商,烧录设备

锁紧座脚数:40脚

支持芯片种类:约1.8万种

支持最大容量:512Mbit

通讯和供电:USB接口

支持系统:Win XP/7/8/10

标配包含:编程器主机,USB电缆,光盘(软件和使用说明)

支持芯片型号以设备为准,可在官网下载器件列表或编程器软件查看。

还可以下载VS4000P软件包(附使用说明、器件列表),2023年7月19日更新.zip,15.63MB。

支持的可烧写的芯片列表如下。

  • 常用存储器

24系列EEPROM:24C01/02/04/08/16/32/64/128/256/512/1024...   

              24LC01/02/08/16/32/64/128/256/512...

25系列EEPROM:25010/020/040...640...

25 SPIflash: 25Qxx/25Xxx/25Txx/25Dxx/25Pxx/25Dxx/25Rxxxx/25Uxxxx/25Lxxxx...

27系列EPROM:   27C32/64/128/256/512

28系列:      28C32/64/128/256...28HCxx....

39系列:      39Dxxx/39Fxxx/39Lxxx/39Vxxx...

49系列:      49Fxxx/49Vxxx...

93系列EEPROM: 93C46/56/66/76/86(8bit、16bit),93LC46/56/66/76/86(8bit、16bit),93C45/55/65/75/85...

95系列:      95010/020/040/080/160/320/640/128/256/512...

45系列:      45DB011/021/041/081/161/321/641/642...

  • 常用51单片机

ATEML:        AT89C51/52、AT89S51/52、AT89C2051、

WINDBOND:     W77E58/058/516...、W78E052/058/516...

SST:         SST89E516/516RD2...

SyncMOS:     SM8952A/B...

  • 常用PIC单片机

PIC12Cxxx/PIC12Fxxx/PIC16Cxxx/PIC16Fxxx...

PIC18Fxxxx/PIC18LFxxxx...

  • 常用AVR单片机

ATmega8/16/32/48/88/162/163/164/168/8515...

ATtiny10/11/12/13/15/24/25/28/44/45/84/2313...

AT90Sxxxx

具体使用

我手里这个是Serial Nor Flash。要根据Part No来查找芯片资料,比如根据Density(密度或容量)来查找。芯片上显示型号W25Q64JVIQ,FAE识别的型号W25Q64JVZEIQ,下载的Datasheet的名字显示型号:W25Q64JV。

可以在https://www.winbond.com/ 官网上,查找芯片手册。这个芯片是8 pin的。

选择好芯片,然后执行操作就好,很简单。可以读取Flash数据、保存文件。也可以导入一个bin文件,然后一键写入Flash。

其他烧写工具

Flash的第三方烧录器厂家有很多,可自行选择,比如可以使用dediprog SF600。

如下可供参考,烧录器厂商网站:

1. 岱镨电子的烧录器(www.dediprog.com)

2. 西尔特(www.xeltek.com)

3. 硕飞(www.sofi-tech.com)

4. 永创(www.forcreat.com)

5. 昂科(www.acroview.com)

6. 艾科(www.elnec.com)

7. 浦洛(www.prosystems.com.cn)

烧写芯片:存储芯片和处理器芯片

烧写芯片的目的,都是将数据写入到存储设备中。上面介绍的是专门的烧写工具,是用来裸片烧写的,可以烧写SPI Flash、EEPROM等类型的存储设备,也能烧写处理器芯片。

我上面烧写的是8MB的SPI Nor-Flash,挂在处理器(imx257)外面,存储程序和数据,而处理器里面是没有用户使用的存储空间的。

而有些存储器是和处理器集成在一起的,所以这时再烧写数据的就是处理器芯片。我们会说这个MCU或MPU的Rom是多大的,其实就是说它里面集成的闪存空间是多大的,烧写的是其内部的闪存。实际是通过处理器的端子来烧写其内部的存储设备。

对于烧写器来说,原理是一样的,将裸片IC放入合适的底座,再插入烧写器,烧写器能正确识别需要使用的端子,通过连接的端子,将数据按正确的通讯协议发送给IC,就可以了。

另外除了裸片烧录,还有板级烧录,是指在元器件都贴到PCB上以后,闪存或处理器芯片都是空数据时,进行烧录。

在实际电子产品开发和生产中,大多使用这种方法。裸片出厂只是普通物料,在贴到PCB板子上以后,才需要烧入相应的Firmware。做一个板子,烧一个程序,不会浪费物料。

板级烧录的话,一般需要定制的治具,通过顶针来连接PCB上的TP点,给IC供电,并和PCB上的IC进行通讯,来达到烧录的目的。

原理和上位机上使用的工具,同裸片烧录是类似的。

板级烧录中,还有一种情况,就是空的闪存和单纯处理器的组合,比如我使用的iMX6ULL芯片,其内部未集成客户可用的闪存,而是外挂的存储器。

这种情况下,为了提高系统的灵活性、扩展性,一般都是通过处理器来烧写外挂的Flash闪存,并不直接操作外挂的闪存。

而处理器一般也支持这种功能,使用治具和处理器进行连接,在上电后,进入烧录模式,通过处理器,再与外挂的存储器进行通讯,将数据烧写到外部闪存。

举些例子:

下面是我以前用的SONIX的8bit OTP 处理器的裸片烧写工具,也要配个底座。不像现在的芯片里的Flash都是能多次烧写,这种芯片只能烧录一次。而且资源很少,才2K ROM, 64 字节的内存。16M的处理器时钟,14个引脚。

要是通过烧写来调式或验证问题的话,烧完一个废一个。

调试器也是有的,长这个样子。

左边是我们的板卡,中间是一块接口板,右边大大的黑盒子就是来连接电脑的调试器了。

一提起芯片调试器,就想起了下面这款:

这是2007年左右,我还在开发车载音响项目,使用NEC V850芯片的调试器。

开发用的板卡上没有处理器,取而代之的是一个插座,然后插入调试器的插头。调试器另一边插入电脑,就可以设置软件断点、硬件断点、单步执行等。

当年的项目想想还有印象,当年的teammates全都没了往来,有些唏嘘。

参考:

1,松翰芯片

Writer - 松翰科技 :: Sonix Technology Co., Ltd. :: MP5-WRITER

2,美国加州的一个公司网站

https://www.ntc-tech.com/products/renesas-nec-qb-v850essx2-circuit-emulator-w-accessories-included

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1388176.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Redis+Lua的分布式限流

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 前面我们了解了如何利用Nginx做网关层限流&#xf…

XSS漏洞:xss-labs靶场通关

xss系列往期文章: 初识XSS漏洞-CSDN博客 利用XSS漏洞打cookie-CSDN博客 目录 第一关 第二关 第三关 第四关 第五关 第六关 第七关 第八关 第九关 第十关 第十一关 第十二关 第十三关 第十四关 第十五关 第十六关 第十七关 第十八关 第十九关 …

概率论与数理统计————古典概型、几何概型和条件概率

一、古典概型 特点 (1)有限性:试验S的样本空间的有限集合 (2) 等可能性:每个样本点发生的概率是相等的 公式:P(A) A为随机事件的样本点数;S是样本…

深度学习笔记(四)——使用TF2构建基础网络的常用函数+简单ML分类实现

文中程序以Tensorflow-2.6.0为例 部分概念包含笔者个人理解,如有遗漏或错误,欢迎评论或私信指正。 截图和程序部分引用自北京大学机器学习公开课 TF2基础常用函数 1、张量处理类 强制数据类型转换: a1 tf.constant([1,2,3], dtypetf.floa…

Docker部署Jira、Confluence、Bitbucket、Bamboo、Crowd,Atlassian全家桶

文章目录 省流:注意:1.docker-compose文件2.其他服务都正常启动,唯独Bitbucket不行。日志错误刚启动时候重启后查询分析原因再针对第一点排查看样子是安装的bitbucket和系统环境有冲突问题? 结论: 省流: b…

Flink-SQL——时态表(Temporal Table)

时态表(Temporal Table) 文章目录 时态表(Temporal Table)数据库时态表的实现逻辑时态表的实现原理时态表的查询实现时态表的意义 Flink中的时态表设计初衷产品价格的例子——时态表汇率的例子——普通表 声明版本表声明版本视图声明普通表 一个完整的例子测试数据代码实现测试…

MATLAB - 使用 TOPP-RA 求解器生成带约束条件的时间最优轨迹

系列文章目录 前言 本例演示如何生成满足速度和加速度限制的轨迹。该示例使用了 contopptraj 函数,该函数使用可达性分析 (RA) 求解受约束的时间最优路径参数化 (TOPP) 轨迹。 一、示例背景 本例解决的是 TOPP 问题,这是一个机器人问题,其目…

vue3+vite项目构建时报错npm ERR! code EPERMnpm ERR! syscall mkdir...

vscode终端中输入npm create vitelatest vueviteproject1 -- --vue命令后报错 具体报错如下: PS D:\project> npm create vitelatest vueviteproject1 -- --vue >> npm ERR! code EPERM npm ERR! syscall mkdir npm ERR! path D:\node\node_cache\_cac…

磁盘raid1降级后,mdxxx rota发生变化

背景 虚拟机系统盘vda后端使用宿主机ssd盘lvm组raid1,虚拟机内部查看vda磁盘类型(rota=1):机械硬盘,vda后端raid1降级导致磁盘类型降级:rota 0---->1,vda磁盘类型显示不正确,应该是ssd类型(rota=0); 分析 1.基础 1.1 linux磁盘类型 Rota表示磁盘类型:(1)0,表…

收银系统源码-智慧新零售系统框架

智慧新零售系统是一套线下线上打通的收银系统,主要给门店提供含线下收银、线上小程序商城、ERP进销存、精细化会员管理、丰富营销插件等为一体的智慧行业解决方案。智慧新零售系统有合伙人、代理商、商户、门店、收银员/导购员等角色,每个角色有相应的权…

从物联网到数字孪生:智慧社区的未来之路

一、物联网在智慧社区中的应用与挑战 随着科技的飞速发展,物联网技术已经深入到我们生活的方方面面,尤其在智慧社区的建设中发挥着举足轻重的作用。物联网通过连接各种设备和系统,为社区居民提供了更便捷、高效的生活方式,同时也…

TortoiseGit 2.15.0.0 安装与配置(图文详细教程)

TortoiseGit的安装与配置 TortoiseGit是Tortoise为Git提供的版本可视化工具,简化了记忆Git命令行的过程,将命令行可视化。 确保自己电脑中已经下载好了git 官网下载TortoiseGit Download – TortoiseGit – Windows Shell Interface to Git 选择64-bi…

net8 rdl rdlc ssrs报表设计器表头合并单元格(垂直合并)

报表设计器下载地址 https://www.microsoft.com/zh-cn/download/details.aspx?id53613 或者从vs扩展插件安装 打开报表设计器,插入矩阵表格(只有这个才能支持表头单元格合并) 在列单元右建,插入行,根据实际需要添加…

【安全策略】前端 JS 安全对抗浏览器调试方法

一、概念解析 1.1 什么是接口加密 如今这个时代,数据已经变得越来越重要,网页和APP是主流的数据载体。而如果获取数据的接口没有设置任何的保护措施,那么数据的安全性将面临极大的威胁。不仅可能造成数据的轻易窃取和篡改,还可能…

LiveGBS流媒体平台GB/T28181功能-基础配置接入控制白名单黑名单配置控制设备安全接入设备单独配置接入密码

LiveGBS基础配置接入控制白名单黑名单配置控制设备安全接入设备单独配置接入密码 1、白名单配置应用场景2、接入控制2.1、白名单2.2、黑名单 3、搭建GB28181视频直播平台 1、白名单配置应用场景 LiveGBS国标流媒体服务,支持白名单配置。 可在设备注册前&#xff0…

TDA4 Linux BSP ,SD卡制作

1 进入官网: Processor SDK Linux Software Developer’s Guide — Processor SDK Linux for J721e Documentation 这个版本需要 Ubuntu 22.04 支持 ~/ti-processor-sdk-linux-adas-j721e-evm-09_01_00_06/board-support/ti-linux-kernel-6.1.46gitAUTOINC5892b80…

Day04

今日任务 24.两两交换链表中的节点19.删除链表的倒数第N个节点 160. 链表相交142.环形链表II 24 两两交换链表中的节点 题目链接:https://leetcode.cn/problems/swap-nodes-in-pairs/description/ 方法一:遍历实现 思路: 代码&#xff…

canvas绘制图片的三种方法(图文示例)

查看专栏目录 canvas示例教程100专栏,提供canvas的基础知识,高级动画,相关应用扩展等信息。canvas作为html的一部分,是图像图标地图可视化的一个重要的基础,学好了canvas,在其他的一些应用上将会起到非常重…

C++学习笔记——类继承

目录 一、一个简单的基类 1.1封装性 1.2继承性 1.3虚函数 1.4多态性 二、基类 2.1一个简单的C基类的示例 2.2 Animal是一个基类。 三、继承 3.1概念 3.2is-a关系 3.3多态公有继承 3.4静态联编和动态联编 3.5访问控制 3.6ABC理念 一、一个简单的基类 C中的基类是一…

会声会影2024什么时间发布呢?会声会影2024会有那些新功能

近年来,随着科技的不断进步,各种软件的功能越来越强大,其中最为常用的莫过于视频编辑软件。而会声会影作为一款颇受欢迎的视频编辑软件,备受用户关注。那么,会声会影2024什么时间发布呢? 首先,我…