报价
HOME
报价
正文内容
nand flash路由 uboot 给路由器更换flash(结尾有彩蛋)
发布时间 : 2025-03-17
作者 : 小编
访问数量 : 23
扫码分享至微信

给路由器更换flash(结尾有彩蛋)

刚刚休着闲两天,于是论坛又开展一轮DIY的活动。

这次还真是少不了从论坛拿到的宝贝……

首先这就是曾经从论坛得到的无线小路由WR700N了,

楼主期待有一天能给它刷个openwrt。

话说我倒也不缺路由器,只是这两天闲下来,想起了这个事,于是来搞一个。

由于这个路由的Flash只有2MB,根本不足以写入op,所以不得不给它换个flash啦。

楼主是纯软件出身,这个焊活,虽然只有8个脚,那也是个老大难问题了,所以一直也没有做过尝试,不过这次真是豁出来了,拿出来练练手吧。

提前准备好各种材料:W25Q64(8MB的Flash)芯片若干,相应的烧写座一个。

思来想去的,不买烧写器了,DIY嘛,就得自己动手,丰衣足食。OK,DIY一个简单的烧写器——烧写器,二楼见~

东西都到手,等到中秋节,咱沐浴更衣焚香祷告,开始动手。

首先肯定是拆……拆WR700N这个东西,需要到网上参考一个内容(China[拆哪],破拆高手多,先请教一下机壳的卡点,避免损坏外壳)。于是根据指示开始暴力开壳。

得到了WR700N的核心,正面处理器和内存贴着签不拍照了,后面的SPI Flash坦荡荡。

拆的话应该是比较容易的……可是楼主还是很悲催的伤到了焊盘,5脚的焊盘就那样悬着…这家伙那可是数据输入信号啊……不会最后悲剧了吧。

步骤一,利用烧写器将拆下的Flash中,最后64K的数据取出来,留下备用。这个东西在路由界被称为art,里面存有路由信号有关的调整数据,没有了它,剩下的硬件就无法发挥它的最佳水平。

步骤二,从网上下载一个叫breed的东西,这个可以替代uboot启动路由器,而且利用它,可以随时随意刷路由的系统了。

步骤三,将breed烧写到Flash的0起始的位置上,内容并不大,所以可以再读出来,干脆读出来0x15000,和原始的breed比较一下,发现有效数据是一致的,OK可以继续了。

步骤四,(此步骤可省略,当时我不懂,之后我懂了。该步骤烧写art到Flash上,但实际breed可以直接写art,所以最好让breed来做这件事)

步骤五,接下来就把Flash焊回到板子上。我没做过这个,还是需要很小心的处理……

接下来就可以上电操作啦……所以后续就仅是调试过程了。

Orz起不来。

蓝色的指示灯亮了,但还是很暗,我甚至怀疑这个是不是板子坏掉了。事实证明,只是起不来,所以灯也是异常状态了。

于是插上逻辑分析仪排错。这个过程中,我发现,电源电路到主板电路转换的过程中,留下了5V的测试TP,所以只需要找一个5V电源,接过来就可以方便的调试了,不必插在墙上看效果。事实上,我直接用测试夹夹在相连的电容脚上,很方便。

于是一个脚一个脚看,发现/Hold脚拉低了。查一查类似的路由器的电路图,发现这个脚是在外部利用电阻直接拉高使用的,所以……是不是我把焊盘焊坏了……

就是这么果断,立刻找了个10K电阻焊上了。继续启动……还是起不来。

再检查,发现逻辑分析仪上是有正确数据的,这回惨了,看来板子出问题了。

喝了一杯酸奶压压惊,之后决定继续差错看看,结果很偶然地,用万用表发现Flash的4脚(GND)信号上,电压不为0,而且还有浮动。

再一想,糟了个糕,我一直关注的是Flash引脚上有没有数据,可是这样是不能保证焊盘上也能正确的得到这些数据的……也就是说,输入到Flash的信号,目前来看都是正确的,但是输出出去的信号,可能有虚焊!所以,起先我所担心的5脚,竟然完全没问题~,再所以,/Hold脚也许也是虚连了所以看起来是拉低的……

