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.

[参考译文] CCS/TMDXRM46HDK:RM46x HDK 对于 CAN1 revive messageBox 上的 DLC 值不准确

Guru**** 2350610 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/611941/ccs-tmdxrm46hdk-rm46x-hdk-not-accurate-for-dlc-value-on-can1-reveive-messageboxes

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

工具/软件:Code Composer Studio

按照 RM46器件[example_canIntCommunications]的示例、我能够将 CAN 端口接收到一个消息框中。  但是、DLC (数据长度计数)不可靠。  我尝试为 1到8之间的每个 DLC 值创建8个消息框;但该行为不起作用。

如何获得精确的 DLC?  我的八个消息盒方法是否有某些原因无效?

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

    您是否在消息 RAM 中或从寄存器(IFxMCTL[3:0])中检查了 DLC?

    如果在读取报文 RAM 时控制位(IFxCMD[20])被清零、控制位将不会改变、IFxMCTL[3:0]中的值将不会反映报文 RAM 中的当前值。

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

    那么、对于 CAN1、我需要检查 IF1MCTL 值以确定 DLC 值吗?

    在 reg_can 中没有创建可提供接收到的 CAN 帧的 DLC 值的函数。[h/c]或 CAN.[h/c]?

    您的建议听起来很有希望。  我将运行一些测试。

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

    在手册中、我的 DLC 会出现在 IF3MCTL 上。 我已为 IRQ 启用 CAN1 IF3 VIM 44。 在接收时、整个 IF3MCTL 值为零。

    这方面我有什么问题吗?

    经过进一步调查、我的 HalCoGen 设置将 VIM44分配给了 phantomInterrupt、因此这不是很好。  我需要执行哪些 HalCoGen 步骤来启用 CAN1 IF3?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我将把这个帖子标记为已解决。 您在何处查找 DLC 方面的建议非常有用。 我有一个后续问题、我将为其开始一个新问题。