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.

Compiler/TMS320F28377D: CAN on 28377S, MsgBox 32 config overwritten on sending data at MsgBox 1

Part Number: TMS320F28377D

Tool/software: TI C/C++ Compiler

I set up a CAN RX FIFO for message box 16...32.

for(i = 16; i < 32; i++)  {
    CAN_setupMessageObject(CANA_BASE, i, 0, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_USE_ID_FILTER | CAN_MSG_OBJ_FIFO, MSG_DATA_LENGTH);
} CAN_setupMessageObject( CANA_BASE, i, 0, CAN_MSG_FRAME_STD, CAN_MSG_OBJ_TYPE_RX, 0, CAN_MSG_OBJ_USE_ID_FILTER , MSG_DATA_LENGTH); // last fifo entry

And read the message by polling the new message flag.

This works fine, this config is written to the memory

Receiving is also working as expected.

But if I'm sending

Here I stopped at the breakpoint right after.

The config in the memory for message box 32 is overwritten. Also the TX request flag for message box 32 is set.

Why?

The TX request on message box 32 will never be cleared.

(There is NO answer from any other CAN nodes that could be written to this memory.)

Reading the data out of message box 32 is always zero.

Thanks for your help.