Firefly-RK3399 支持五路UART:UART0, UART1, UART2, UART3, UART4,都擁有兩個(gè)64字節(jié)的FIFO緩沖區(qū),用于數(shù)據(jù)接收和發(fā)送。 其中:
-
UART0用于藍(lán)牙傳輸,UART2用作調(diào)試串口,只有UART0和UART3支持硬件自動(dòng)流控。
-
支持比特率115.2Kbps,460.8Kbps,921.6Kbps,1.5Mbps,3Mbps,4Mbps。
-
支持自選波特率,即使使用非整數(shù)時(shí)鐘分頻器
-
支持基于中斷或基于DMA的模式
-
支持5-8位寬度傳輸
我們Firefly-RK3399開發(fā)板為了方便用戶使用,引出了一排通用的GPIO,其對(duì)應(yīng)原理圖如下圖:
其中GPIO1_A7和GPIO1_B0兩個(gè)IO口可復(fù)用為uart4_rx和uart4_tx。
文件kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi 有UART相關(guān)節(jié)點(diǎn)的定義:
aliases { ... serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; serial4 = &uart4; };
serial0等串口在該文件的 aliases 節(jié)點(diǎn)中被定義為:serial0 = &uart0;
因?yàn)槲覀僃irefly-RK3399開發(fā)板引出了uart4供用戶使用,所以這里就以u(píng)art4為例,介紹使用方法。下面是uart4節(jié)點(diǎn)相關(guān)定義:
uart4: serial@ff370000 { compatible = "rockchip,rk3399-uart", "snps,dw-apb-uart"; reg = <0x0 0xff370000 0x0 0x100>; clocks = <&pmucru SCLK_UART4_PMU>, <&pmucru PCLK_UART4_PMU>; clock-names = "baudclk", "apb_pclk"; interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH 0>; reg-shift = <2>; reg-io-width = <4>; pinctrl-names = "default"; pinctrl-0 = <&uart4_xfer>; status = "disabled"; }; uart4 { uart4_xfer: uart4-xfer { rockchip,pins = <1 7 RK_FUNC_1 &pcfg_pull_up>, <1 8 RK_FUNC_1 &pcfg_pull_none>; }; };
用戶只需要在kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly-port.dtsi文件中使能該節(jié)點(diǎn)即可使用,如下:
注意:由于uart4_rx和uart4_tx兩個(gè)腳可復(fù)用為spi1_rxd和spi1_txd,所以要留意關(guān)閉掉spi1的使用,如下:
&spidev0 { status = "disabled"; };
調(diào)試方法
配置好串口后,用戶可以通過主機(jī)的 USB 轉(zhuǎn)串口適配器向開發(fā)板的串口收發(fā)數(shù)據(jù),步驟如下:
(1) 連接硬件
將開發(fā)板 UART4 的 TX、RX、GND 引腳分別和主機(jī)串口適配器的 TX、RX、GND 引腳相連。
(2) 打開主機(jī)的串口終端
在終端打開kermit,并設(shè)置波特率:
$ sudo kermit C-Kermit> set line /dev/ttyUSB0 C-Kermit> set speed 9600 C-Kermit> set flow-control none C-Kermit> connect
-
/dev/ttyUSB0 為 USB 轉(zhuǎn)串口適配器的設(shè)備文件
-
波特率與配置 DTS 節(jié)點(diǎn)中的 current-speed 屬性相同
(3) 發(fā)送數(shù)據(jù)
uart4 的設(shè)備文件為 /dev/ttyS4。在設(shè)備上運(yùn)行下列命令:
echo firefly uart4 test... > /dev/ttyS4
主機(jī)中的串口終端即可接收到字符串“firefly uart4 test…”
(4) 接收數(shù)據(jù)
首先在設(shè)備上運(yùn)行下列命令:
cat /dev/ttyS4
然后在主機(jī)的串口終端輸入字符串 “Firefly uart4 test…”,設(shè)備端即可見到相同的字符串。
A1:Firefly RK3399開發(fā)板的TX和RX,分別對(duì)應(yīng)串口適配器(官方)的TX和RX,如果搞混淆了會(huì)導(dǎo)致通信出錯(cuò)。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6085瀏覽量
35295 -
Firefly
+關(guān)注
關(guān)注
2文章
538瀏覽量
7026
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論