XiaomiRouter自學(xué)之路(12-改造小米路由器3使之支持spi啟動)
上一章節(jié)已經(jīng)說到小米路由器mini的Uboot、Openwrt都能夠正常的啟動了,現(xiàn)在想要小米路由器3也能夠正常啟動,所以我們需要改造下3的硬件。
在01-項目背景中已經(jīng)說明,小米路由器3使用的是nand flash啟動,但是預(yù)留了spi flash接口。所以猜測小米路由器3也能從spi flash啟動。
查看MT7620a的datasheet,會找到如下信息:
這邊說明了MT7620的啟動方式是根據(jù)SPI_MOSI、SPI_CLK、TXD2、GPIO0這四個引腳決定的,只要把其設(shè)置為2(0010),則就是從spi啟動了。
這就頭疼了,又沒有小米路由器的電路圖,我怎么知道這四個引腳位于哪里呢?
雖然可以知道SPI_MOSI、SPI_CLK這兩個引腳就是spi接口上的引腳,但還有兩個引腳呢。下載了很多有個MT7620的官方資料,也不知道怎么入手查找這四個引腳的位置。
感謝簡書用戶我是一棵狗尾巴草的提示,竟然發(fā)現(xiàn)小米路由器上該部分的電路跟官方提供的一樣,而且連電阻的編號都沒有變,只能說小米的工程師太懶了。
四個啟動引腳的電路如下:
觀察小米路由器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在電路板正面:
R124和R126在電路板反面:
硬件改造完成后,將原來使用在小米路由器mini上的spi flash拆下來,安裝到小米路由器3看是否能啟動,如果硬件改造成功的話,即可看到小米路由器3正常啟動。
將小米路由器3上電后,發(fā)現(xiàn)雖然是從spi flash啟動了,可是在u-boot階段觸發(fā)了web更新image,導(dǎo)致不能正常啟動,如下
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不一樣導(dǎo)致的,在mini上沒觸發(fā)web更新image,但在3上面觸發(fā)了,關(guān)于web更新image這個功能將在下一章節(jié)進(jìn)行說明。
改造小米路由器3使之支持spi啟動的分析就到這邊,有感悟時會持續(xù)會更新。
注:以上內(nèi)容都是本人在學(xué)習(xí)過程積累的一些心得,難免會有參考到其他文章的一些知識,如有侵權(quán),請及時通知我,我將及時刪除或標(biāo)注內(nèi)容出處,如有錯誤之處也請指出,進(jìn)行探討學(xué)習(xí)。文章只是起一個引導(dǎo)作用,詳細(xì)的數(shù)據(jù)解析內(nèi)容還請查看XiaomiRouter相關(guān)教程,感謝您的查閱。