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.

[参考译文] TMDXRM46HDK:RM46x HDK -无法使用 BTR 寄存器配置 CAN1以实现不同的波特率

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/605987/tmdxrm46hdk-rm46x-hdk---unable-to-configure-can1-using-btr-register-for-different-baud-rates

器件型号:TMDXRM46HDK
主题中讨论的其他器件:HALCOGEN

我正在寻求确认将 DCAN 端口1配置为多个不同波特率的能力。  我一直在尝试使用 HalCoGen 来确定 BTR 的正确值。

它没有我所希望的那样成功。

有人能不能告诉我125kb、250KB 和500kb 的正确值(以及值的原因)

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

    我可能找到了(只是通过尝试不同的值)功能设置。  仅仅因为他们对我很有效、并不意味着它们是最佳值。  如果您知道 BTR 的首选设置值、我想听听其他人的意见。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我通过实验获得的值与由 HalCoGen 生成的值不同、所以我怀疑 HDK 实际上是以记录的 CAN 时钟速度运行的。

    此外、任何人能否在9.0 FreeRTOS 示例代码中说出在哪里可以找到 ISR 支持。 我可能希望设置断点以查看某些值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Neil、

    不幸的是,我不理解你提出的问题。 您说过您无法为 BTR 寄存器生成特定 CAN 波特率的值。 然后、您说您使用了 Halcogen 来生成它们、它们与手工生成的不一样。 我相信您已经说过、手动生成的值似乎是有效的。 您是否确认 HalCoGen 生成的值也在工作或者它们不工作?

    您还说、您怀疑 HDK 以 CAN 的记录时钟速度运行。 您是否能够查看 CAN 通信并测量脉宽以确定周期时序、从而确定频率/位时序?

    关于 FreeRTOS v.9.0中的 ISR 支持,我没有 FreeRTOS 方面的经验,因此我无法为这个问题提供有用的信息。 您是否知道版本9与 Halcogen 支持的版本之间是否相同? 如果是、我可以请我们的软件团队帮助解决您的这部分问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢你的答复。

    当我使用 HalCoGen 创建 BTR 设置值时、RM46x HDK 不会以与测试设置中的其他 CAN 器件兼容的方式以预期的波特率操作 CAN 端口。 我不是说 HalCoGen 是错的。
    使用示波器和其他工具、我能够找到我感兴趣评估的波特率的 BTR 设置值。

    我目前希望看到一些未扩展的 CAN 帧到达。 我的 Simma SDK 代码示例似乎允许扩展的 J1939帧到达。 在设置该设置时、您有什么建议吗? 在哪里可以调整"仲裁"或其他值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更新了:我认为 ISR 函数设置不正确、因此这可能解释了为什么我无法看到帧到达 CANBUS。 有人知道一个很好的参考或快速指南来查看吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尼尔

    您是否正在使用 HalCoGen 驱动程序? 它应该具有相当直接的 CAN 发送和接收功能接口。 关于您之前对扩展 CAN 帧的评论、您是指扩展 CAN ID 吗? 这在 TRM 中进行了描述、我相信也可在 HalCoGen 中进行配置。

    对于有关调整仲裁和其他值的问题、仲裁由 CAN2.0B 规范/标准建立。 如果我正确地回忆、它基于 CAN ID、但我不记得较低或较高的值是否具有较高的优先级。 您指的是其他哪些值?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。

    此项目在 CCS 上使用针对 RM48的 FreeRTOS 9.0示例演示。 它经过非常轻松的调整、可在 RM46 HDK 上下载并运行。

    我们为 CAN 和 J1939添加了 Simma SDK。 基于 USB CAN 记录/记录工具上的 J1939地址声明的外观(并看到地址声明逻辑中的断点被命中)、我最初以为 Simma SDK 接受帧。 到今天为止,我认为我的例子并不是接受框架。 我将继续尝试获取此代码库以接受扩展和非扩展帧。 我想我们已经讨论了有关 BTR 设置的原始问题、但我想知道 CAN1上 RM46 HDK 的时钟和 VCLK 预期设置是多少。

    我认为 HalCoGen 没有任何问题或故障。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我确实找到了一个线程、该线程可能会解释为什么我看到了这种行为。 理论上、某些 HDK 有一个小故障、这会阻止 CAN 按预期在 VCLK 上计时。

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

    有关您指向的线程的几个点。

    首先、参考的电路板是 Launchpad 而不是 HDK。

    其次、从硬件的角度来看、TI 未重现所描述的行为。 即、如果您对此类问题进行故障分析、如果 VCLK 驱动的 IP 没有其他问题、例如 ADC、ECLK 输出、其他通信波特率等、则不会跟踪硬件问题 由于 VCLK 是我们的外设时钟、如果出现故障或设置错误、会导致灾难性的芯片问题、因此隔离式 CAN 问题似乎不太可能与 VCLK 问题相关。 上一个帖子要求客户验证 ECLK 输出、以查看它实际上是否可以确认时钟错误行为、但之后没有响应。