0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Firefly-RK3128开发板UART接口介绍

firefly 来源:firefly 作者:firefly 2019-11-28 16:36 次阅读
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 = <0x20060000 0x100>; interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; clock-frequency = <24000000>; clocks = <&clk_uart0>, <&clk_gates8 0>; clock-names = "sclk_uart", "pclk_uart"; reg-shift = <2>; reg-io-width = <4>; dmas = <&pdma 2>, <&pdma 3>;#dma-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&uart0_xfer &uart0_cts &uart0_rts>; status = "disabled"; }; uart1: serial@20064000 { compatible = "rockchip,serial"; reg = <0x20064000 0x100>; interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; clock-frequency = <24000000>; clocks = <&clk_uart1>, <&clk_gates8 1>; clock-names = "sclk_uart", "pclk_uart"; reg-shift = <2>; reg-io-width = <4>; dmas = <&pdma 4>, <&pdma 5>;#dma-cells = <2>; pinctrl-names = "default"; pinctrl-0 = <&uart1_xfer &uart1_cts &uart1_rts>; status = "disabled"; };
配置 uart0

用户只需在 kernel/arch/arm/boot/dts/rk3128-fireprime.dts 文件中打开 uart0 ,并关掉蓝牙,如下所示:

&uart0 { status = "okay"; dma-names = "!tx", "!rx"; pinctrl-0 = <&uart0_xfer &uart0_cts>;}; 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 = <&uart1_xfer &uart1_cts>; };
编译并烧写内核

将串口驱动编译到内核中,在 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

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6064

    浏览量

    34602
  • Firefly
    +关注

    关注

    2

    文章

    534

    浏览量

    6754
收藏 人收藏

    评论

    相关推荐

    Firefly-RK3128开发板上手教程(上)

    1、Firefly-RK3128开发板入手指南配件Firefly-RK3128 的标准套装包含以下配件:Core-3128J 核心一块
    发表于 08-12 17:32

    Firefly-RK3128开发板上手教程(下)

    1、如何将主机上的固件文件通过双公头USB数据线烧录到开发板的闪存中准备工作Firefly-RK3128 开发板固件主机良好的 Micro USB OTG 线固件文件一般有两种:单个统一固件
    发表于 08-12 17:51

    Firefly-RK3128 MIPI DSI使用步骤说明

    screen-type属性:显示屏类型,Firefly-RK3128只支持单通道MIPI屏,配置成SCREEN_MIPI即可。lvds-format属性:无关选项。out-face属性:配置颜色,可为OUT_P888
    发表于 08-22 17:12

    firefly RK3128开发板介绍

    Firefly-RK3128 采用Cortex-A7架构四核1.3GHz处理器,集成Mali-400MP2 GPU, 拥有优秀的运算与图形处理能力;板载千兆以太网口、2.4GHz Wi-Fi和蓝牙4.0
    的头像 发表于 11-14 11:27 3836次阅读
    <b class='flag-5'>firefly</b> <b class='flag-5'>RK3128</b><b class='flag-5'>开发板</b><b class='flag-5'>介绍</b>

    Firefly-RK3288开发板介绍

    Firefly-RK3288 开发板内置 5 路 UART,分别为 uart0,uart1,uart
    的头像 发表于 11-25 10:27 2590次阅读
    <b class='flag-5'>Firefly-RK</b>3288<b class='flag-5'>开发板</b><b class='flag-5'>介绍</b>

    Firefly-RK328开发板ADC接口介绍

    Firefly-RK3288 开发板上的 AD 接口分为:高速 ADC 流接口 (High-speed ADC Stream Interface)、温度传感器 (Temperature
    的头像 发表于 11-27 09:16 2080次阅读
    <b class='flag-5'>Firefly-RK</b>328<b class='flag-5'>开发板</b>ADC<b class='flag-5'>接口</b><b class='flag-5'>介绍</b>

    Firefly-RK3128主板PWM输出介绍

    Firefly-RK3128 开发板上有 4 路 PWM 输出,分别为 PWM0 ~ PWM3
    的头像 发表于 11-28 16:56 1985次阅读
    <b class='flag-5'>Firefly-RK3128</b>主板PWM输出<b class='flag-5'>介绍</b>

    Firefly-RK3128主板LED子系统介绍

    Firefly-RK3128 开发板上有 2 个 LED 灯
    的头像 发表于 11-28 17:01 2478次阅读
    <b class='flag-5'>Firefly-RK3128</b>主板LED子系统<b class='flag-5'>介绍</b>

    Firefly-RK3128主板I2C控制器

    Firefly-RK3128 开发板上有 4 个片上 I2C 控制器。本文主要描述如何在该开发板上配置 I2C。
    的头像 发表于 11-29 08:47 1177次阅读
    <b class='flag-5'>Firefly-RK3128</b>主板I2C控制器

    Firefly-RK3128开发板摄像头的介绍

    Firefly-RK3128 开发板上有 CIF 接口,支持 CIF 摄像头。
    的头像 发表于 11-28 16:48 3329次阅读
    <b class='flag-5'>Firefly-RK3128</b><b class='flag-5'>开发板</b>摄像头的<b class='flag-5'>介绍</b>

    Firefly-RK3128主板ADC简介

    Firefly-RK3128 开发板有一个 3 通道(0/1/2)、10 比特精度的 SAR ADC (Successive Approximation Register,逐次逼近寄存器),
    的头像 发表于 11-28 17:17 3092次阅读
    <b class='flag-5'>Firefly-RK3128</b>主板ADC简介

    Firefly-RK3128主板接口定义介绍

    Firefly-RK3128 开发板提供了丰富的接口,主要包括:HDMI、音频数字光纤、以太网、电源接口、复位按键、电源键、音频输入输出、硅麦、串口调试
    的头像 发表于 11-29 08:45 3025次阅读
    <b class='flag-5'>Firefly-RK3128</b>主板<b class='flag-5'>接口</b>定义<b class='flag-5'>介绍</b>

    FireflyRK3128主板外壳介绍

    外壳 Firefly-RK3128 CAD图 核心板 底板 Firefly-RK3128 外壳亚克力CAD图
    的头像 发表于 11-29 09:19 951次阅读
    FireflyRK<b class='flag-5'>3128</b>主板外壳<b class='flag-5'>介绍</b>

    Firefly-RK3128主板启动模式简介

    Firefly-RK3128 有灵活的启动方式。
    的头像 发表于 11-29 09:27 4628次阅读

    Firefly-RK3128主板串口调试

    Firefly-RK3128 开发板的调试串口与 TF 卡接口有信号引脚复用,因此无法同时使用
    的头像 发表于 11-29 09:47 2979次阅读
    <b class='flag-5'>Firefly-RK3128</b>主板串口调试