硬汉嵌入式论坛

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

[CAN/FDCAN] 为什么FD经典模式能够正常接收但发送失败

[复制链接]

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-8-8 13:32:20 | 显示全部楼层 |阅读模式
本帖最后由 funkiey 于 2021-8-8 13:45 编辑

题主所用的MCU为STM32H750,使用FDCAN1模块,按照经典CAN模式进行配置后,能够正常接收到总线上发送过来的报文,但是总线上的接收器接收不到设备发出去的报文。得出此结论的原因是:
用示波器分别量取MCU的TX端信号以及总线上的信号,在发送报文时TX端信号正常,但是总线上捕捉不到信号。麻烦有过经验的大拿指点一下。

接收正常,如下:
                      接收正常图.png
相关配置如下:
fdcan配置:
                 

接收正常测试

接收正常测试

发送配置:
                发送配置.png
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2021-8-8 14:32:09 | 显示全部楼层
网络上除了接收器外,还有一台can设备(命名为设备B),设备B能够与接收器的收发通信正常,波形正常;而我们测试的设备A可以正常收到报文,但发送的数据在网络上捕捉不到,抓取出CPU的TXD,可以抓到波形,但是链路上的CANL和CANH抓不到波形,怀疑数据在出CPU后,经过CAN模块后压根就没有发出来
回复

使用道具 举报

20

主题

118

回帖

178

积分

初级会员

积分
178
发表于 2021-8-9 10:48:12 | 显示全部楼层
在一个网路中CAN和CAN_FD并不是通用的。
1、传统CAN节点以1Mbit/s 传输数据到 CAN FD:解决方法是可以直接通过,因为CAN FD是向下兼容CAN2.0的。
2、CAN FD设备以8Mbit/s传输数据到传统CAN:解决方法是采用可编程CAN FD路由器:先将传统CAN FD的速率自动降为1Mbit/s再转出去。
3、传统CAN节点向 CAN FD节点传输8字节的数据:解决方法是可以直接通过,因为CAN FD是向下兼容CAN2.0的。
4、CAN FD节点向传统CAN 节点传输64字节的数据:解决方法是采用可编程CAN FD路由器:预先编程并下载到路由器,CAN FD的数据通过路由器后可以按照预先设置的程序将数据做拆包等处理再转成8字节转发出去给传统CAN设备。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
111540
QQ
发表于 2021-8-9 11:56:28 | 显示全部楼层
特别注意数据阶段波特率设置。

STM32H7的CAN FD波特率计算,含常规通信波特率和数据通信阶段的可变波特率
http://www.armbbs.cn/forum.php?m ... 5138&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-1 07:23 , Processed in 0.219550 second(s), 29 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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