当前位置:首页 > 科技创新 > 正文

瑞芯微(EASY EAI)RV1126B 串口波特率修改

1. 波特率介绍

1.1 波特率的基本概念

波特率(Baud Rate)是指数据通信中,每秒传输的码元数,单位为波特(Baud),本质是衡量数据传输速率的核心指标,反映串口通信中信号变化的频率。简单来说,波特率决定了串口每秒能发送多少个“信号单元”,每个信号单元可携带1个或多个比特(bit)的数据,因此波特率与比特率密切相关,但二者并非完全等同(比特率=波特率×每个码元携带的比特数)。

嵌入式设备串口通信中,常见的波特率有9600、19200、38400、115200等,设备之间进行串口通信时,发送端与接收端的波特率必须完全一致,否则会出现数据传输乱码、丢失甚至无法通信的问题,这是串口通信的基础前提。

2. 波特率配置修改

2.1 修改U-BOOT的defconfig配置

1、通过《嵌入式底层开发/ubuntu系统SDK/源码获取》进行SDK的获取

2、进入u-boot目录修改rv1126b_defconfig文件

vim u-boot/configs/rv1126b_defconfig

v2-24fcd9fa29fed49d922f6c37a841bad6_720w.webp

2.2 修改U-BOOT的DDR BIN配置

DDR BIN是DDR内存初始化配置文件,部分设备的串口波特率配置会关联DDR BIN,若不修改此处配置,可能导致设备启动后串口无法正常工作,若有其他配置需求可阅读ddrbin_tool_user_guide.txt导读,修改步骤如下:

1、查看RV1126BMINIALL.ini配置

打开rkbin/RKBOOT目录,查看RV1126BMINIALL.ini配置

v2-15c72ee65b248346d8628489e9e7a48d_720w.webp

查看初始默认的.bin文件名:rv1126b_ddr_1332MHz_v1.06.bin

2、拷贝一个新的.bin文件

sudo cp rv1126b_ddr_1332MHz_v1.06.bin test.bin

3、使用ddrbin_tool进行配置

(1)获取rv1126b_ddr_1332MHz_v1.06.bin文件配置

cd rkbin/tools ./ddrbin_tool.py rv1126b -g gen_param.txt ../bin/rv11/rv1126b_ddr_1332MHz_v1.06.bin

v2-275129e755c50df178dfa4373a46b5dd_720w.webp

(2)打开gen_param.txt可查看详细配置参数,后续基于默认配置来进行修改

v2-b6ff2f9013b3a112a8c9603a4c3f794c_720w.webp

(3)通过设置ddrbin_param.txt配置来修改.bin文件配置

v2-65b143e95d1f1bf1e31a71592a9cde1b_720w.webp

./ddrbin_tool.py rv1126b ddrbin_param.txt ../bin/rv11/test.bin

v2-1718c8ed81a5e27770e99cc4798bc147_720w.webp

注意:正常情况ddrbin_param.txt中的参数值都是空的,空值则代表相对应.bin的默认值

(4)可通过(1)中命令检查test.bin文件配置是否正确

4、修改RV1126BMINIALL.ini配置

vim rkbin/RKBOOT/RV1126BMINIALL.ini

v2-ea2ae56788802a966877a4fd3c106c23_720w.webp

2.3 编译U-BOOT配置

1、编译U-BOOT配置:

./build.sh uboot

v2-9eed5dcb6e510c77fb47c215065855fe_720w.webp

2、将编译好的uboot配置更新到固件工具中

v2-8d2c4180f68a362554e90d8cb3a716a8_720w.webp

此时,若仅把这两份配置文件重新烧录,会发现串口打印uboot部分的确已经成功显示,但kernel部分还是乱码现象

v2-5695c1a933240343f650d2c939ce9858_720w.webp

因此,我们还需要继续完成kernel的配置,使其全部显示正常。

2.4 修改Kernel配置

1、修改rv1126b-nano.dts配置

vim kernel_dev/arch/arm64/boot/dts/rockchip/rv1126b-nano.dts

v2-b56b60c2dc42f7fc923b11863b1d55c3_720w.webp

2、编译kernel配置

./build.sh kernel

v2-ed252ac0b529688babed7b91078710b5_720w.webp

若不熟悉内核编译的流程,请查阅《嵌入式底层开发/ubuntu系统SDK/kernel》一文

3、将编译好的kernel配置更新到固件工具中

v2-b6a0accb0811ffb8f9bbaab14269c71d_720w.webp

2.5 重新烧录

1、将所有更新好的配置重新烧录至板子上

v2-c3bb1f67b9813e7c0c45ad44f9300b7b_720w.webp

2、最终串口打印显示全部正常

v2-e5976a5cf17ae95701a19c5b0ebd9a97_720w.webp