WRH54G第一次硬件升级失败记录

前期准备

元件和工具:

  1. 烙铁风枪万用表

  2. NOR FLASH 8M,SDRAM 32M

  3. JTAG连接线

  4. UART连接线

软件:

  1. jtag软件,网上有tjtag和brjtag(其他应该都差不多)

  2. dd_wtr固件,我下了一个micro版和mpag或big版(都是全功能版),必须是NEWD

  3. cfe 在恩山论坛下载的8m flash-32m sdram版本的cfe

  4. 串口打印工具,这个不是必须的

查看了路由器原始板,NOR FLASH为2M,具体型号29LV160CTTC-70G,如下图:

我选择的更换FLASH为S29GL064M90TFIR4,如下:

对比了一下,两个FLASH差别主要在WP#,block type,地址线上。考虑到一些jtag软件的支持情况,我的替换flash应该没什么问题,而且看网上的一些升级情况,该flash有成功的网友。

至于SDRAM,应该是要求不高,只要同数据位的都行,我手里的有镁光和奇梦达的。如下图:

升级过程:

  1. 焊接JTAG和UART插针,发现JTAG的4根信号线上拉电阻没有焊上,补上了4颗4.7k电阻。

  2. JTAG接口图

  1. UART接口图
  1. 我没有直接拆元件,先记录了一下板上的阻容焊接情况,然后用串口打印了一下启动信息,还用JTAG软件查看了一下cpu和flash信息,结果是flash不识别。

  2. 取下flash和sdram,这个用风枪很容易,然后焊上新的元件,对好丝印,不要焊反了方向。焊完了仔细检查一下,不要有虚焊,连锡。还有R5,R7两颗0欧电阻也焊上,这个是连接增加的地址线的。

  3. 插上电源,这时电源灯已经是半亮了。连上JTAG线,运行cmd 打开命令行窗口。

  4. 进入jtag软件目录,cd c:jtag 接着在该目录下输入

brjtag –probeonly

就能看到cpu和flahs信息

但是依然是不识别我的flash,而且cpu 识别是r3版本,看brjtag的支持,只有bcm5354的r1,r2版本。

不管了,直接输入(直接输入brjtag回车,会看到所有命令,注释)

brjtag –erace:wholeflash /fc:82 **擦除整个flash,/fc:82是指定flash型号,brjtag有型号列表命令,tjtag软件的型号好像 是87,这个须查看确认。

brjtag –flash:cfe /fc:82 *写入cfe,该文件为恩山下载的8mflash-32mram cfe bin文件

  1. 写完之后重启路由器,五灯常亮,电源灯依然半亮。30s按住reset,拔掉电源30s,再插上电源30s。还是不行。

  2. 更换不同的jtag软件,brjtag的好几个版本,dd_wrtt官方下的tjtag 3.0,查看支持flash列表,里面都有s29gl064m这颗。情况依然一样,不识别flash。强行指定flash型号写cfe,重启无反应。串口也没有打印任何东西,说明cfe没有启动。

  3. 开始怀疑焊接原因,拖了几次,还更换过flash,情况依旧。我想备份出写进去的cfe,比较一下看写对了没有。输入命令

brjtag –backup:cfe /fc:82

结果发现写进去的大多都是00000000和FFFF。

  1. 我开始怀疑地址线是不是有短路情况,或者焊接的R5,R7阻值不对,结果没发现异常。后来我又检查了wp#信号,是不是因为写保护了所以才不对,但是wp#信号确实是高电平。

  2. 怀疑jtag线。我用的是xilinx公司的专用线,是不是因为这个问题呢?于是找了个并口,按照网上的用100欧电阻连接。结果和之前的现象一样,应该不是线的问题。怀疑我多焊的4颗上拉电阻,拆下后发现cpu都不认了,应该不是电阻问题。

  3. 之前擦除flash的时候,命令窗口会提示某地址擦除错误,我想是不是因为flash时间久了有些单元坏了(这是07买的flash),于是换了一个,一样,后来搞了半天不行,又换了一个。不是flash的问题。(换的都是同型号flash)

就这样折腾了近两天,还是搞不定,只好拆下flash,sdram,复原。插电,启动正常。

再回想一下,应该把sdram拖一下,或者换下看看的,一直在折腾flash,漏了他。

先研究下,希望下次升级能成功。网上一些人比较可恶,为了几十块的升级费,问他啥也不说,怎么升级也不说,怎么把问题弄好的也不说。