UART 使用
板載資源介紹
AIO-3128C 開發(fā)板內(nèi)置 3 路 UART,分別為 uart0,uart1,uart2。
uart0 用于藍(lán)牙數(shù)據(jù)傳輸,如果要使用 uart0,必須關(guān)掉藍(lán)牙,才可以使用擴(kuò)展槽上的 UART0 針腳。
uart1, 因?yàn)榇嬖谝韵聫?fù)用:
SPI_TXD/UART1_TX
SPI_RXD/UART1_RX
SPI_CSN0/UART1_RTS
AIO-3128C 使用SPI橋接/擴(kuò)展4個(gè)增強(qiáng)功能串口(UART)的功能,分別為UART1,RS232(上),RS232(下),RS485功能,其中RS232(下)口硬件可做修改為TTL功能。 每個(gè)UART都擁有256字節(jié)的FIFO緩沖區(qū),用于數(shù)據(jù)接收和發(fā)送。
uart2 一般用做調(diào)試串口,但同樣存在復(fù)用,也就是說(shuō) TF 卡與調(diào)試串口不可以同時(shí)使用:
SDMMC_D0/UART2_TX
SDMMC_D1/UART2_RX
uart2 有 32 字節(jié)的 FIFO 收發(fā)緩沖區(qū),uart0 則要有雙 64 字節(jié)的 FIFO 用作藍(lán)牙數(shù)據(jù)收發(fā)。所有 uart 均支持 5 位、6 位、7 位、8 位數(shù)據(jù)收發(fā)和 DMA 操作。
配置 DTS 節(jié)點(diǎn)
文件 kernel/arch/arm/boot/dts/aio-3128c.dtsi 中已經(jīng)有 spi轉(zhuǎn)uart 相關(guān)節(jié)點(diǎn)定義,如下所示:
&spi0 { status = "okay"; max-freq = <48000000>; dac0: dh2228@00 { status = "disabled"; compatible = "rohm,dh2228fv"; reg = <00>; spi-max-frequency = <100000>; }; spi_wk2xxx: spi_wk2xxx@00{ status = "okay"; compatible = "firefly,spi-wk2xxx"; reg = <0x00>; spi-max-frequency = <10000000>; reset-gpio = <&gpio3 GPIO_D3 GPIO_ACTIVE_HIGH>; irq-gpio = <&gpio1 GPIO_B4 IRQ_TYPE_EDGE_FALLING>; cs-gpio = <&gpio1 GPIO_B3 GPIO_ACTIVE_HIGH>; pwr-en-gpio = <&gpio0 GPIO_B4 GPIO_ACTIVE_HIGH>; }; };
調(diào)試方法
RS485:/dev/ttysWK0 RS232(上):/dev/ttysWK1 RS232(下):/dev/ttysWK2 UART1:/dev/ttysWK3
配置 uart0
用戶只需在 kernel/arch/arm/boot/dts/aio-3128c.dts 文件中打開 uart0 ,并關(guān)掉藍(lán)牙,如下所示:
&uart0 { status = "okay"; dma-names = "!tx", "!rx"; pinctrl-0 = <&uart0_xfer &uart0_cts>;}; wireless-bluetooth { compatible = "bluetooth-platdata"; ... status = "disabled"; }; };
編譯并燒寫內(nèi)核
將串口驅(qū)動(dòng)編譯到內(nèi)核中,在 kernel 目錄下執(zhí)行如下命令:
make AIO-3128C_defconfig make AIO-3128C.img -j4
把 kernel 目錄下生成的 kernel.img 和 resource.img 燒錄到開發(fā)板中即可。
測(cè)試串口通訊
配置好串口后,用戶可以通過(guò)主機(jī)的 USB 轉(zhuǎn)串口適配器向開發(fā)板的串口收發(fā)數(shù)據(jù),以 uart0 為例,步驟如下:
連接硬件
將開發(fā)板 uart0 的 TX、RX、GND 引腳分別和主機(jī)串口適配器的 RX、TX、GND 引腳相連。注意:如果是使用 Firefly 的串口適配器,則是 TX 對(duì) TX,RX 對(duì) RX 連接。
打開主機(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è)備文件
uart0 的波特率默認(rèn)為 9600
發(fā)送數(shù)據(jù)
uart0 的設(shè)備文件為 /dev/ttyS0。在設(shè)備上運(yùn)行下列命令:
echo firefly uart test... > /dev/ttyS0
主機(jī)中的串口終端即可接收到字符串“firefly uart test…”
接收數(shù)據(jù)
首先在設(shè)備上運(yùn)行下列命令:
cat /dev/ttyS0
然后在主機(jī)的串口終端輸入字符串 “Firefly uart test…”,設(shè)備端即可見(jiàn)到相同的字符串。要改變 uart0 的波特率,例如 115200,可以運(yùn)行以下命令:
stty -F /dev/ttyS0 115200
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6095瀏覽量
36108 -
Firefly
+關(guān)注
關(guān)注
2文章
541瀏覽量
7354
發(fā)布評(píng)論請(qǐng)先 登錄
超高性價(jià)比AIO-3128C開源主板
firefly RK3128開發(fā)板 AIO-3128C介紹

fireflyAIO-3399C主板UART介紹

AIO-3288C開發(fā)板UART串口簡(jiǎn)介
微雪電子AIO-3128C主板SPI使用介紹

fireflyAIO-3128C主板啟動(dòng)模式介紹
fireflyAIO-3128C主板串口調(diào)試介紹

評(píng)論