于是用万用表使劲测4脚,发现确实和下面的焊盘虚连着,甚至稍使劲压,也接触不到,看来是中间有松香层阻碍电流了。

所以拿起烙铁,把这几个脚又焊一次,顺便把自己加的电阻摘除。这一次每个脚都稍用力往焊盘上压实一点。看来第一次焊太小心,虽然焊锡融得很漂亮,可是反倒是没有焊上。

之后再通电,终于一切正常,灯也亮了,接在PC上,PC网口也亮了。Oh Yeah~

再然后用PC登陆192.168.1.1,设置breed里的信息,主要包括Mac地址和art上传,

之后找到可用的openwrt固件包,上传启动 ~

Orz,完全不能用。……

后来利用uart接收主板上的TP数据,发现启动linux内核时,内存不足,挂了。

按理说不应该的,网上说WR700N是2M ROM 16M RAM呀,应该可以啊……额,网上说??……起开内存上的贴签,发现这个货是8M内存。

所以……又要DIY改66pin的内存颗粒了??

好吧,暂且认为本次DIY完成,毕竟原始目标也就是换个大点的Flash。

换RAM的事情,就滚到下一期DIY再说吧。

总结了经验教训。第二天,楼主把另外一个路由的Flash给换了,很快就完成了。

恩,心情不错。

接下来说说用D21的板子做的烧写器,

对于SPI Flash来说,只要一个SPI,就可以进行读写等各种操作了。

所以D21绰绰有余。

装上AStudio,驱动SPI,找到读写代码(针对我买的Flash,我发现D21原带的那个AT25DFX驱动有点不匹配),做个试验,利用uart将读出来的东西发回到电脑上。为了避免干扰,连接上我换了一个SPI

数据可以正常发送到PC,可是怎么能保存到文件呢?这个方向其实很好解决,利用强大的putty,使用串口方式连接,然后修改连接设定中的logging,选择保存全部的log,指定目标的文件,应用以后,串口收到的内容就会直接写到文件里啦。

经过测试,读和写都没有问题啦,那么就可以利用这个家伙把breed写到Flash中了。

可是楼主还是懒于写一个程序来控制上下位的通信,所以干脆,把breed直接放在D21的程序里,幸亏breed才100k,D21还容得下它。

烧写.JPG (48.05 KB, 下载次数: 0)

下载附件 保存到相册

2015-9-30 03:04 上传

于是可以继续使用了,通用的Flash烧写工具……还是以后再做吧。

可以看到,自己动手做的烧写器真的非常实用,而且还避免了板子吃灰,有效提升了板子的价值,特别是这类体积小、功能多的精品开发板。

所以……如果不是有特殊的需求,……

我劝你还是尽量花几十块钱去大TB买个烧写器吧……

DIY时,还无意中发现了自己刚进入工作的时候,不懂硬件不懂电子,为了大概学习一下,后来根据网上一个帖子,DIY的4位加法计算机……全是非门……

最后又帮朋友做了这么个东西……我只负责提供线和加工,不负责提供主要原料,所以配色样式就无可挑剔了……

是个插笔的挂帘……

顺手给闺女做了副鞋垫,资源有限,也没给包个边……

严格遵守了老人的要求:线要密要多,才结实……这下大家满足了吧

以上图文内容均是EEWORLD论坛网友: sjtitr 原创,在此感谢。

欢迎微博@EEWORLD

如果你也写过此类原创干货请关注微信公众号:EEWORLD(电子工程世界)回复“投稿”, 也可将你的原创发至: bbs_service@eeworld.com.cn,一经入选,我们将帮你登上头条!

与更多行业内网友进行交流请登陆EEWORLD论坛。

TL-WR710N无线路由器成功改造完成,过程分享

内容提要:更换DRAM、FLASH,刷固件,扩展USB(无刮U),CPU加散热器,加装TTL下载端子,增加SMA外接天线,加miniUSB DC5V外接电源端口,改造过程中电源损坏修复。

1)换DRAM。拆下原机Zentel A3s28D40FTP(128bits 16MB)DRAM,换HY5DU121622CTP(32*16位 64M)DRAM。

