最近有看到朋友在谈刷机的事项,我今天也和大家简单谈一下刷机方法及注意事项,以及如何解决刷成砖头的机器。(下文中的连接图都是简化图)
一、离线式刷机方法
如上图所示,由编程器直接对芯片烧写(个人观点:严格意义上讲这不叫刷机)EEROM最常用的24系列,25系列,24C02、24C04、24C08、24C16....有人会问容量大的能不带替小的?
芯片内部有些分页的,每页多少容量,有些IC页的容量不同,有些程序采用页写入方法,用来减少写入时间,这种情况下不同页容量的IC不可以替换,否则会出现兼容问题,笔者遇到过:用24LC512代替24LC256不成功的的列子。
24与25系列相优确点,24系列引线少,容量小.速度不够快CLOCK只有400K.25系列引脚多,容量大速度快,CLOCK可以达到几十兆。
对24,25编程时,如果芯片里有原程序做好先读出来备份,以防不测。
MPU是各重单片机:有些程序载入烧录器后直接就可以烧写,有些开发人员为增加破解难度,程序载入烧录器后要设配置字,否则烧录后单片机不能运行。
特别是OTP IC 设置配置字,不能出任何差错,一但出现差错,IC烧录完只能报废。
载入档案笔者遇到大多是HEX(十六进制),BIN档(二进制),及义隆单片机CDS档。
芯片未用字节处理:
如同一个酒店一样,房间不是一直住满客人,没有入住的房间如何处理,为安全起见要把房门锁起来.对于一个芯片来讲,程序往往占用芯片部分或大部分容量,未使用容量如何处理.
程序运行过程中,受到干扰会跑到没用空间怎么办,开发人员想办法让程序再跑到正确的地址空间.就在未用容量空间全部写上1,有些程序对芯片未用空间全部填上1,具体要写0或写1,看程序设计者编程方法。有些程序对芯片未用字节不做要求( Don't Care),这涉及到编程问题,这里不作过多的讨论。
二、在线式刷机
如上图2所示,我个人称为直接式,编程器对线路板上的芯片(EEROM、MPU)进行读写,这种适于采用串口连接线比较少的芯片,简单方便连接.如果用并口,线多不方便连接。
注意
1):对芯片烧写前如果有程序最好备份,以防不测(遇到加密或部分加密但片机就没办法了),因为加密后或部分加密,读出数据不完整,即使再写入 程序也没办法运行.解密一次比设备本身还贵,几百到几w都有.作为维修来讲加密后的IC不良,比较麻烦。
2):编程器与线路板的连线不要太长,连接线不要用太细的,有些单片识别不到,或不能烧录,在接线无误的情况下,遇到这种情况可以尝试,减短线路板与编程器之间的连接线。笔者遇到过:在板上烧CY7C63823 怎么也烧不进去,检查接线无误。尝试把连接线变短,烧录成功。
三、间接式刷机
如上图3所示,不用编程器,由电脑通过连接线直接升级。这种方法用电脑几乎都遇到过,比如电脑要升级到WIN10 首先电脑要安装操作系统如WIN7,能上网,到相关网站下载要升级的程序,更新过程中也是把存储器硬盘部分内容覆盖掉,当然也可以,直接从U盘或光盘去安装。
图上:这种线路板有自己的“小系统”(BOOT)能正常运行,能与电脑正常沟通,接收电脑传送过的更新数据,由板上MPU写入MPU内部的存储空间,或板上的EEPROM或FLASH ROM存储器中。
图下:目前比较流行的液晶用的 U 盘 刷机更新方式,同上图一样,电视要有BOOT引导程序,能够正常运行,识别外部更新U盘及U盘中的升级程序(文件)。
更新文件比较大,时间长,刷机中如遇突然断电或其它干扰,刷机失败,刷成砖头.
注意事项:
1)在更新前尽可能用编程器把板上EEROM或FLASH 中BOOT 原程序读出来,万一刷机失败刷成砖头时,再把读出来的内容写回去。因为刷机用的程序也是一段不完整的程序用来覆盖EEROM或FLASH中部分数据,不能用烧录器直接烧录的,因为大部分烧录器知识别HEX或BIN档。
2)刷机成功后,如果有可能最好成把EEROM或FLASH 读出来备份,以后遇到同类问题,万一刷机刷成砖头,可以直接用编成器烧写。
3)间接式,刷机过程中一定不要断电。以免变成砖头。
笔者遇到要刷机的网络设备用的IC FLASH W25Q128BV ,刷机程序是img 档,由unix 网页转出来的,不能用烧录器烧录的,刷一次机要8分多钟,经常遇到刷到砖头的情况,遇到这种情况,把刷机成功后W25Q128BV 读出来备份,用编程器烧录备份数据.因为用烧录器很少遇到烧录失败的。
笔者遇到另一款设备刷PIC MPU的,是HEX 十六进制格式数据,只能刷,不能用烧录器烧的。
如果大家喜欢的话,一起研究讨论,如有谬误,敬请批评指正!
网友评论