This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F280037C:MCAN 模块、CAN 速度设置

Guru**** 2515065 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1560595/tms320f280037c-mcan-module-can-speed-setting

器件型号:TMS320F280037C


工具/软件:

您好:

我们目前有一款产品在 1MHz 和 5MHz 分别针对标称比特率和数据比特率运行 CAN 网络。 我们使用 40MHHz 的 MCAN 时钟和 120MHz 的 SYSCLK。 但是、我们打算增加网络节点总数、我们想知道是否可以将 CAN 速度至少提高到 2MHz 和 8MHz(标称比特率和数据比特率)。但是、我们对该模块有很多问题。

-我们希望将 MCAN 时钟增加到 120MHz、以便 CAN 位时间计算器可以为我们提供在 MCAN 模块中使用的可行配置。 这会产生任何问题吗? th MCAN 模块是否需要比应用程序代码慢才能正常工作? 如果是、关于该应用程序与 MCAN 相比速度有多快、应遵循哪条适当的经验法则?

-它是强制使用时钟值,如在 PCAN 中找到的值,甚至在 CAN 标准,如 80MHz , 60MHz 等?

-如果不可能使用 120MHz 作为 MCAN 时钟,有没有办法有一个标准值的时钟,如 80MHz 无需具有更快的 SYSCLK?

- 2 个不同的节点可以在不同的 MCAN 时钟速度的同一 CAN 网络中共存吗? 采样点与 2 个不同节点之间的差异有多大? 如果是、为了实现与不同 MCAN 时钟的可靠通信、最重要的参数是什么?

此致、

