TI中文支持网
TI专业的中文技术问题搜集分享网站

TDA4VM: TDA4VM main域CAN ID过滤配置27个ID,但是只生效了前25个

Part Number:TDA4VM

TDA4VM main域MCU2_1工程

CAN示例程序参考

\ti-processor-sdk-rtos-j721e-evm-07_03_00_07\pdk_jacinto_07_03_00_29\packages\ti\csl\example\mcan\mcanEvmLoopback\mcan_evm_loopback_app_main.c

将其中的ID过滤数量修改为了27

然后分别对过滤ID进行配置

其他参数和示例程序一致

最后验证发现,总共配置了27个过滤ID,但是只有前25个ID报文可以进入中断,最后两个无法进入中断

Shine:

请尝试加大堆栈试试。

,

hangtai wang:

请问是系统的堆栈吗,在哪里配置的呢

,

Shine:

我把您的问题升级到英文e2e了https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1130765/tda4vm-the-last-two-filter-id-can-t-enter-the-interrupt能否发一下您图2的代码?图片看不清,太小了。

,

hangtai wang:

stdFiltelem.sfec = 0x7;

stdFiltelem.sft = 0x0;

for(i = 0; i < (sizeod(gCanCmdParamConfig[mcanIdx])/sizeof(gCanCmdParamConfig[mcanIdx][0])); i++)

{

   if(gCanCmdParamConfig[mcanIdx][i].can_id[0] == 0)

   {

       continue;

   }

   stdFiltelem.sfid2 = i;

   stdFiltelem.sfid1 = gCanCmdParamConfig[mcanIdx][i].can_id[0];

  MCAN_addStdMsgIDFilter(mcanAddr, i, &stdFiltelem);

}

程序对一个需要过滤的ID表,不断通过MCAN_addStdMsgIDFilter()添加过滤ID,然后一共是27个,但是只有前25个起作用了,后两个ID的报文收不到

,

Shine:

请看下面工程师的回复。Can you confirm what is the value of msgRAMConfigParams.lse you are programing? This is 1 by default as APP_MCAN_EXT_ID_FILTER_NUM is defined as 1U in the SDK example.

,

hangtai wang:

这个APP_MCAN_EXT_ID_FILTER_NUM宏定义不是代表扩展CANID的吗,但是我需要过滤的是标准ID,应该是APP_MCAN_STD_ID_FILTER_NUM才对,我把它改成了64

,

Shine:

已把您的问题更新到e2e帖子,请关注帖子的回复。

,

Shine:

请参考下面工程师的回复。Shine said:

Does APP_MCAN_EXT_ID_FILTER_NUM macro refer to CANID extension? Customer wanted to filter the standard ID, he set APP_MCAN_STD_ID_FILTER_NUM to 64, is it correct?

Yes, the APP_MCAN_EXT_ID_FILTER_NUM is for filters for extended ID, APP_MCAN_STD_ID_FILETER_NUM is correctly set to 64U.c It's maximum value can be 128U.

The configuration seems correct, is it possible to share the full application code from the customer so that I can try replicating this on my side on the EVM?

赞(0)
未经允许不得转载:TI中文支持网 » TDA4VM: TDA4VM main域CAN ID过滤配置27个ID,但是只生效了前25个
分享到: 更多 (0)