Firefly开源社区

打印 上一主题 下一主题

[Linux] IPC-M10R800-A3568J RS485使用时丢包、卡死

60

积分

0

威望

0

贡献

技术小白

积分
60

IPC-M10R800-A3568J RS485使用时丢包、卡死

发表于 2022-5-27 16:34:09      浏览:5088 | 回复:9        打印      只看该作者   [复制链接] 楼主
我现在在使用IPC-M10R800-A3568J ,使用的是Ubuntu20.04文件系统,工程需要使用两路RS485同时连续使用,在使用过程中发现RS485会丢包。以下是排除过程:
1、将需要使用的串口由两路RS485切换为两路RS232,则完全使用正常;
2、仅使用一路RS485,不使用另外一路RS485和两路RS232以及两路uart, 则通信正常;
3、将工程代码中关于RS485的代码单独拿出来,仅包含对RS485的写操作,则此进程(图中为midman)在一段时间后变为了僵尸进程,且kworker/0:1+wk2xxx-2进程会占用大量cpu资源,如下图:
4、在设备中,看到wk2124芯片,调用的compatible属性为“firefly,spi-wk2xxx”,但在kernel的drivers目录里,仅用名为“spi-wk2xxx”的二进制文件,而没有驱动源码。我怀疑可能与wk2124的驱动有关。
回复

使用道具 举报

2122

积分

20

威望

24

贡献

中级创客

Rank: 4

积分
2122
发表于 2022-5-28 10:12:28        只看该作者  沙发
试一下同时用两路 UART 会不会有问题
回复

使用道具 举报

60

积分

0

威望

0

贡献

技术小白

积分
60
发表于 2022-5-29 19:05:59        只看该作者  板凳
Liuth 发表于 2022-5-28 10:12
试一下同时用两路 UART 会不会有问题

是的,使用那两路uart也会出现问题,使用RS232就完全没有问题。RS232是MCU直出的,485和uart是转接的。我怀疑是WK2124的问题。
还有个问题请教,有时候会遇到,在开机状态下输入命令reboot和在图形界面点击重启,设备只是关机了,后面没有启动,有上面可能的原因嘛
回复

使用道具 举报

2122

积分

20

威望

24

贡献

中级创客

Rank: 4

积分
2122
发表于 2022-5-30 09:52:42        只看该作者  地板
spi 转的 uart 性能是不如原生的,如果一定要用 485 的话,可以降低波特率试试
回复

使用道具 举报

60

积分

0

威望

0

贡献

技术小白

积分
60
发表于 2022-5-30 12:29:35        只看该作者  5#
Liuth 发表于 2022-5-30 09:52
spi 转的 uart 性能是不如原生的,如果一定要用 485 的话,可以降低波特率试试

现在使用的是9600,按理说波特率不高呢,单个包长也只有几十字节。这个现象比较奇怪,感觉像wk2124驱动的问题
回复

使用道具 举报

2122

积分

20

威望

24

贡献

中级创客

Rank: 4

积分
2122
发表于 2022-5-31 10:44:26        只看该作者  6#
在设备树 arch/arm64/boot/dts/rockchip/rk3568-firefly-aioj.dtsi 中把DMA关掉试一下
&spi1 {
        status = "okay";
+       dma-names = "!tx", "!rx";
};
回复

使用道具 举报

60

积分

0

威望

0

贡献

技术小白

积分
60
发表于 2022-6-6 10:12:35        只看该作者  7#
Liuth 发表于 2022-5-31 10:44
在设备树 arch/arm64/boot/dts/rockchip/rk3568-firefly-aioj.dtsi 中把DMA关掉试一下
&spi1 {
         ...

还是不行哎,情况一样的
回复

使用道具 举报

2122

积分

20

威望

24

贡献

中级创客

Rank: 4

积分
2122
发表于 2022-6-6 14:08:53        只看该作者  8#
那没有办法了,可以尝试添加软件流控,或者改用RS232
回复

使用道具 举报

60

积分

0

威望

0

贡献

技术小白

积分
60
发表于 2022-7-1 15:45:42        只看该作者  9#
还发现一个很奇怪的问题,使用RS485发送数据时,0d这个数据,在传输后变成了0a,而其他数据不受影响,验证了很多次,就只有0d会变。

d319925d32bc2bc7551c71deb871ea1.png (24.43 KB, 下载次数: 738)

d319925d32bc2bc7551c71deb871ea1.png
回复

使用道具 举报

811

积分

0

威望

0

贡献

管理员

Rank: 9Rank: 9Rank: 9

积分
811
发表于 2022-7-14 19:20:35        只看该作者  10#
我们这边测试,发送0d,接收正常,能否提供下你那边的复现方法,这边再测试下
回复

使用道具 举报

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

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表