[ROC-RK3568-PC] [Firefly-Android] 10min带你了解UART的使用

一、引脚定义
1.1 UART9
UART9的TX、RX引脚存在复用的情况,实际UART9 TX和UART9 RX 分别对应着开发板上的丝印I2S3 SDI、I2S3 SDO,官方Android固件默认UART9是打开的,引脚复用情况:

func0    func1    func2    func3    func4    func5
GPIO4_C5    PWM12_M1    SPI3_MISO_M1    SATA1_ACT_LED    UART9_TX_M1    I2S3_SDO_M1
GPIO4_C6    PWM13_M1    SPI3_CS0_M1    SATA0_ACT_LED    UART9_RX_M1    I2S3_SDI_M1
1.2 RS232和RS485
RS232_1、RS232_2和RS485分别从主控的UART2、UART3、UART4转换而来,其中由于UART2默认作为DEBUG串口,因此RS232_1无法直接使用,需要将UART2配置为普通串口后才可使用。以下是RJ45的部分PIN脚定义:

RJ45引脚    定义    RJ45引脚    定义
1    RS232_2 TX    5    GND
2    RS232_2 RX    6    RS232_1 RX
3    RS232_1 TX    7    RS485_A
4    GND    8    RS485_B
二、设备树配置
在kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-roc-pc.dtsi配置:

RS232_2(对应节点/dev/ttyS3)
&uart3 {
    status = "okay";
    pinctrl-0 = <&uart3m1_xfer>;
};
1
2
3
4
RS485(对应节点/dev/ttyS4)
&uart4 {
    status = "okay";
    pinctrl-0 = <&uart4m1_xfer>;
};
1
2
3
4
UART9(对应节点/dev/ttyS9)
&uart9 {
    status = "okay";
    pinctrl-0 = <&uart9m1_xfer>;
};
1
2
3
4
三、调试
根据不同的接口使用不同的主机的 USB 转串口适配器向开发板的串口收发数据,例如 RS485 的调试步骤如下:

3.1 连接硬件
将ROC-RK3568-PC的RS485所在RJ45 第5(GND)、7(A)、8(B)脚分别与主机串口适配器(USB 转 485 转串口模块)的 GND、A、B引脚相连。

3.2 打开主机的串口终端
安装kermit命令工具:

sudo apt install ckermit

安装完成后打开kermit,设置波特率并连接:

$ sudo kermit
C-Kermit> set line /dev/ttyUSB0
C-Kermit> set speed 9600
C-Kermit> set flow-control none
C-Kermit> connect
1
2
3
4
5
其中/dev/ttyUSB0 为 主机USB 转串口适配器的设备文件

3.3 板子发送数据
板子的RS485 设备文件为 /dev/ttyS4。

在板子上运行下列命令:

echo "firefly RS485 test..." > /dev/ttyS4
1
主机中的串口终端即可接收到字符串 “firefly RS485 test…”

3.4 板子接收数据
首先在板子上运行下列命令:

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

3.5 主机退出kermit串口连接
ctrl+\后按c,退回终端可输入exit

C-Kermit>exit
OK to exit? ok
1
2
四、UART2普通串口配置
Firefly公版Android固件中,UART2默认为DEBUG串口。

以下步骤可以配置为普通串口:

去掉kernel/arch/arm64/configs/firefly_defconfig中CONFIG_SERIAL_8250_CONSOLE配置:
diff --git a/kernel/arch/arm64/configs/firefly_defconfig b/kernel/arch/arm64/configs/firefly_defconfig
index 57ed787..8d6bc18 100644
--- a/kernel/arch/arm64/configs/firefly_defconfig
+++ b/kernel/arch/arm64/configs/firefly_defconfig
@@ -500,7 +500,7 @@ CONFIG_INPUT_RK805_PWRKEY=y
 # CONFIG_LEGACY_PTYS is not set
 CONFIG_SERIAL_8250=y
 # CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-CONFIG_SERIAL_8250_CONSOLE=y
+# CONFIG_SERIAL_8250_CONSOLE is not set
 # CONFIG_SERIAL_8250_PCI is not set
 CONFIG_SERIAL_8250_NR_UARTS=10
 CONFIG_SERIAL_8250_RUNTIME_UARTS=10
1
2
3
4
5
6
7
8
9
10
11
12
13
关闭 kernel/arch/arm64/boot/dts/rockchip/rk3568-android.dtsi中的fiq-debugger节点

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-android.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-android.dtsi
index 55a1716..0e297e6 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-android.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-android.dtsi
@@ -26,7 +26,7 @@
                interrupts = <GIC_SPI 252 IRQ_TYPE_LEVEL_LOW>;
                pinctrl-names = "default";
                pinctrl-0 = <&uart2m0_xfer>;
