XiaomiRouter自学之路(12-改造小米路由器3使之支持
XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)
上一章节已经说到小米路由器mini的Uboot、Openwrt都能够正常的启动了,现在想要小米路由器3也能够正常启动,所以我们需要改造下3的硬件。
在01-项目背景中已经说明,小米路由器3使用的是nand flash启动,但是预留了spi flash接口。所以猜测小米路由器3也能从spi flash启动。
查看MT7620a的datasheet,会找到如下信息:
启动方式
这边说明了MT7620的启动方式是根据SPI_MOSI、SPI_CLK、TXD2、GPIO0这四个引脚决定的,只要把其设置为2(0010),则就是从spi启动了。
这就头疼了,又没有小米路由器的电路图,我怎么知道这四个引脚位于哪里呢?
虽然可以知道SPI_MOSI、SPI_CLK这两个引脚就是spi接口上的引脚,但还有两个引脚呢。下载了很多有个MT7620的官方资料,也不知道怎么入手查找这四个引脚的位置。
感谢简书用户我是一棵狗尾巴草的提示,竟然发现小米路由器上该部分的电路跟官方提供的一样,而且连电阻的编号都没有变,只能说小米的工程师太懒了。
四个启动引脚的电路如下:
引脚电路图
观察小米路由器mini和小米路由器3这这个引脚的链接方式,如下:
小米路由器mini | 小米路由器3 | |
---|---|---|
SPI_MOSI | R135 | R135 |
SPI_CLK | R127 | R127 |
TXD2 | R137 | R139 |
GPIO0 | R126 | R124 |
可以观察到:
- 小米路由器mini为0010,及即启动方式中的2,spi启动。
- 小米路由器3为0001,及启动方式中的1,nand启动。
所以我们需要做的就是将小米路由器3的R139拆掉焊接到R137处,R124拆掉焊接到R126处即可。
改造后如下图:
R139和R137在电路板正面:
R139->R137
R124和R126在电路板反面:
R124->R126
硬件改造完成后,将原来使用在小米路由器mini上的spi flash拆下来,安装到小米路由器3看是否能启动,如果硬件改造成功的话,即可看到小米路由器3正常启动。
将小米路由器3上电后,发现虽然是从spi flash启动了,可是在u-boot阶段触发了web更新image,导致不能正常启动,如下
NetLoopHttpd,call eth_halt !
Trying Eth0 (10/100-M)
Waitting for RX_DMA_BUSY status Start... done
ETH_STATE_ACTIVE!!
HTTP server is starting at IP: 192.168.128.1
HTTP server is ready!
这是由于小米路由器3和小米路由器mini的RESET引脚使用的GPIO不一样导致的,在mini上没触发web更新image,但在3上面触发了,关于web更新image这个功能将在下一章节进行说明。
改造小米路由器3使之支持spi启动的分析就到这边,有感悟时会持续会更新。
注:以上内容都是本人在学习过程积累的一些心得,难免会有参考到其他文章的一些知识,如有侵权,请及时通知我,我将及时删除或标注内容出处,如有错误之处也请指出,进行探讨学习。文章只是起一个引导作用,详细的数据解析内容还请查看XiaomiRouter相关教程,感谢您的查阅。