AnsweredAssumed Answered

Message ids 0x80 and 0x81 never received by s32 especially when more than 2 (0x80 and 0x81 and others) are configured

Question asked by Moreshwar Salpekar on May 22, 2019
Latest reply on May 28, 2019 by Petr Stancik

Dear All,

 

Details of Environment

--------------------------------

SDK : S32K144_SDK_gcc version 0.8.6 (S32K14x EAR SDK for GCC (S32K144))

FreeRTOS: version 8.2.1.

 

S32 Design Studio for ARM

Version: 2018.R1
Build id: 180815

 

Can message type: FLEXCAN_MSG_ID_STD,

Length :  8 bytes

 

Problem

--------------------

Summary: Can message id 0x80 and 0x81 not received while others are recieved

I am using S32K144 with FreeRTOS. I have configured mailboxes to receiive CAN messages for 2 message ids 0x80 and 0x81 as given below. The messages are one time messages (i,e. fault messages):

FLEXCAN_DRV_SetRxIndividualMask(INST_CANCOM1, FLEXCAN_MSG_ID_STD, 6, 0x0u);
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, 6, &dataInfo_std, 81);
FLEXCAN_DRV_SetRxIndividualMask(INST_CANCOM1, FLEXCAN_MSG_ID_STD, 7, 0x0u);
FLEXCAN_DRV_ConfigRxMb(INST_CANCOM1, 7, &dataInfo_std, 0x80);

 

All functions are returning STATUS_SUCCESS.

 

Now I call 

FLEXCAN_DRV_Receive(INST_CANCOM1,6, &recvBuff1);

FLEXCAN_DRV_Receive(INST_CANCOM1,7, &recvBuff2);

and then

 

status =FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1,6);

while (status != STATUS_SUCCESS)

{

   status =FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1,6);

}

 

status =FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1,7);

while (status != STATUS_SUCCESS)

{

   status =FLEXCAN_DRV_GetTransferStatus(INST_CANCOM1,7);

}

 

in both of above while loops status is STATUS_BUSY. 

 

I have other mailboxes with message ids 0x212, 0x319,0x361 which are periodic i.e. sent at regular intervals. For these, I am following the above steps, status is always STATUS_SUCCESS.

Why is there a problem with message ids 0x80 and 0x81?

 

The situation is more problematic for 0x80 and 0x81 when all of the above message ids are configured to be received (receive all of  0x212, 0x319,0x361, 0x80 and 0x81) simultaneously. Messages 0x80 and 0x81 are never received. Others are received as expected.

 

Please help me understand what is the problem and how to resolve it?

 

Regards

Moreshwar Salpekar

Outcomes