-               status = "okay";
+               status = "disabled";
        };

        debug: debug@fd904000 {
1
2
3
4
5
6
7
8
9
10
11
12
13
打开uart2节点:

diff --git a/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-roc-pc.dtsi b/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-roc-pc.dtsi
index f4af38a..fb9a3ff 100644
--- a/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-roc-pc.dtsi
+++ b/kernel/arch/arm64/boot/dts/rockchip/rk3568-firefly-roc-pc.dtsi
@@ -137,6 +137,10 @@
        status = "okay";
 };

+&uart2 {
+       status = "okay";
+};
+
1
2
3
4
5
6
7
8
9
10
11
12

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: roc-rk3568-pc是一款基于RK3568芯片的台式电脑板,它能够提供高性能、低功耗、多媒体处理以及AI加速等特性。roc-rk3568-pc实现了PC级性能和功能,可以运行Linux和Android操作系统,同时支持多种显示接口和存储接口。 例如,roc-rk3568-pc支持双频WiFi和蓝牙,可以通过HDMI、DP、VGA等接口连接显示器,还可以使用USB3.0、SATA、NVMe等接口连接存储设备。此外,roc-rk3568-pc还配备了四个USB 2.0接口、两个USB 3.0接口、一个千兆网口、一个SPI Flash等。 对于开发者和爱好者来说,roc-rk3568-pc提供了完整的软件开发包(SDK),包括操作系统、编译器、驱动程序、应用程序等。同时,roc-rk3568-pc还有丰富的软件生态系统和社区支持,大大降低了开发门槛和开发成本。 总之,roc-rk3568-pc是一款高性能、全功能、易开发的台式电脑板,适用于各种应用场景,例如家庭娱乐、远程办公、物联网等。 ### 回答2: ROC-RK3568-PC例程是一个基于ROC-RK3568平台设计的针对PC设备的系统应用程序。该例程主要提供了一个使用ROC-RK3568平台的PC设备的示例,用户可通过该例程学习ROC-RK3568平台的基本应用,相应的硬件配置和软件编程技术。 针对ROC-RK3568-PC例程,用户需要掌握一定的嵌入式系统开发技术。首先,用户需要了解ROC-RK3568平台的基本知识,并安装相应的开发环境和编译器。在编写程序的过程中,用户需要熟悉C/C++语言和Linux操作系统,同时掌握设备驱动和应用程序的编写方法,用于实现安装、媒体播放、网络通信、GUI开发等功能。 ROC-RK3568-PC例程的主要任务是提供一个基本的嵌入式系统应用程序示例,让开发者通过学习和修改代码,快速掌握ROC-RK3568平台的开发和应用。该例程的编写需要开发者对ROC-RK3568平台熟悉到一定程度,需要有一定的软件编码能力和嵌入式系统设计经验。同时,用户还需要具备较好的沟通能力和团队协作能力,与其他成员共同完成开发任务。 总的来说,ROC-RK3568-PC例程是一个有实际应用价值的例程,对于想要深入了解嵌入式系统开发开发者,学习和掌握该例程的编写技术是非常有益的。 ### 回答3: ROC-RK3568-PC例程是指基于ROC-RK3568芯片的PC开发板的样例程序。ROC-RK3568是一款高性能的处理器芯片,可以广泛应用于智能家居、工业控制、远程监控等领域。ROC-RK3568-PC是采用该芯片设计的一款开发板,可以为开发者提供丰富的硬件接口,并支持多种操作系统,如Ubuntu、Android等。 ROC-RK3568-PC例程提供了各种各样的代码示例和应用程序,可以帮助开发者更好地理解和使用ROC-RK3568芯片,实现自己的应用程序。例如,样例程序包括了基于Qt的UI界面设计、GPIO控制、I2C读写、串口通信、网络通信、摄像头采集等功能。此外,还提供了蓝牙配对、TCP/IP通信、远程控制等应用程序,可以帮助开发者快速搭建自己的应用系统。 对于需要使用ROC-RK3568芯片进行开发开发者来说,ROC-RK3568-PC例程是一个非常有用的参考,可以加快开发进度,提高开发效率。自定义应用程序时,只需要根据自己的需求进行修改或者扩展即可。ROC-RK3568-PC例程提供了良好的参考和基础,为开发者快速实现自己所需的功能提供了便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值