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.

[参考译文] AM620-Q1:如何接收具有任何 ID 的 CAN 帧

Guru**** 2474710 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1462010/am620-q1-how-to-receive-can-frame-with-any-id

器件型号:AM620-Q1

工具与软件:

大家好、

对于函数 App_mcanInitStdFilterElemParams 中的以下 MCAN 配置、导致 Rx 消息 ID 与 APP_MCAN_STD_ID 完全匹配 存储在 Rx 缓冲区中  

并在 IR 中接收 DRX 中断

/* sfid1定义要存储的标准消息的 ID。*/
stdFiltElm->sfid1 =APP_MCAN_STD_ID
/*当选择缓冲器模式时、sfid2应为 bufNum[0 - 63]*/
stdFiltElm->sfid2 =  bufNum
/*将消息存储在缓冲区中*/
stdFiltElem->sfec = MCAN_STD_FILT_Elem_buffer;
/*如果消息存储在缓冲区中、以下配置将被忽略*/
stdFiltElem->SFT =MCAN_STD_FILT_TYPE_RANGE;


但对于我的应用、我希望所有具有任何 ID 的传入消息都存储在 Rx 缓冲区中  

请确认必要的配置、以便发送和接收任何 CAN 帧 ID  

我已经尝试将 SFID1和 SFID2设置为零,在这种情况下,帧将被发送,没有任何 CAN ID 和收到错误的消息 ID(垃圾值)
在这种情况下、请告知。

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

    尊敬的 Aparna:

    您能更新吗?

    由于我们无法接收和发送任何 CANID、因此我们的开发会被延迟。

    请求您与代码片段共享解决方案  

    例如、Tx ID 为0xD0、Rx 为0xB0、即我们将发送 Tx ID 为0XD0的 CAN 帧、我们将仅接收 ID 为0xB0的帧、因此请建议相同的过滤器配置设置。

    请求快速响应。

    谢谢

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

    大家好、团队成员:

    请按要求更新

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

    尊敬的 Anand:

    很抱歉响应延迟。我已听取您的意见并正在处理此问题、请预计1-2天内回复。

    此致、

    开会。

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

    尊敬的 Anand:

    有关验收滤波器的详细了解、请参阅 AM62x TRM 的第12.5.1.4.7.1节、其中介绍了如何配置滤波器元件。 您还可以在此链接中找到相同的信息:AM62x MCU+ SDK:MCAN

    接受过滤器支持多种配置、例如范围过滤器、双 ID 过滤器和传统位掩码过滤器。 使用范围过滤器可以配置 SFID1到 SFUD2可接受的消息 ID 范围。 当您使用 Rx 缓冲器模式时、这不适用、一个过滤器元素将只接受 SFID1指定的特定消息 ID 并将其存储到 SFID2指定的 Rx 缓冲器中。

    如果只需处理少数消息 ID、则可以为这些 ID 创建多个过滤器元素、并将它们存储到其专用的 Rx 缓冲区中。 如果您在 SFEC 中使用任何其他选项而不是7 (例如、将存储到 Rx FIFO0/1)、那么您也可以为此使用范围过滤器。

    此外、对于 Rx FIFO 0和1、我们还可以在全局过滤器配置寄存器中选择也接受不匹配的帧、在代码中、这是由 API MCAN_initGlobalFilterConfigParams 和 MCAN_CONFIG 完成的。 对于 Rx 缓冲器、此选项不可用:

    此致、

    开会。