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