BRP、Stage1 和 stage1 的 CANbus 公式

问题描述 投票:0回答:1

我正在尝试将 SAMe70 微芯片板上的 CAN 频率设置为 250Mhz,所有 Atmel 文档都是完全错误的。我发现其他一些帖子介绍了他们的文档如何还有很多不足之处,因此通过使用一些示例代码并使用公式,我能够推断出如何设置指定的频率。遇到的公式是所需的比特率 = (时钟频率)/(BRP +1) x(stg1+stg2+1)。这是因为许多人认为 BRP 的加一是为了考虑 JW,但这是不正确的,microchip studio 要么考虑了它,要么它不是等式的一部分。为了成功实现 250kHz 比特率信号,我将时钟设置为 16MHz,BNP 为 4,第一阶段设置为 10tq,第二阶段设置为 5tq。阶段 1 应该是阶段 2 的两倍左右的原因是为了允许适当的信号错误处理和时间传播。这是我正在尝试的东西,其他设置能够让我达到我想要的比特率,但 2:1 是我最终的结果。

我们已经解决了这个问题。对于 ISO 11898,请使用以下公式: 所需比特率 = (时钟频率)/(BRP)x(stage1 + stage2 + 1)

无需考虑JW

embedded can-bus microchip atmel
1个回答
0
投票

我多年前就向 Microchip/Atmel 指出了这个错误,但显然他们不喜欢修复错误。请参阅:https:// electronics.stackexchange.com/a/479411/6102 。有一个示例如何根据 tq 的数量和所需的同步点设置波特率。它适用于 SAMC21,但我相信 CAN 控制器大致相同。

所以您正在寻找的公式是:

total_tq = sync_seg_tq + (phase_seg1_tq+1) + (phase_seg2_tq+1)

其中sync seg始终为1,并且与SJW确实无关。

© www.soinside.com 2019 - 2024. All rights reserved.