芯片烧写工具

问题描述

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

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

这个文件系统问题造成的不良品返修,在出货中占比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.mzph.cn/news/626271.shtml

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

相关文章

GIT SourceTree 回滚提交

步骤一: 步骤二: 步骤三: 在终端输入命令(位置是项目目录下) git push origin feature_mo2.1_r3_zhanx653 -f

深圳三维扫描分析/偏差检测模具型腔三维尺寸及形位偏差测量公司

CASAIM中科广电三维扫描模具型腔深圳案例: 模具型腔的三维扫描分析/偏差检测是一项重要的质量控制过程,旨在确保模具制造过程中的精确度和一致性。 CASAIM中科广电通过使用高精度的三维扫描设备,可以获取模具型腔的实际形状和尺寸数据&…

Python - 深夜数据结构与算法之 LRUCache

目录 一.引言 二.LRU Cache 简介 1.实现特性 2.工作流程 三.LRU Cache 实战 1.HashMap ListNode 2.OrderedDict 四.总结 一.引言 LRU 即 Least Recently Used 意为最近使用,它是一种局部 Cache 的缓存方法,用于存储最近使用的元素,…

Java 实现双链表

文章目录 双链表(Doubly Linked List)是一种常用的数据结构,它与单链表相似,但每个节点除了包含指向下一个节点的指针外,还包含一个指向前一个节点的指针。 双链表的节点由三部分组成:数据域(存…

Sentinel 轨道数据及下载

Sentinel卫星轨道文件在处理Sentinel卫星数据时发挥着关键作用。这些轨道文件包含了有关卫星在轨道上的运动、位置、姿态等信息,对于地理校正、成像几何校正以及多时相分析等方面具有重要作用。以下是Sentinel卫星轨道文件的主要作用: 地理校正&#xff…

【机器学习300问】8、为什么要设计代价函数(损失函数)?它有什么用?

一、先介绍一下线性回归模型 (1)基本概念理解 文字解释:线性回归模型顾名思义,他处理的回归问题,是监督学习的一种。线性回归模型是一种预测模型,其基础是假设目标值和输入值之间存在线性关系。通过一条最…

Mingw32编译opencv库

文章目录 1. 准备工作2. 编译cmake构建程序mingw32-make编译 3. 安装4. 安装完的结果 注意: mingw32-make编译的库和MSVC编译的库不兼容,MSVC和mingw-make生成的动态库使用的是不同的ABI(Application Binary Interface)&#xff0…

蓝桥杯省赛无忧 编程4 小蓝的漆房

输入 2 5 2 1 1 2 2 1 6 2 1 2 2 3 3 3输出 1 2#include <bits/stdc.h> using namespace std; int main() {int t; cin >> t;for (int i 0, n, k; i < t; i) {cin >> n >> k;vector<int> arr(n);unordered_set<int> s;for (int j 0…

计算机导论05-计算机网络

文章目录 计算机网络基础计算机网络概述计算机网络的概念计算机网络的功能计算机网络的组成 计算机网络的发展计算机网络的类型 网络体系结构网络互联模型OSI/RM结构与功能TCP/IP结构模型TCP/IP与OSI/RM的比较 网络地址与分配IP地址构成子网的划分IPv6 传输介质与网络设备网络传…

构建稳健的Web应用:LAMP 实践

LAMP 介绍 LAMP 代表 Linux、Apache、MySQL 和 PHP/Python/Perl&#xff08;这些选项中一种&#xff09;的组合&#xff0c;用于搭建 Web 应用程序的开发和运行环境。 Linux&#xff1a;作为操作系统的基础&#xff0c;提供整个 LAMP 堆栈的基础。Linux 提供稳定、安全的环境&…

Pytorch基础:数据读取与预处理——调用PyTorch官方数据集

数据读取与预处理——调用PyTorch官方数据集 1. 从网络端下载 FashionMNIST 数据集到本地2. 数据集可视化 1. 从网络端下载 FashionMNIST 数据集到本地 (base) PS C:\Users\孙明阳> conda activate yang (yang) PS C:\Users\孙明阳> python Python 3.11.5 | packaged by…

CSS 水浪按钮

<template><view class="content"><button class="button"><view class="liquid"></view><view class="btn-txt">水浪按钮</view></button></view></template><scrip…

数据结构与算法教程,数据结构C语言版教程!(第四部分、字符串,数据结构中的串存储结构)二

第四部分、字符串&#xff0c;数据结构中的串存储结构 串存储结构&#xff0c;也就是存储字符串的数据结构。 很明显&#xff0c;字符串之间的逻辑关系也是“一对一”&#xff0c;用线性表的思维不难想出&#xff0c;串存储结构也有顺序存储和链式存储。 提到字符串&#xff…

c语言-数据类型(上)

目录 一、数据类型 二、常量与变量 常量&#xff1a; 变量&#xff1a; 三、进制&#xff08;八&#xff0c;十&#xff0c;十六&#xff09; 十进制&#xff1a; 八进制&#xff1a; 十六进制&#xff1a; 四、基本类型 1.整型常量&#xff1a; 2.整型变量&#xff…

C++内存管理机制(侯捷)笔记4(完结)

C内存管理机制&#xff08;侯捷&#xff09; 本文是学习笔记&#xff0c;仅供个人学习使用。如有侵权&#xff0c;请联系删除。 参考链接 Youtube: 侯捷-C内存管理机制 Github课程视频、PPT和源代码: https://github.com/ZachL1/Bilibili-plus 介绍 下面是第四讲和第五讲…

XSS漏洞:xss-labs靶场通关

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

Unity | AudioSource 无声音

Unity | AudioSource 无声音 你是否也会遇到相同的问题&#xff1f;AudioSource没声音&#xff1f; 解决&#xff1a; 注意查看一下几处声音设置&#xff1a;

XS2180四通道,兼容 IEEE 802.3at/af以太网供电 PSE 控制器 V1.0

XS2180 是一个四通道、供电设备&#xff08; PSE &#xff09;电源控制 器&#xff0c;设计用于 IEEE 802.3at/af 兼容 PSE 。器件提供用 电设备&#xff08; PD &#xff09;检测、分级、限流以及负载断开检测。器 件支持自动工作和软件编程。器件还支持最新二事件分…

宁夏银行关键系统基于OceanBase的创新实践

宁夏银行成立于 1998 年&#xff0c;是宁夏第一家“宁”字号地方商业银行&#xff0c;西部地区第一家以省级行政区命名的地方商业银行。2016 年&#xff0c;被中国人民银行评为宁夏地区系统性重要银行。目前&#xff0c;全行设分支机构 97 家&#xff0c;其中总行营业部 1 家&a…

centos7 arm服务器编译安装PaddlePaddle

前言 随着国产服务器发展&#xff0c;部署项目需要用在国产服务器上&#xff0c;官方教程里面很多没有讲解到&#xff0c;安装过程中出现了各种各样的问题&#xff0c;以下是对官方教程的补充&#xff0c;有什么问题&#xff0c;欢迎指正&#xff01; 一、环境准备 gcc: 8.2版…