起因

前段时间手痒,看到了跟了自己很久的绿联读卡器,想折腾折腾。但是又不知道它的详细硬件情况,于是就在网上搜常见的USB3读卡器方案商,逐个尝试固件更新工具,然后成功使用了创惟科技的固件升级工具读到了版本号,确定了其使用了创惟GL3224主控。便接下来了开始的作死流程:首先直接点击了刷入,1536版本固件是随官方固件更新随工具附带的,刷入后自然而然也没有任何问题,然而我开始在互联网上寻找是否有更新的固件。而后在数码之家的一篇帖子中找到了随一款新的读卡器附带的1539版本,立即来了兴趣,就花了家元下载。下载后发现原作者提供的是FLASH的直接Dump,与官方工具内的固件结构和大小都不相同,于是选择了照猫画虎的办法,依照已有的1536版本官方固件进行裁剪,裁剪后直接就进行了刷入。刷入了之后,设备仅能认出是USB大容量存储设备,没有了分区磁盘设备,插入SD卡后也没了反应,打开官方的更新工具也直接提示无设备(但在此处可以看到是1539的固件版本,应该是校验错误导致的不启动)。
GLF_Error1539
GLF_NoDeviceUpdate

“修复”

在弄坏了这个读卡器之后,因为读卡器这类东西价格并不是很高,所以立即就重新购买了新的,这个坏的则被放在了一边。
今天突然想起来还有这么一个事情,便尝试开始了修复。
首先,在创惟科技官方网站上找到了这个读卡器芯片的Block Diagram
GL3224_QFN48_BLK_DGM
发现其由于支持低成本设计,FLASH并不是强制要求,其晶圆上还有内部ROM
现在我们的目的就是让内部ROM上的版本固件跑起来,从而先恢复正常启动的功能,而后再继续尝试刷入固件到SPI闪存。

“破坏”

这个读卡器的外壳使用的是超声波焊接工艺,没有螺丝也没有可以下翘片的地方,按照网络上的教程,拆解超声波焊接的设备只需使用毛巾裹住,然后向地上砸去即可。我也照做了,的确拆出了主板,但是忘记了这个读卡器买了很久了,塑料有些脆化,当我打开毛巾之时,外壳已经碎裂成了很多半。
GLF_BrokenCase
不过最终还是成功得到了主板,主板也很简单,一片VSOP封装的SPI闪存,一片GL3224主控,一粒晶振以及两个卡连接器就构成了整体设计
GLF_RawBoard
在SPI闪存中,依据个人经验,短接CS(片选信号)脚和DO(输出信号)脚即可暂时让主控读不到SPI
GLF_FlashPin
在当前情况下,我们这样短接,再插入电脑,即可使用ROM版本的固件来启动了
GLF_SpiShort
果然成功启动!
GLF_RomBootDevice
再通过一样的方法检查固件版本,发现其为1532版,因此可以确定其为ROM版本固件!
GLF_RomBootComplete
此时我们再使用官方的固件更新工具,可以看到其成功识别到了设备,且可以执行更新!
GLF_1532to1536
执行更新,等待提示成功,此时拔下再连接,读卡器完全恢复了正常!
GLF_1532to1536_Success

“不死心”

当然,对于没有成功更新到1539版本,我还是耿耿于怀。于是再一次尝试对FLASH Dump版本的认真裁剪,成功的将其升级到了真正的1539版本,且可以直接通过固件更新工具更新。
GLF_1536to1539

下载

创惟科技(GENESYS) GL3224的固件更新工具和两个版本的固件,有1536和1539两个版本可供选择
GL3224_Update.7z

版权

此頁面中的Block Diagram圖片及韌體和韌體更新工具均為創惟科技股份有限公司版權所有
此頁面中的SPI NAND快閃記憶體Pin Diagram圖片由華邦電子股份有限公司版權所有,來自W25Q80DV_July,2015的Datasheet

知识共享许可协议
本文及其附件均采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。

添加新评论