David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、David:

    请参阅下面的回答。

    我们想知道是否可以将速度提高到至少 2MHz 和 8MHz 的标称和数据比特率

    JC:不,这是不可能的。  最高仅支持 1Mbps 的标称位速率。  在该设计中、数据比特率最高仅为 5Mbps

    我们希望将 MCAN 时钟增加到 120MHz、以便使用 CAN 位 timinig 计算器为我们提供在 MCAN 模块中使用的可行配置。

    JC:MCAN IP(来自 Bosch)旨在使用从 20MHz 到 80MHz 的时钟运行。  在 120MHz 下运行 MCAN 违反了其设计规范。

    -是否必须使用 PCAN 中的时钟值、甚至是 80MHz、60MHz 等 CAN 标准中的时钟值?

    JC:只要 MCAN 以 20MHz 至 80MHz 范围内的速度运行、则可以、不需要严格遵循 PCAN 设置

    - 2 个不同节点能否以不同的 MCAN 时钟速度在同一 CAN 网络中共存? 采样点与 2 个不同节点之间的差异有多大? 如果是、为了实现与不同 MCAN 时钟的可靠通信、哪些参数最重要?

    JC:请澄清。  两个节点可能具有不同的 MCAN 时钟速度、但两者应具有相同的标称速率和数据速率。  例如、节点 1 的 MCAN 速度可能为 40MHz、位时序的设置应使标称速率为 1Mbps、数据速率为 5Mbps。 另一方面、可以设置节点 2、使其 MCAN 时钟设置为 80MHz。  可以设置节点 2 中的位时序、以便其数据速率的标称速率为 5Mbps 时也具有 1Mbps。  这些节点可以共存于 CAN 总线中、因为它们以相同的比特率运行。  如果位速率不同、例如节点 1 为 500kbps、节点 2 为 1Mbps、一个节点上的数据速率为 2Mbps、另一个节点上的数据速率为 5Mbps、则这些节点永远无法通信、可能会导致一个节点出现错误、并最终强制关闭总线、因为位时序关闭。

    此致、

    Joseph

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joseph、

    非常感谢您的澄清。 在我的最后一个问题中、我提到以下问题:  

    -为了使两个节点在同一网络中共存、需要将其配置为相同的速度。 不过、有许多关于不同时间量子设置和 CAN 控制器时钟的组合、这些组合主要影响采样点和同步跳转宽度。 这些参数可能因节点而异? 它们有多大的不同?

    此致、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    再次您好 Joseph:

    我还有一个关于 MCAN 的问题。 使用超出规格的参数应该出现哪种行为。例如、如果我在何处选择 6MHz 的数据比特率、即使 CAN 线路可能已损坏或 MCAN 模块在检测到速度超出其指定范围时无法工作、我是否应该能够通过 CAN 线路看到某种消息? 是否有任何可能在超出规格的情况下工作的风险由我们自己承担?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、David:

    是的、TSEG 和 SJW 可以因节点而异、以满足采样点要求。  这实际上取决于总线长度互连和节点之间的传播延迟。  您肯定可以为 MCAN 尝试更高的数据波特率。  我认为 MCAN 将以 6Mbps 的速率工作、但如果 F28003x MCAN 要传输 MCAN 帧来补偿传输传播延迟、则可能需要在这些节点上启用发送器延迟补偿 (TDC)。  原因是在 MCAN 帧传输期间、传输的数据会在 F28003x 的 RX 引脚上自动采样。  如果存在传播延迟或波特率超过 3Mbps、则延迟相对于位时间变得显著、因此需要进行传播延迟补偿以满足采样要求。

    此致、

    Joseph

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Joseph、

    感谢你的帮助。 我们可能能够以 6Mbps 的速率稳定下来、这肯定是一个良好的开端、我们将尝试不同的耐久性测试、以确保网络仍然稳健、并且我们希望看到模块的最大功能。 此外、我们还想尝试 2MHz 的仲裁速度、因为我们网络中的所有节点都与 CANFD 兼容。 我再补充 3 个问题。

    -您认为两种速度都可以推动多少 CAN 速度? 我知道我们在做这件事是有风险的。 我之所以问这个问题、是因为我们当前使用的 MCU 在 MCAN 时钟中仅允许最低预分频器为 2。 这意味着、拥有 120MHz 的 SYSCLK 现在可能有一个具有此 f280037C 的 80MHz 时钟? 此决策非常重要、因为我们需要决定是在新项目中维护此 MCU、还是搜索另一个时钟速度更高的 MCU、以便只能使用 80MHz。 但在此之前、我们担心无法进一步提高 CAN 速度。

    -我们很担心的另一件事是,与 SYSCLK 相比,它的速度是否有任何要求。 系统是否需要以更高的频率工作才能与 mCAN 模块正常通信? 还是可以独立工作?

    -最后,我们做了一些快速测试,通过调整 MCAN 速度到 60MHz 和使用 6MHz 的数据比特率和 1MHz 的仲裁,结果可以在消息接收 pcan 软件中看到。 MCAN 模块似乎由于传输错误而错误进入。 这可能是由于您提到的延迟补偿引起的(我附加了 PCAN 软件消息接收、这些是 Rx 中的错误,这意味着发送器是一个抛出错误)? 您能解释一下如何正确调整延迟补偿吗? 如何获得偏移量和过滤器窗口长度的要求?

    感谢您的帮助、

    David

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、David、

    CAN 可达到的最大比特率在很大程度上取决于您的系统实施情况。  较短的总线长度可以让您实现更高的比特率、但值得进行试验。

    是的、从 SYSCLK 获取 80MHz MCAN 时钟有点棘手。  您将 SYSCLK 丢弃到 80MHz 并对 MCAN 使用 1 分频、但这意味着其他模块和 CPU 将以 80MHz 的较慢时钟执行。  我有一个没有尝试过、但可能可行的选择是从 PLLRATIONCLK 获取 MCAN CLK。  在下面的 F28003x 时钟图中、PLLRATION 时钟是 PLL 的输出时钟:

    使用 SYSCLK 分频器解析 PLLRAWCLK 将产生 SYSCLK。  因此、如果 PLLRAWCLK 配置为 240MHz 且 PLLSYSCLKDIV = 1(2 分频)、则 SYSCLK 为 120MHz。  在 MCAN 块中、MCAN 位时钟可以源自 AUXCL((60MHz 最大值)、SYSCLK((120MHz 最大值)或 PLLRATION 时钟(最大 240Mhz)。  然后、您可以选择要源自 PLLRAWCLK 的 MCAN 位时钟(来自寄存器 CLKSCRCTL2.MCANxBCLKSE)、并将 MCAN 时钟分频器设置为 3 以产生 80MHz MCAN 时钟。  具有 80MHz MCAN CLK 的 tq 可提供更高的粒度。

     

    我想其他两个问题都是根据上面的答案来回答的。  至于最后一个关于传输错误的问题、如果这是一个问题、没有 TDC(TX 延迟补偿)通常会产生位错误。  您可以检查 MCAN_PSR 寄存器 (LEC) 的内容是否存在所报告的错误。  没有 TDC 可能是导致 TX 错误的原因。

    此致、

    Joseph