Other Parts Discussed in Thread: SYSCONFIG
Tool/software:
Hello TI team:
In my project. Only Standard ID equal to 0x757, 0x2F6 can be receive. I want to use 3 acceptance filter to filtering these standard id. In additional , CAN message with standard id 0x757 store in RX FIFO0, and CAN message with standard id 0x2F6 store in RX FIFO1 or dedicate RX buffer. below is my configuration 1:


stCanRxDiagMsgObj.direction = CANFD_Direction_RX; stCanRxDiagMsgObj.msgIdType = CANFD_MCANXidType_11_BIT; stCanRxDiagMsgObj.args = (uint8_t*) Can_au8RxDiagData; stCanRxDiagMsgObj.startMsgId = 0x757; stCanRxDiagMsgObj.endMsgId = 0; stCanRxDiagMsgObj.rxElement = 0; stCanRxDiagMsgObj.dataLength = 64; stCanRxDiagMsgObj.rxMemType = MCAN_MEM_TYPE_FIFO; status = CANFD_createMsgObject (gCanfdHandle[CONFIG_MCAN0], &stCanRxDiagMsgObj); u32FilterNum++; stCanRxTimeSyncMsgObj.direction = CANFD_Direction_RX; stCanRxTimeSyncMsgObj.msgIdType = CANFD_MCANXidType_11_BIT; stCanRxTimeSyncMsgObj.args = (uint8_t*) Can_au8RxTimeSyncData; stCanRxTimeSyncMsgObj.startMsgId = 0x2F6; stCanRxTimeSyncMsgObj.endMsgId = 0; stCanRxTimeSyncMsgObj.rxElement = 0; /** buffer num */ stCanRxTimeSyncMsgObj.dataLength = 64; stCanRxTimeSyncMsgObj.filterConfig; stCanRxTimeSyncMsgObj.rxMemType = MCAN_MEM_TYPE_BUF;
The filters worked. But CAN message with Standard id 0x2F6 store in FIFO0, NOT in dedicate rx buffer. All the message receive with stCanRxDiagMsgObj. Object stCanRxTimeSyncMsgObj was meaningless.
Base on above, add another configuration :
uint32_t u32BaseAddr = 0U;
uint32_t u32FilterNum = 1;
MCAN_StdMsgIDFilterElement stStdMsgIdFilter;
u32BaseAddr = stCanRxDiagMsgObj.canfdHandle->object->regBaseAddress;
/**ID */
stStdMsgIdFilter.sfid1 = 0x2F6;
stStdMsgIdFilter.sfid2 = 0;
/* store in rx buffer */
stStdMsgIdFilter.sfec = MCAN_STD_FILT_ELEM_BUFFER;
/**< Dual ID filter for SFID1 or SFID2, will be ignore in buffer mode. */
stStdMsgIdFilter.sft = MCAN_STD_FILT_TYPE_DUAL;
MCAN_addStdMsgIDFilter(u32BaseAddr, u32FilterNum, &stStdMsgIdFilter);
In this configuration , CAN message with standard id 0x2F6 can trig the receive interrput. But can not get the correct CAN id and message data.
So, Can you help to modify the filter configuartion to meet my requirement? Thank you!
Another question:
SFID2 have been explain in blue box, so how to understand the description in red box?





