ST意法半导体
直播中

梅利号

9年用户 1563经验值
擅长:可编程逻辑
私信 关注
[问答]

怎样去正确的配置CAN协议的波特率

我已阅读参考手册,但 .ioc 文件中使用的术语与参考手册不一致,所以我感到困惑。
我使用的是STM32H7B3I-EVAL评估板,它使用了STM32H7B3LIH6Q MCU。根据数据表,它的时钟频率为 280 MHz。我正在尝试配置 CAN 协议的波特率,我需要确定将参数设置为什么。具体来说:
  • 标称预分频器/数据预分频器
  • 标称同步跳跃宽度/数据同步跳跃宽度
  • 标称时间段 1/数据时间段 1
  • 标称时间段 2/数据时间段 2
根据我在网上阅读的内容,我使用网站进行位时序计算
我想为我的示例运行 500 kBit/s 的波特率。我想验证我的步骤:
第 1 步:确定 FDCAN 时钟频率
  • 为此,我查看了 .ioc 文件,它说 FDCAN 时钟是 280 MHz(证明:图片 FDCAN_Ex)
第二步:使用位时序计算网站:

第三步:在代码中定义hfdcan1.Init参数:

基于此,我是否为 500 kBit/s 正确配置了它?我是否正确使用标称同步跳转宽度?(我没有在网站上看到同步跳转宽度的提及)。
如果我犯了任何错误,我将不胜感激一些反馈!(请注意,我此时没有示波器访问权限,这就是我首先在这里询问的原因)。


回帖(1)

刘占宽

2022-12-2 15:18:09
我已经想通了这个问题。
它与波特率无关。相反,它与两件事有关:
1) 在 .ioc 文件中,FDCAN TX/RX 引脚默认设置为 PB8/9。之前的 FDCAN_Loopback 测试代码将其分配给正确的引脚 (PA11/12)。我在 .ioc 文件中将其切换为 PA11/12。
2)评估板上的跳线(JP38)没有安装。我在那里放了一个别针,这意味着现在两端都有一个 120 欧姆的电阻。
两者都解决了这个问题。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分