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.

[参考译文] PROCESSOR-SDK-AM64X:如何配置 CAN ID 以由处理器进行滤波

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501642/processor-sdk-am64x-how-to-configure-can-ids-to-be-filtered-by-processor

器件型号:PROCESSOR-SDK-AM64X

工具/软件:

尊敬的 TI 支持部门

如何设置 MCAN 以在不使用 ID 过滤的情况下将所有11位/29位 ID 放入接收缓冲区、并将其筛选在处理器端?

我假设、如果接收到任何有效消息、则将在接收中断中返回该消息。

如果无法使用接收缓冲区完成此操作、请告诉我是否有其他方法。

ID 的四个 LSB
stdFiltElem[0].sfid1 =?;
stdFiltElem[0].sfid2 =?;
stdFiltElem[0].sft =?;
stdFiltElem[0].sfec =?;

用于29位 ID
extFiltElem[0].efid1 =?;
ExtFiltElem[0].efid2 =?;
extFiltElem[0].eft =?;
ExtFiltElem[0].efec =?;

此致、
Minoru

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

    尊敬的 Minoru:

    您可以为此使用传统位掩码过滤器、并将所有位掩码设置为0、以便所有消息 ID 都匹配并存储到 FIFO0/1中、请参阅 TRM 的12.4.1.4.7.1.3。 请注意、您不能将缓冲器模式用于此目的、因为在缓冲器模式中会忽略 SFT/eft 中的配置。 您可以将 sfec/efec 设置为1以将消息存储在 Rx FIFO 0中、并将 SFT/eft 设置为2以使用传统过滤器。 然后、您必须在 sfid2/efid2中设置位掩码、您可以将其配置为0x0、因为您要接受发送到 FIFO 的所有消息。

    此致、

    会面。

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

    尊敬的会议:

    我知道接收缓冲区无法接收所有 CAN ID。
    如果我设置为使用 Rx FIFO、则可以执行该操作。
    我从未使用过 MCAN 的 Rx FIFO 模式、您能否提供在 Rx FIFO 模式下使用 MCAN 的示例程序?
    初始化、接收决策、从 Rx FIFO 获取数据等
    这些将帮助我更好地理解。

    此致、
    Minoru。

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

    尊敬的 Minoru:

    请参阅 SDK 中的 MCAN 环回轮询: https://software-dl.ti.com/mcu-plus-sdk/esd/AM64X/11_00_00_15/exports/docs/api_guide_am64x/EXAMPLES_DRIVERS_MCAN_LOOPBACK_POLLING.html

    此示例使用扩展消息 ID 和 FIFO 模式将消息存储在 RAM 中。

    此致、

    会面。

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

    尊敬的会议:

    感谢您回复我。
    我会尝试采样以供参考。
    如果我有任何疑虑、我会提出其他问题。

    此致、
    Minoru。