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

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

3天内不再提示

Firefly关于UART接口使用介绍

firefly 来源:Firefly 作者:Firefly 2019-11-20 11:01 次阅读
UART 使用
简介

Firefly-RK3399 支持五路UART:UART0, UART1, UART2, UART3, UART4,都拥有两个64字节的FIFO缓冲区,用于数据接收和发送。 其中:

  • UART0用于蓝牙传输,UART2用作调试串口,只有UART0和UART3支持硬件自动流控。

  • 支持比特率115.2Kbps,460.8Kbps,921.6Kbps,1.5Mbps,3Mbps,4Mbps。

  • 支持自选波特率,即使使用非整数时钟分频器

  • 支持基于中断或基于DMA的模式

  • 支持5-8位宽度传输

我们Firefly-RK3399开发板为了方便用户使用,引出了一排通用的GPIO,其对应原理图如下图:

其中GPIO1_A7和GPIO1_B0两个IO口可复用为uart4_rx和uart4_tx。

DTS配置

文件kernel/arch/arm64/boot/dts/rockchip/rk3399.dtsi 有UART相关节点的定义:

aliases { ... serial0 = &uart0; serial1 = &uart1; serial2 = &uart2; serial3 = &uart3; serial4 = &uart4; };

serial0等串口在该文件的 aliases 节点中被定义为:serial0 = &uart0;

因为我们Firefly-RK3399开发板引出了uart4供用户使用,所以这里就以uart4为例,介绍使用方法。下面是uart4节点相关定义:

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文件中使能该节点即可使用,如下:

&uart4 { current-speed = <9600>; no-loopback-test; status = "okay"; };

注意:由于uart4_rx和uart4_tx两个脚可复用为spi1_rxd和spi1_txd,所以要留意关闭掉spi1的使用,如下:

&spidev0 { status = "disabled"; };

调试方法

配置好串口后,用户可以通过主机的 USB 转串口适配器向开发板的串口收发数据,步骤如下:

(1) 连接硬件

将开发板 UART4 的 TX、RX、GND 引脚分别和主机串口适配器的 TX、RX、GND 引脚相连。

(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 转串口适配器的设备文件

  • 波特率与配置 DTS 节点中的 current-speed 属性相同

(3) 发送数据

uart4 的设备文件为 /dev/ttyS4。在设备上运行下列命令:

echo firefly uart4 test... > /dev/ttyS4

主机中的串口终端即可接收到字符串“firefly uart4 test…”

(4) 接收数据

首先在设备上运行下列命令:

cat /dev/ttyS4

然后在主机的串口终端输入字符串 “Firefly uart4 test…”,设备端即可见到相同的字符串。

FAQs
Q1: 为何板子接上串口适配器后系统报错?

A1:Firefly RK3399开发板的TX和RX,分别对应串口适配器(官方)的TX和RX,如果搞混淆了会导致通信出错。


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

    关注

    7

    文章

    6064

    浏览量

    34613
  • Firefly
    +关注

    关注

    2

    文章

    534

    浏览量

    6757
收藏 人收藏

    评论

    相关推荐

    关于FPGA开发手记之UART接口的开发

    使用的串行数据传输协议。UART允许在串行链路上进行全双工的通信。 串行外设用到RS232-C异步串行接口,一般采用专用的集成电路即UART实现。
    发表于 10-06 16:59 668次阅读
    <b class='flag-5'>关于</b>FPGA开发手记之<b class='flag-5'>UART</b><b class='flag-5'>接口</b>的开发

    uart接口介绍和认识

    我们常用UART口进行调试,但是UART的数据要传到电脑上分析就要匹配电脑的接口,通常我们电脑使用接口有COM口和USB口(最终在电脑上是一个虚拟的COM口),但是要想连上这两种
    发表于 12-28 08:42 2.3w次阅读
    <b class='flag-5'>uart</b><b class='flag-5'>接口</b><b class='flag-5'>介绍</b>和认识

    简单介绍两款UART接口的WiFi模块

    UART接口UART接口是通用的异步串行接口,按照标准波特率完成双向通讯,传输速度较慢。采用UART
    的头像 发表于 08-09 19:01 6747次阅读

    Firefly微信硬件平台介绍

    我们一直不断寻找和筛选前沿技术,致力让这些技术成为开源项目,而我们也相信未来会完全进入一个“硬件+云”的时代,因此,我们启动了“Firefly智能云”计划,着力打造一个开放、平等的云平台。而作为
    的头像 发表于 10-31 17:53 1302次阅读

    Firefly-RK3399--接口介绍

    Firefly-RK3399 提供了丰富的接口,主要包括:电源接口
    的头像 发表于 11-19 15:25 3278次阅读
    <b class='flag-5'>Firefly</b>-RK3399--<b class='flag-5'>接口</b><b class='flag-5'>介绍</b>

    Firefly关于的屏幕模组简介

    Firefly
    的头像 发表于 11-20 10:47 1251次阅读
    <b class='flag-5'>Firefly</b><b class='flag-5'>关于</b>的屏幕模组简介

    Firefly关于SPI简介

    SPI是一种高速的,全双工,同步串行通信接口,用于连接微控制器、传感器、存储设备等。 Firefly-RK3399 开发板提供了 SPI1 (单片选)接口
    的头像 发表于 11-20 11:21 1406次阅读
    <b class='flag-5'>Firefly</b><b class='flag-5'>关于</b>SPI简介

    Firefly-RK3399--LCD介绍

    Firefly-RK3399开发板外置了两个LCD屏接口,一个是EDP,一个是MIPI
    的头像 发表于 11-22 10:17 5896次阅读
    <b class='flag-5'>Firefly</b>-RK3399--LCD<b class='flag-5'>介绍</b>

    Firefly-RK3288开发板介绍

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

    Firefly-RK3288--IR主板介绍

    Firefly-RK3288/Firefly-RK3288-Reload开发板上使用红外收发传感器 IR (在 USB OTG 接口和音频接口之间)实现遥控功能。
    的头像 发表于 11-26 17:10 2489次阅读
    <b class='flag-5'>Firefly</b>-RK3288--IR主板<b class='flag-5'>介绍</b>

    Firefly-RK328开发板ADC接口介绍

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

    Firefly-RK3128开发板UART接口介绍

    refly-RK3128 开发板内置 3 路 UART,分别为 uart0,uart1,uart2。uart0 用于蓝牙数据传输,如果要使用
    的头像 发表于 11-28 16:36 2871次阅读
    <b class='flag-5'>Firefly</b>-RK3128开发板<b class='flag-5'>UART</b><b class='flag-5'>接口</b><b class='flag-5'>介绍</b>

    Firefly-RK3128主板接口定义介绍

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

    Firefly-PX3-SE主板串口介绍

    Firefly-PX3-SE 开发板的调试串口与 TF 卡接口有信号引脚复用,因此无法同时使用。
    的头像 发表于 12-04 08:49 1315次阅读
    <b class='flag-5'>Firefly</b>-PX3-SE主板串口<b class='flag-5'>介绍</b>

    digilentUSB转UART接口介绍

    基于FTDI FT232RQ,PmodUSBUART提供了一个USB与UART接口交叉转换模块。用户可在该Pmod任一方向发送数据,并以适当的格式接收转换后的数据。
    的头像 发表于 11-27 14:36 2045次阅读
    digilentUSB转<b class='flag-5'>UART</b><b class='flag-5'>接口</b><b class='flag-5'>介绍</b>