硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1308|回复: 8
收起左侧

[CAN/FDCAN] STM32H7 CAN发送多帧时出现丢帧

[复制链接]

9

主题

32

回帖

59

积分

初级会员

积分
59
发表于 2022-10-13 21:05:43 | 显示全部楼层 |阅读模式
使用STM32H7 传统CAN模式,PLL_Q时钟240MHz,CAN分频系数NominalPrescaler为10得到24M时钟,NominalSyncJumpWidth设置为8,seg1和seg2设置为了39和8以得到500k波特率,ARM板CAN接口和周立功CAN盒连接,测试中发现ARM板连续发送多帧时,周立功CAN盒接收经常性出现少接收帧的情况,通过示波器波形来看,少接收帧时,波形ACK段电平异常偏高,请问有大佬知道这种应该往哪个方向去考虑解决啊
回复

使用道具 举报

3

主题

66

回帖

75

积分

初级会员

积分
75
发表于 2022-10-14 09:45:26 | 显示全部楼层
  hcan2.Init.AutoRetransmission = ENABLE;
这个参数 开了吗?
回复

使用道具 举报

4

主题

46

回帖

58

积分

初级会员

积分
58
发表于 2022-10-14 10:35:43 | 显示全部楼层
看看协议手册,里面说了,CAN发送方发送数据之后,接收方将在ACK场域产生一个ACK信号,如果没有,就是丢包,不丢包的前提是打开自动重发.  要是想解决ACK的问题,要从线路上下手,另外我记得数据手册上CAN的最大输入时钟是125M的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107049
QQ
发表于 2022-10-14 11:34:33 | 显示全部楼层
测试阶段,连发的话,每帧之间加100ms延迟试试,看看是否正常,如果正常,说明是没问题的。

CAN必须得保证前面一次正常接收了,才能开下一次传输。
回复

使用道具 举报

9

主题

32

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2022-10-14 12:01:49 | 显示全部楼层
eric2013 发表于 2022-10-14 11:34
测试阶段,连发的话,每帧之间加100ms延迟试试,看看是否正常,如果正常,说明是没问题的。

CAN必须得保 ...

收到,是不是每次发送完了得再检查下ACK应答状态,不对再重发一次?
回复

使用道具 举报

9

主题

32

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2022-10-14 12:03:01 | 显示全部楼层
westzg 发表于 2022-10-14 09:45
hcan2.Init.AutoRetransmission = ENABLE;
这个参数 开了吗?

没有,我看到别人说FDCAN开自动重发在传统模式会出错,我就一直没开过
回复

使用道具 举报

9

主题

32

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2022-10-14 12:03:43 | 显示全部楼层
dengxiaojundink 发表于 2022-10-14 10:35
看看协议手册,里面说了,CAN发送方发送数据之后,接收方将在ACK场域产生一个ACK信号,如果没有,就是丢包,不丢 ...

我把时钟再降降,降低一点试试
回复

使用道具 举报

9

主题

32

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2022-10-14 17:59:52 | 显示全部楼层
zhangzhang 发表于 2022-10-14 12:03
没有,我看到别人说FDCAN开自动重发在传统模式会出错,我就一直没开过

试了打开重传就可以了,感谢
回复

使用道具 举报

2

主题

8

回帖

14

积分

新手上路

积分
14
发表于 2023-11-29 13:27:38 | 显示全部楼层
老哥,我也遇到过类似的情况,在数据发送较快的情况下会出现数据发送丢包的情况。
处理方法是采用FIFO和buffer对不同的数据帧进行发送,丢包的情况可以解决。
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-15 17:55 , Processed in 0.177991 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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