UART 串口配置
本文档介绍如何在 RK3588 Linux SDK 中修改 CPU 串口波特率配置。
概述
在嵌入式开发中,串口通信是重要的调试和通信手段。RK3588 平台支持多种串口波特率配置,本文档将详细介绍如何统一调整 CPU 调试串口(UART)的波特率。
支持的波特率
RK3588 平台支持以下串口波��特率:
- 115200 (标准波特率)
- 1500000 (高速波特率)
默认是 1500000 (高速波特率)
配置步骤
1. 修改 U-Boot 阶段 UART 波特率
1.1 修改 DDR 参数配置文件
编辑 DDR 参数配置文件:
vi neardi-rk3588-linux/rkbin/tools/ddrbin_param.txt
在文件中找到 uart baudrate 参数,修改为所需的波特率:
uart baudrate=115200
1.2 重新生成 DDR 初始化固件
使用 ddrbin_tool 工具重新生成 DDR 初始化固件:
cd neardi-rk3588-linux
./rkbin/tools/ddrbin_tool ./rkbin/tools/ddrbin_param.txt ./rkbin/bin/rk35/rk3588_ddr_lp4_2112MHz_lp5_2736MHz_v1.08.bin
注意:当前使用的 bin 文件可以通过
neardi-rk3588-linux/rkbin/RKBOOT/RK3588MINIALL.ini中的FlashData参数获取。
2. 修改 Linux Kernel 阶段 UART 波特率
2.1 修改设备树文件
编辑设备树文件:
vi kernel/arch/arm64/boot/dts/rockchip/rk3588-linux.dtsi
找到 fiq_debugger 节点,修改 rockchip,baudrate 参数:
fiq_debugger: fiq-debugger {
rockchip,wake-irq = <0>;
/* If enable uart uses irq instead of fiq */
rockchip,irq-mode-enable = <1>;
- rockchip,baudrate = <1500000>; /* Only 115200 and 1500000 */
+ rockchip,baudrate = <115200>; /* Only 115200 and 1500000 */
interrupts = <GIC_SPI 423 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&uart2m0_xfer>;
3. 重新编译并烧录固件
3.1 编译固件
执行编译脚本:
cd neardi-rk3588-linux
./build.sh
3.2 烧录固件
编译完成后,重新烧录完整固件:
- 默认生成的是 buildroot 固件
- 如需 Ubuntu 固件,请重新执行 Ubuntu 打包步骤
验证配置
串口工具配置
在使用串口调试工具时,确保工具的波特率设置与系统配置一致:
-
SecureCRT / PuTTY / MobaXterm:
- 波特率:115200 或 1500000
- 数据位:8
- 停止位:1
- 校验位:无
- 流控:无
-
minicom (Linux):
minicom -D /dev/ttyUSB0 -b 115200
测试连接
- 连接串口线到开发板
- 打开串口工具,设置正确的波特率
- 重启开发板
- 观察启动日志输出是否正常
常见问题
Q1: 修改波特率后无法看到启动日志
A1: 检查以下几点:
- 确认串口工具的波特率设置与系统配置一致
- 检查串口线连接是否正确
- 确认 DDR 固件和内核设备树都已正确修改
Q2: 支持其他波特率吗?
A2: RK3588 平台目前仅支持 115200 和 1500000 两种波特率。
Q3: 如何恢复默认配置?
A3: 将 ddrbin_param.txt 和设备树文件中的波特率参数恢复为 1500000,然后重新编译烧录。
参考资料
- 《Rockchip_Developer_Guide_DDR_CN.pdf》
- RK3588 技术参考手册
- Neardi 开发板用户手册
注意事项
- 备份重要文件:修改前请备份原始的配置文件
- 一致性:确保 U-Boot 和 Kernel 阶段的波特率配置保持一致
- 工具配置:修改系统波特率后,记得同步更新串口调试工具的配置
- 固件烧录:配置修改后必须重新编译并烧录完整固件才能生效