Osheep

时光不回头,当下最重要。

XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)

《XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)》

题图:gratisography

XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)

上一章节已经说到小米路由器mini的Uboot、Openwrt都能够正常的启动了,现在想要小米路由器3也能够正常启动,所以我们需要改造下3的硬件。

01-项目背景中已经说明,小米路由器3使用的是nand flash启动,但是预留了spi flash接口。所以猜测小米路由器3也能从spi flash启动。

查看MT7620a的datasheet,会找到如下信息:

《XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)》

启动方式

这边说明了MT7620的启动方式是根据SPI_MOSI、SPI_CLK、TXD2、GPIO0这四个引脚决定的,只要把其设置为2(0010),则就是从spi启动了。

这就头疼了,又没有小米路由器的电路图,我怎么知道这四个引脚位于哪里呢?

虽然可以知道SPI_MOSI、SPI_CLK这两个引脚就是spi接口上的引脚,但还有两个引脚呢。下载了很多有个MT7620的官方资料,也不知道怎么入手查找这四个引脚的位置。

感谢简书用户我是一棵狗尾巴草的提示,竟然发现小米路由器上该部分的电路跟官方提供的一样,而且连电阻的编号都没有变,只能说小米的工程师太懒了。

四个启动引脚的电路如下:

《XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)》

引脚电路图

观察小米路由器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在电路板正面:

《XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)》

R139->R137

R124和R126在电路板反面:

《XiaomiRouter自学之路(12-改造小米路由器3使之支持spi启动)》

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相关教程,感谢您的查阅。

点赞