Firefly-RK3128开发板UART接口介绍

uart 使用 板载资源介绍 firefly-rk3128 开发板内置 3 路 uart,分别为 uart0,uart1,uart2。uart0 用于蓝牙数据传输,如果要使用 uart0,必须关掉蓝牙,才可以使用扩展槽上的 uart0 针脚。uart1, 因为存在以下复用:
bt_host_wake/spi_txd/uart1_tx bt_wake/spi_rxd/uart1_rx wifi_reg_on/spi_csn0/uart1_rts 若要使用 uart1, 必须关掉蓝牙和 spi 功能,这样才可以使用扩展槽上的 spi_rx 和 spi_tx 针作 uart1_rx 和 uart1_tx 使用。uart2 一般用做调试串口,但同样存在复用,也就是说 tf 卡与调试串口不可以同时使用:
sdmmc_d0/uart2_tx sdmmc_d1/uart2_rx uart1 和 uart2 有 32 字节的 fifo 收发缓冲区,uart0 则要有双 64 字节的 fifo 用作蓝牙数据收发。所有 uart 均支持 5 位、6 位、7 位、8 位数据收发和 dma 操作。
配置 dts 节点 文件 kernel/arch/arm/boot/dts/rk312x.dtsi 中已经有 uart 相关节点定义,如下所示:
uart0: serial@20060000 { compatible = rockchip,serial; reg = ; interrupts = ; clock-frequency = ; clocks = , ; clock-names = sclk_uart, pclk_uart; reg-shift = ; reg-io-width = ; dmas = , ;#dma-cells = ; pinctrl-names = default; pinctrl-0 = ; status = disabled; }; uart1: serial@20064000 { compatible = rockchip,serial; reg = ; interrupts = ; clock-frequency = ; clocks = , ; clock-names = sclk_uart, pclk_uart; reg-shift = ; reg-io-width = ; dmas = , ;#dma-cells = ; pinctrl-names = default; pinctrl-0 = ; status = disabled; };
配置 uart0 用户只需在 kernel/arch/arm/boot/dts/rk3128-fireprime.dts 文件中打开 uart0 ,并关掉蓝牙,如下所示:
&uart0 { status = okay; dma-names = !tx, !rx; pinctrl-0 = ;}; wireless-bluetooth { compatible = bluetooth-platdata; ... status = disabled; };
配置 uart1 用户只需在 kernel/arch/arm/boot/dts/rk3128-fireprime.dts 文件中打开 uart1 ,并关掉蓝牙和 spi,如下所示:
//... wireless-bluetooth { compatible = bluetooth-platdata; ... status = disabled; };//... &spi0 { status = disabled; }; &uart1 { status = okay; dma-names = !tx, !rx; pinctrl-0 = ; };
编译并烧写内核 将串口驱动编译到内核中,在 kernel 目录下执行如下命令:
make firefly_defconfig make rk3128-fireprime.img -j4
把 kernel 目录下生成的 kernel.img 和 resource.img 烧录到开发板中即可。
测试串口通讯 配置好串口后,用户可以通过主机的 usb 转串口适配器向开发板的串口收发数据,以 uart0 为例,步骤如下:
(1) 连接硬件 将开发板 uart0 的 tx、rx、gnd 引脚分别和主机串口适配器的 rx、tx、gnd 引脚相连。注意:如果是使用 firefly 的串口适配器,则是 tx 对 tx,rx 对 rx 连接。
(2) 打开主机的串口终端 在终端打开 kermit,并设置波特率:
$ 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 转串口适配器的设备文件 uart0 的波特率默认为 9600
(3) 发送数据 uart0 的设备文件为 /dev/ttys0。在设备上运行下列命令:
echo firefly uart test... > /dev/ttys0
主机中的串口终端即可接收到字符串“firefly uart test…”
(4) 接收数据 首先在设备上运行下列命令:
cat /dev/ttys0
然后在主机的串口终端输入字符串 “firefly uart test…”,设备端即可见到相同的字符串。要改变 uart0 的波特率,例如 115200,可以运行以下命令:
stty -f /dev/ttys0 115200

正弦波形的相量图定义和相量代数方程教程
AI脑芯片可以解决自闭症和精神分裂症的治疗难题
开关电源初级和次级加上两个电容有什么作用呢?
雷曼光电发布MR系列COB租赁产品
rs232,rs422,rs485的区别 串口通讯怎么加握手
Firefly-RK3128开发板UART接口介绍
电源故障之空载电压不正常、频率过高等问题,试试这些方法→
浅析BUCK芯片在电路中的应用及特点
【虹科终端安全案例】Radwell如何有效防止无文件攻击和内存中的威胁?
语音报血压、报警电路
利亚德表示公司已具备MicroLED的量产条件
新一代Apple Watch为提升心跳血氧感测的准确度,将使用多一倍的绿光LED与红外线LED
stm32 串口9位数据
透射电子显微镜和扫描电子显微镜的区别
RF链路的干扰和抗干扰措施与设备介绍
索尼即将发布全新的A7000相机性能定位为APS-C画幅机型
光电液位传感器在实现液位检测中的应用
电枢和转子的区别
TCL MiniLED技术又一巅峰应用音画娱乐体验一流
Silicon Labs微处理器在新型动态心脏监测仪中的应用