Firefly开源社区

标题: RV1126开发板 UART通信问题 [打印本页]

作者: goldendba    时间: 2021-6-28 15:43
标题: RV1126开发板 UART通信问题
通过杜邦线短接RV1126开发版, EXTENSION  3RX 3TX 1RX 1TX 4RX 4TX三组线,用echo命令输出 只有写 没有读,短接不成功无法通信。

[root@RV1126_RV1109:~]# echo 'test' > /dev/ttyS0 && cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xFF560000 irq:32 tx:12 rx:0
[root@RV1126_RV1109:~]# echo 'test' > /dev/ttyS0 && cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xFF560000 irq:32 tx:18 rx:0
[root@RV1126_RV1109:~]# echo 'test' > /dev/ttyS0 && cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A mmio:0xFF560000 irq:32 tx:24 rx:0







作者: 板蓝根    时间: 2021-6-29 09:19
ttyS0 是串口0,用来和板载蓝牙通信。你要使用的是串口 3、1、4,请自行修改内核开启 对应串口功能编译烧写,然后操控对应的 ttySx 设备。参考文档:sdk/docs/Kernel/UART
作者: Eric0    时间: 2021-7-11 09:58
板蓝根 发表于 2021-6-29 09:19
ttyS0 是串口0,用来和板载蓝牙通信。你要使用的是串口 3、1、4,请自行修改内核开启 对应串口功能编译烧写 ...

您好,我们按照文档,修改了kernel/arch/arm/boot/dts/rv1126-firefly-jd4.dts文件,增加了如下内容:
&uart1 {
        status = "okay";
};

&uart3 {
        status = "okay";
};

&uart4 {
        status = "okay";
};
然后发现,ttyS1、ttyS3、ttyS4设备都有,但是短接后,只有ttyS1有数据,ttyS3、ttyS4没有数据。
这是什么情况,如何排查呢?
作者: 板蓝根    时间: 2021-7-12 09:22
排查有没有初始化成功,引脚有没有被设备树其他功能复用
作者: Eric0    时间: 2021-7-12 13:13
板蓝根 发表于 2021-7-12 09:22
排查有没有初始化成功,引脚有没有被设备树其他功能复用

我们排查下来,没有占用。
可否提供具体的检测方法,或者检查工具?
作者: 板蓝根    时间: 2021-7-12 14:47
没有工具,串口是比较简单的接口,一般都是直接从 Soc 出来没有经过什么外部电路。我们如果出现调试不通的状况基本上都是引脚复用问题,如果您完全确认没有引脚复用,那么只能挨个查寄存器的值对不对 了。
作者: 板蓝根    时间: 2021-7-12 14:51
还有引脚复用的通道要选对喔,比如 uart3 有 m0/m1/m2 通道,要看你硬件使用的是哪个通道
作者: Eric0    时间: 2021-7-12 15:01
板蓝根 发表于 2021-7-12 14:51
还有引脚复用的通道要选对喔,比如 uart3 有 m0/m1/m2 通道,要看你硬件使用的是哪个通道

请教一下,这个怎么查?
我们SDK里的dtsi文件没改过,只是在板级dts里把uart3和4打开了而已。
默认的SDK里的dtsi文件配置不是正确的吗?
作者: 板蓝根    时间: 2021-7-13 09:13
本帖最后由 板蓝根 于 2021-7-13 09:39 编辑

你用的是我们的套板,还是核心板自己设计底板?我们的套板 uart3/uart4 硬件链接的是 m1 通道
作者: Eric0    时间: 2021-7-13 16:41
板蓝根 发表于 2021-7-13 09:13
你用的是我们的套板,还是核心板自己设计底板?我们的套板 uart3/uart4 硬件链接的是 m1 通道

用的是你们的套板
作者: 板蓝根    时间: 2021-7-13 17:23
本帖最后由 板蓝根 于 2021-7-13 17:25 编辑

那把通道改成 m1应该就可以了
       &uart3 {
                pinctrl-0 = <&uart3m1_xfer &uart3m1_ctsn &uart3m1_rtsn>;
                status = "okay";
        };



作者: Eric0    时间: 2021-7-13 17:28
板蓝根 发表于 2021-7-13 09:13
你用的是我们的套板,还是核心板自己设计底板?我们的套板 uart3/uart4 硬件链接的是 m1 通道

UART1的通道用的是m0?UART3和UART4用的通道是m1?
作者: 板蓝根    时间: 2021-7-13 17:30
是的




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1