TMS320F280039C: MCAN接收过滤器问题

Part Number: TMS320F280039C

你好,我在配置280039C芯片的MCAN的过滤器时,发现第一个过滤器的sfid2无法正常工作,请问是什么原因呢?具体配置如下:

ConfigParams.filterConfig.anfs = 2U;

MCAN_config(MCANA_DRIVER_BASE, &ConfigParams );

StdFilterElement.sfid1 = 0x009U;

StdFilterElement.sfid2 = 0x0ADU;

StdFilterElement.sfec = 1U;

StdFilterElement.sft = 1U;

MCAN_addStdMsgIDFilter(MCANA_DRIVER_BASE, 0U,  &StdFilterElement);

配置如上,sfid1正常工作,但是sfid2无法工作,请问是什么原因呢

  • 感谢您对TI产品的关注!
    关于你的咨询,我们正在确认你的问题,稍后回复您。

  • SFID2确定Rx缓冲元素(在64个可能的元素中),其中将存储接受的帧(由相应的过滤器元素确定)。请参考C2000软件示例“mcan_ex10_receive_multiple_buffers”以了解其实现。

    mcan_ex10_receive_multiple_buffers

  • 在上述例程中,

    1.0x1属于过滤ID么?如果接收ID有0x1会怎么样?

    2.为什么StdFilterElement.sfec = 1U;这种模式的两个ID不可以用?
    3.例程没有配置filterConfig.anfs ,不是所有ID都会接受么?

  • ANFS=2表示不匹配的消息被拒绝。
    StdFilterElement.sfec=1U;-->匹配的消息存储在RX FIFO0中
    StdFilterElement.sft=1U;-->使用两个ID过滤器(从SFI1到SFID2)来过滤传入消息。
    因此,根据您的配置,ID为0x09到0xAD的消息将存储在FIFO0中。所有其他不匹配的消息都将被拒绝。

  • 请问这个filter ID存在内存的哪个位置呢?我想看一下是不是被覆盖了,在0x0000这个地址上没有发现存储的filter ID

x 出现错误。请重试或与管理员联系。