芯片烧写工具

问题描述

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜流冰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值