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.

[参考译文] TMDSCNCD28388D:在 MCAN 上接收常规标准 CAN 消息

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1414918/tmdscncd28388d-receiving-regular-standard-can-messages-on-mcan

器件型号:TMDSCNCD28388D
主题中讨论的其他器件: SysConfig

工具与软件:

我使用的是 TMDSCNCD28388D 评估板。 我正在尝试测试 CAN 的发送和接收、并使用 C2000中提供的 boot_rom 示例、并使用 MCAN_Boot.c 文件作为引导加载程序的基础。 现在、它只能接收 ID 等于1的消息、而不能接收其他任何消息。 为了改变 CAN 屏蔽和过滤器、我需要配置哪些寄存器(以及它们各自的宏)、它们是如何工作的?

此外,我想检查并查看 MCAN_Boot.c 中的函数 MCAN_sendTwoMessages()是否应该发送两次完全相同的消息。 当我运行该函数时、我收到两条消息、但它们是不同的。

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

    您好!

    我已经循环了适当的专家,请期待尽快回复。

    此致、

    Delaney

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

    我发现为了调整板将收到的 ID、我需要调整标准消息 ID 过滤器元素字段。 但是、即使电路板现在确认收到 CAN 消息、数据也未填充。  

    现在、我发送一条 CAN 消息、然后电路板收到它。 但 ID 与我发送的 ID 不同、无论什么、数据字段都保持为0。 DLC 与我设置的 CAN 消息相同。

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

    您好!

    我将在下周初审查这一点。

    此致、

    Rajeshwary

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

    尊敬的 Tomas:

    您在标称阶段和数据阶段使用什么比特率? 如果主机使用的比特率与 F28388x 的预期不匹配、这可以解释为什么数据字段未填充。

    此致、

    Skyler

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

    我相信,通过测试时 IXXAT 可以读取输出的消息,比特率是500kbps CIA。 但是、如果需要、哪些寄存器可以检查标称相位和数据相位、并将系统设置为常规 CAN?

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

    尊敬的 Tomas:

    我建议使用示波器并手动验证比特率。 您使用哪个示例作为参考? 您是否使用 SysConfig? 如果是这样、配置标称阶段和数据阶段比特率将容易得多。  

    以下是计算标称比特率的方法。

    MCANBitClk = SYSCLK/MCANCLKDIV

    NominalbitTime (Tq)=(NTSEG1 + 1)+(NTSEG2 + 1)+ 1

    NominalBRP=(NBRP+1)

    FinalNominalBaudRate = MCANBitClk/(NominalBRP * NominalbitTime)

    以下是如何计算数据比特率。

    MCANBitClk = SYSCLK/MCANCLKDIV

    DatabitTime =(DTSEG1 + 1)+(DTSEG2 + 1)+ 1

    DataBRP=(DBRP+1)

    FinalDataBaudRate = MCANBitClk/(DataBRP * DatabitTime)

    TSEG1、TSEG2、BRP 可在 CAN_BTR 寄存器中找到。

    此致、

    Skyler

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

    我使用示波器检查、标称比特率为500kbps、并将数据阶段比特率配置为与标称比特率相同。

    还有什么可以阻止接收消息的数据部分?

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

    尊敬的 Tomas:

    您是否尝试过更改采样点? 此外、在我们的大多数示例中、数据速率为1Mbps、标称速率为500kbps。 您是否正在使用我们的示例之一?  

    此致、

    Skyler