2)接通电阻R66。接通背面R66位置22R电阻(22R电阻从旧内存条上面拆的,上面的电阻基本都是22R)。

3)内存(DRAM)换好后,其它原器件不动,先用原厂FLASH上电测试内存更换成功与否。

----------------------原厂FLASH测试DRAM,如更换成功(路由正常启动,并通过WEB正常进入路由器管理页面)---------------------------(继续)

4)换FLASH。拆下原机cFeon QH16-104HIP 16bits 2MB,用储物袋装好以免丢失。用CH341A编程器夹上要更换的新FLASH芯片(型号W25Q128 = 16M,也可以用8M,型号为W25Q64,但刷入的应对应为8M固件),刷入“tp-link 710N 不死UBOOT 16M编程器固件”。烧录完成后,焊入新芯片。

这里提醒一下,用编程器刷,一定要用编程器固件!一开始我不知道,走了很多弯路。在此感谢恩山论坛的用户“鬼迷了心窍”,并在此帖引用他的16M编程器固件,以方便大家使用。

tp-link 710N 不死UBOOT 16M编程器固件:http://pan.baidu.com/s/1gdBskX9(此固件由恩山用户“鬼迷了心窍”提供)

CH341A编程器的操作过程(本过程仅针对W25Q128芯片):装好芯片-->点击检测(会识别芯片,如果识别失败是芯片引脚未接触好)-->擦除-->查空-->加载编程器固件BIN-->编程-->校验

执行以上操作,即可完成芯片烧录。更多CH341A编程操作请自行查阅相关资料。

-------------------------新更换后的FLASH测试,如更换成功(路由正常启动,并通过WEB正常进入路由器管理页面)---------------------------(继续)

5)此时路由管理页面应该是OPENWRT LUCI(针对本固件)界面。

6)扩展USB挂载功能。找废旧耳机线(或者其它细铜丝,比头发还要再细好几倍的那种,而且需要软的)拆开绝缘层,剪下约5CM,抽出其中两根细芯线,上锡,用烙铁粘松香在AR9331芯片A50引脚附近熏一下,是熏一下,千万不要碰到引脚。将镀锡的细芯线接上AR9331的A50和B43引脚,这两个脚实在太细太细了,很难完成。我因为只有一个小放大镜和一把普通烙铁,来回操作了将近4个小时,才成功不虚焊、不短路,将两根比头发还细的两根线接上这两个引脚。提醒:焊完后想办法查短路,比如用缝衣针替代万用表笔。DM、DP对地电阻约500K,且阻值相同。另外,B43脚靠近B42脚,B42脚为VDD3.3V;A50脚靠近A51,A51貌似未引出使用。B43脚靠近芯片边缘,边缘引脚起第8脚,A50为第9脚。请自行查AR9331资料。

7)取约10CM屏蔽线(虽然后期需要剪掉一段,但取长不取短),先把屏蔽层焊实在数字地上面以固定住屏蔽线不乱动。取极少量热熔胶,小心将细铜丝固定在AR9331附近PCB板上,并使铜丝悬空不贴近PCB板。屏蔽线芯线套入热缩管,然后再小心加小心不要弄断了铜丝,把它们与屏蔽线芯线焊接,用烙铁热缩后,用少量热熔胶把热缩管固定在PCB板上。提醒:固定过程中烙铁要小心不要把铜丝又焊脱了!一定要掌握好加热时间!最后,给CPU(AR9331)增加散热器。

8)然后是USB位置。先拆下USB附近那些挡住烙铁的元件,并把USB数据口PCB板上的充电检测电阻(60R)拆除,但需要保留下拉电阻(50K)。用50R(大致可以22R至60R一般都可以正常使用)直插1/16W电阻(我的是用两个100R并联)接入屏蔽线的另一端芯线,用热缩管套好,屏蔽层齐根剪短即可。电阻另一端先插入USB座D-、D+孔(CPU引脚B43对应D+,A50对应D-),装上USB座即可。

9)以下是成功挂载U盘、移动硬盘照片。

