開發(fā)環(huán)境:
主機(jī):Ubuntu12.04
開發(fā)板:RT5350
Openwrt:Openwrt15.05
1 硬件原理
從RT5350的芯片手冊上可以得知, RT5350一共有兩個(gè)串口, 分別為UART Lite、 UART Full,詳細(xì)定義如下。
表1
UART Lite 就是我們慣稱為的串口 1,作為系統(tǒng)調(diào)試串口,通過這個(gè)串口,我們可以看到 OpenWrt(Linux)系統(tǒng)的啟動(dòng)信息,并且可以通過該串口來控制開發(fā)板。 UART Full 就是我們慣稱為的串口 2,我們通常就是用它來做 Wi-Fi 串口,然后用來控制其他串口設(shè)備。
表2
通過上表,我們發(fā)現(xiàn)串口 1 是和 GPIO15、16 復(fù)用的,而串口 2 是和 GPIO7~14 復(fù)用的。如果我們再詳細(xì)的看芯片手冊,我們就會(huì)發(fā)現(xiàn),串口 2 其實(shí)也是和 I2S 復(fù)用的,具體如下。
表3
通過這張表格,我們就能找出串口 2 對(duì)應(yīng)的管腳了。對(duì)于串口,我們其實(shí)也只用關(guān)系發(fā)送(TXD)、接受(RXD)和地(GND)三個(gè)引腳。因此,對(duì)于串口 2,也就是 I2SSDI、I2SWS、GND 三個(gè)引腳了。
2 OpenWrt 支持串口 2
為了使用開發(fā)板的串口 2,必須首先把串口使能,由于我們是使用的 MPRA2 這款路由的配置, 在它的配置上串口被配置成了 GPIO, 用于控制 LEDs, 所以這里需要把它改為串口模式。修改非常簡單,只要修改 dts 配置文件就可以,這里就不啰嗦了,直接講述如何修改串口的配置。
首先修改 target/linux/ramips/dts 目錄下的 rt5350.dtsi 配置文件。默認(rèn)的 rt5350.dtsi 配置文件,是將那個(gè)擴(kuò)展串口狀態(tài)給禁用了,所以我們看不到擴(kuò)展串口。這里需要把那行去掉或者將狀態(tài)改為 okay,詳細(xì)如下。
rt5350.dtsi 配置文件中除了修改擴(kuò)展串口狀態(tài)外,還需要修改設(shè)備節(jié)點(diǎn)。
因?yàn)槲覀儼褦U(kuò)展串口狀態(tài)使能后,它將在調(diào)試串口的前面,擴(kuò)展串口變?yōu)?ttyS0,而調(diào)試串口變?yōu)?ttyS1,所以這里需要把調(diào)試串口的 ttyS0,變?yōu)?ttyS1,具體如下。
修改后:
這樣,rt5350.dtsi 配置文件就改完了,但是擴(kuò)展串口相應(yīng)引腳被設(shè)置為了 GPIO 模式,怎么樣才能變?yōu)榇谀J搅四??需要修?MPRA2.dts 這個(gè)配置文件,同樣位于源碼target/linux/ramips/dts 目錄下。
把 GPIO 模式去掉,把設(shè)置 GPIO 的設(shè)置項(xiàng)中 uartf 去掉,詳細(xì)如下
修改后:
3 串口2 的簡單測試
注意:開發(fā)板上必須進(jìn)行如下短接。
圖1
經(jīng)過前面的努力,擴(kuò)展串口 2 就可以使用了,擴(kuò)展串口 2 的名字為 ttyS0,我們可以通過 echo hello f403tech > /dev/ttyS0 這個(gè)命令進(jìn)行測試,如果對(duì)方接收到 hello f403tech這個(gè)字符串,那說明串口 2 已經(jīng)可以正常使用了。注意,此時(shí)串口 2 默認(rèn)的波特率是 9600。
圖2
審核編輯:湯梓紅
-
串口
+關(guān)注
關(guān)注
14文章
1551瀏覽量
76419 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5032瀏覽量
97371 -
Ubuntu
+關(guān)注
關(guān)注
5文章
563瀏覽量
29702 -
OpenWrt
+關(guān)注
關(guān)注
10文章
130瀏覽量
39296
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論