OpenEdv-开源电子网

 找回密码
 立即注册
查看: 3954|回复: 15

ATK-DLRV1126开发板添加uart4和uart5配置

[复制链接]

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1170
金钱
1170
注册时间
2020-12-1
在线时间
149 小时
发表于 2023-1-7 14:50:21 | 显示全部楼层 |阅读模式
本帖最后由 起个什么名字好 于 2023-10-27 15:07 编辑

开发板出厂系统中默认有2路串口,uart2做调试串口,uart0做蓝牙串口。
要想直接在开发板上配置出其他串口,可以从CIF接口配置出来,出厂系统默认没有使用CIF功能。
开发板CIF接口的可复用功能具体可以参考ATK-CLRV1126F核心板接口数据手册.V1.0.xlsx


可以看到CIF接口中有管脚可以复用为UART4和UART5,具体如下:
原理图管脚可复用功能GPIO
CIF_D0_M0UART4_TX_M0GPIO3_A4
CIF_D1_M0UART4_RX_M0GPIO3_A5
CIF_D2_M0UART5_TX_M0GPIO3_A6
CIF_D3_M0UART5_RX_M0GPIO3_A7
注意,CIF这一路的电源域是1.8V的,外接设备时注意电平转换,防止烧坏芯片

uart4添加方法
查看设备树管脚复用:
打开kernel/arch/arm/boot/dts/rv1126-pinctrl.dtsi
uart4m0_xfer管脚配置默认如下,这个和我们原理图标注的复用功能一致:

  1. uart4 {
  2.                 /omit-if-no-ref/
  3.                 uart4m0_xfer: uart4m0-xfer {
  4.                         rockchip,pins =
  5.                                 /* uart4_rx_m0 */
  6.                                 <3 RK_PA5 4 &pcfg_pull_up>,
  7.                                 /* uart4_tx_m0 */
  8.                                 <3 RK_PA4 4 &pcfg_pull_up>;
  9.                 };
复制代码
在出厂系统设备树上没有找到这两个管脚的配置,也就是默认没有使用到。如果有使用到,要屏蔽原有的管脚功能。


打开kernel/arch/arm/boot/dts/rv1126-alientek.dtsi
添加uart4节点:
  1. &uart4 {
  2.         pinctrl-names = "default";
  3.         pinctrl-0 = <&uart4m0_xfer &uart4m0_ctsn &uart4m0_rtsn>;
  4.         status = "okay";
  5. };
复制代码


保存修改好的文件,在sdk根目录下执行./build.sh kernel编译内核镜像,在kernel目录下会生成zboot.img文件。
zbootimg.png

将zboot.img拷贝到电脑,使用烧录工具单独烧写zboot.img烧写到开发板上。
烧写zboot.png

烧写完后启动系统,查看串口设备。
  1. ls /dev/ttyS*
复制代码
ttyS4.png



可以看到/dev/ttyS4,对应uart4。

CIF_D0_M0和CIF_D1_M0现在已经分别用做UART4_TX_M0和UART4_RX_M0,这两个管脚外接到USB_TTL模块上,再加一个GND。
然后使用minicom测试
出厂的文件系统没有minicom的话,需要我们从SDK添加进去。
[size=0.833]在SDK 包源码目录下,运行以下命令进行配置buildroot


  1. source envsetup.sh alientek_rv1126 //配置buildroot 对应defconfig
  2. make menuconfig //进入图形化界面
复制代码


进入配置菜单,添加minicom
  1. → Target packages
  2.         → Hardware handling
  3.             [*] minicom
复制代码


保存配置文件
  1. make savedefconfig //保存配置文件到buildroot/configs/alientek_rv1126_defconfig
  2. ./build.sh rootfs        //编译文件系统
复制代码


在SDK根目录下进行固件打包
  1. source envsetup.sh alientek_rv1126 //选择环境变量alientek_rv1126
  2. ./mkfirmware.sh
复制代码


打包成功会在源码目录下新建一个“rockdev”目录,把需要烧录的文件打包进里面。我们可以把这些文件通过FTP 拷贝到对应的Windows 目录下进行烧录。
文件系统.png

把rootfs.img烧录到开发板上,执行minicom -s,配置参考如下,设置串口4波特率为115200
minicomS4.png

进入minicom,按ctrl+A+Z,再按E,打开输入回显
回显.png

硬件连接:USB_TTL模块TXD接开发板UART4_RX,USB_TTL模块RXD接开发板UART4_TX。这里我使用的是正点原子的ATK-MO340P 模块,这个模块上支持IO电平切换为1.8V,如果是其他电平的接口,请设计电平转换电路。
1.8vS4.jpg

打开一个串口终端软件作为测试端,这里以xcom为例

串口发送测试
S4发送.png

串口接收测试
S4接收.png

uart5添加方法

kernel/arch/arm/boot/dts/rv1126-alientek.dtsi
添加uart5节点:
  1. &uart5 {
  2.         pinctrl-names = "default";
  3.         pinctrl-0 = <&uart5m0_xfer>;
  4.         status = "okay";
  5. };
复制代码

保存修改好的文件,在sdk根目录下执行./build.sh kernel编译内核镜像,在kernel目录下会生成zboot.img文件。


将zboot.img拷贝到电脑,使用烧录工具单独烧写zboot.img烧写到开发板上。


烧写完后启动系统,查看串口设备。
  1. ls /dev/ttyS*
复制代码
S5.png




测试方法和串口4类似,也是使用minicom,将其配置为ttyS5即可。
minicomS5.png

硬件连接:USB_TTL模块TXD接开发板UART5_RX,USB_TTL模块RXD接开发板UART5_TX
这里我使用的是正点原子的ATK-MO340P 模块,这个模块上支持IO电平切换为1.8V,如果是其他电平的接口,请设计电平转换电路。
1.8vS5.jpg

串口发送测试
S5发送.png

串口接收测试
S5接收.png



硬件连接S4.jpg
硬件连接S5.jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
142
金钱
142
注册时间
2017-12-27
在线时间
31 小时
发表于 2023-4-3 11:31:04 | 显示全部楼层
添加好后,使用串口报错,这是什么原因
[   60.393130] of_dma_request_slave_channel: dma-names property of node '/serial@ff5a0000' missing or empty
[   60.393301] ttyS5 - failed to request DMA, use interrupt mode
[   60.393619] ttyS5 set divisor fail, quot:156 != dll,dlh:0
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2023-4-4
在线时间
3 小时
发表于 2023-4-5 15:10:00 | 显示全部楼层
配图有点小BUG,USB转TTL的连接,第一个硬件连接图用的还是1.8V电平,后面两张就变成3.3V了
回复 支持 反对

使用道具 举报

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1170
金钱
1170
注册时间
2020-12-1
在线时间
149 小时
 楼主| 发表于 2023-4-6 10:53:56 | 显示全部楼层
hhn 发表于 2023-4-5 15:10
配图有点小BUG,USB转TTL的连接,第一个硬件连接图用的还是1.8V电平,后面两张就变成3.3V了

嗯,应该用1.8V的,后面测试3.3V的也能用,没调回来拍照。3.3V能用,但是长时间使用的话电源域不匹配可能会搞坏核心板
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2023-4-6
在线时间
2 小时
发表于 2023-4-6 21:43:43 | 显示全部楼层
我看配图没有接电压,不同的电平也会有问题吗?还有想问一下大佬知道如何程序里面使用串口吗,找了半天rv1126教程里面没有关于串口通信的东西
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2023-4-6
在线时间
2 小时
发表于 2023-4-6 21:47:14 | 显示全部楼层
本人刚刚接触开发板,因为毕设原因需要1126与其他设备进行串口通信,但是资料中没有关于这部分的教程,想问问有没有大佬实现了串口通信方面d
回复 支持 反对

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2023-4-6
在线时间
2 小时
发表于 2023-4-7 21:17:46 | 显示全部楼层
Deven001 发表于 2023-4-3 11:31
添加好后,使用串口报错,这是什么原因
[   60.393130] of_dma_request_slave_channel: dma-names propert ...

请问兄弟是否有解决,我也遇到了相同的问题
回复 支持 反对

使用道具 举报

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1170
金钱
1170
注册时间
2020-12-1
在线时间
149 小时
 楼主| 发表于 2023-4-8 17:53:51 | 显示全部楼层
绸凉左尘埃 发表于 2023-4-6 21:43
我看配图没有接电压,不同的电平也会有问题吗?还有想问一下大佬知道如何程序里面使用串口吗,找了半天rv11 ...

调用对应的/dev/tty接口就可以了,1126的应用编程文档里好像没有串口编程,可以参考下阿尔法开发板应用编程文档里的串口应用编程
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
3
金钱
3
注册时间
2023-5-27
在线时间
0 小时
发表于 2023-5-27 16:35:56 | 显示全部楼层
绸凉左尘埃 发表于 2023-4-7 21:17
请问兄弟是否有解决,我也遇到了相同的问题

同问,谢谢
回复 支持 反对

使用道具 举报

8

主题

214

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1170
金钱
1170
注册时间
2020-12-1
在线时间
149 小时
 楼主| 发表于 2023-6-6 18:28:29 | 显示全部楼层
Deven001 发表于 2023-4-3 11:31
添加好后,使用串口报错,这是什么原因
[   60.393130] of_dma_request_slave_channel: dma-names propert ...

把设备树串口节点里dma相关屏蔽掉就可以了,默认没用到这个,没配置全,系统调用了就报错了
回复 支持 反对

使用道具 举报

38

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2014-3-5
在线时间
67 小时
发表于 2023-6-12 23:01:52 | 显示全部楼层
请问下博主,我看原理图可以将VCCIO6_VDD供电改成3.3V,这样电平就比较通用了呀
Hard work!
回复 支持 反对

使用道具 举报

38

主题

165

帖子

0

精华

高级会员

Rank: 4

积分
646
金钱
646
注册时间
2014-3-5
在线时间
67 小时
发表于 2023-6-12 23:03:43 | 显示全部楼层
请问下博主,通过切换VCCIO6_VDD为3.3,这样电平就可以通用了呀
Hard work!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
8
金钱
8
注册时间
2023-6-29
在线时间
1 小时
发表于 2023-6-29 09:21:57 | 显示全部楼层
1.png
改3.3v是不是把这个0R的电阻加上就行了

回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2022-7-6
在线时间
3 小时
发表于 2023-7-6 04:35:15 | 显示全部楼层
起个什么名字好 发表于 2023-4-6 10:53
嗯,应该用1.8V的,后面测试3.3V的也能用,没调回来拍照。3.3V能用,但是长时间使用的话电源域不匹配可能 ...

请教一下,半个小时左右的连接,会烧板子吗
回复 支持 反对

使用道具 举报

0

主题

4

帖子

0

精华

新手入门

积分
16
金钱
16
注册时间
2022-7-6
在线时间
3 小时
发表于 2023-7-6 22:35:46 | 显示全部楼层
起个什么名字好 发表于 2023-6-6 18:28
把设备树串口节点里dma相关屏蔽掉就可以了,默认没用到这个,没配置全,系统调用了就报错了

大兄弟,设备树dma 是哪个,
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2023-11-30
在线时间
0 小时
发表于 2023-11-30 11:48:45 | 显示全部楼层
同问+1+1+1
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 09:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表