-------------------------上电测试,通过WEB正常进入路由器管理页面,在磁盘信息栏中应可以看到对应的磁盘设备---------------------------(继续)

10)刚才第“4)”步提到原厂FLASH装在储物袋终究还是不保险,说不好哪天就找不见了。反正拆下来放在那里别的地方也用不上,原厂固件也还可以用。最好就像下图一样,焊在原板子上,说不定以后还用的上。

11)加装TTL端子,方便以后开盖就可以直接TTL,本来想引到miniUSB数据脚,感觉不是很安全的样子,作罢。还是用端子做在板子上比较好。

PS:TTL未进行测试。

12)加装SMA外接天线。说不定我的“反转阿摩司无线”又派上用场了。TP的板子一般都会留有外接天线的扩展电路,只是用了印刷天线罢了,可以很好找到位置。拆掉0欧电阻,这个电阻只作短接作用。这个电阻还是有原厂FLASH作法一样,焊回一侧焊盘就好了,留在原电路板上,另一焊盘接上50R馈线。外壳找准位置开孔(找一个比较合理的位置,要让盒子合的上,路由站着、躺着、趴着都能够使用且美观就行。千万不要开到电源接头那边就好了!),穿SMA端子,锁紧螺丝就行了。

13)加miniUSB DC5V外接电源端口。这个功用我觉得挺实用的,比TTL还实用的多。所以,必须装啊。移动电源、插笔记本上,就可以移动蹭网啦。反正移动使用的就用的上就是了。看了下板子的布线,结合盒子的结构、接口位置等因素,没办法把端子装在板子上了,只能考虑跳线。考虑以后拆装方便,插接端子肯定得用上。总不能拆一次就要焊一次电源线吧。

14)至此,710N我想要的功能基本满足了。当然,不排除未来再增加功用或接口的可能。比如我已经想到把FLASH改成DIP的,把FLASH座做到外壳作接口,对我们这些喜欢折腾的人来说,FLASH随时拨下来插上去,这个接口太有必要了。不过,以后再改吧。

完成外观图:

相关问答

uboot 启动哪些系统?

U-Boot(UniversalBootLoader)是一个开源的、通用的引导加载程序,它支持多种嵌入式处理器和操作系统。在U-Boot启动过程中,它会负责加载和启动操作系统内核...

没有usb口小米 路由 器怎么刷机?

第一次刷机更麻烦,要拆下flash芯片刷uboot,uboot刷好后就可以任性刷机了。第一次刷机更麻烦,要拆下flash芯片刷uboot,uboot刷好后就可以任性刷机了。

uboot 是怎样从 nand 加载linux?

一般是开发过程中是先把uboot载到nor中,然后通过nor中的uboot再把uboot跟linux内核,根文件系统下到nandflash,它的最终位置应该是在nandflash。至于nor跟nan...

怎么用 路由 器刷闪讯openwrt固件?

不知道你是要整个flash的编程器用固件,还是刷的那个固件?整个flash的内容用下面的方法取出:1、登录路由2、切换到tmp目录,3、使用dd命令备份uboot、firmw...

小米 路由 肿么刷机教程-ZOL问答

你需要先在小米官网下载好相应固件到本地,再进入路由器设置,进入系统升级,选择下载好的固件进行系统升级。有用(0)回复lz205112222第一次刷机更麻烦,要拆下...

如何让U-boot实现 Nand /Nor双启动?

非常简单,mini2440从Nor启动后,CPU运行在0x00000000地址,这片地址实际对应NorFlash,因为NorFlash是一个Ramlike器件,所以读取数据方法更内存一样,在Uboot...

飞凌开发板6410 uboot 什么命令擦除 nandflash 啊?

sferase+起始地址+擦查长度在uboot下输入help可以查看所有的命令sferase+起始地址+擦查长度在uboot下输入help可以查看所有的命令

请教:WR743N改了16M的 flash 怎么从openwrt中编译出来16M固件?

首先修改trunk/tools/firmware-utils/src/mktplinkfw.c只修改fw_max_len为0xfc0000,16Mflash;只修改fw_max_len为0x7c00...

 武警北京市总队第二医院  北条麻妃作品一览 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部