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.

TMS320F28388D: Setting up CAN receive message objects

Part Number: TMS320F28388D
Other Parts Discussed in Thread: C2000WARE

Tool/software:

Due to a shortage of message objects I need to receive multiple messages to single message objects, for example I need MO1 to receive messages in the range 1000h to 100Fh, MO2 to receive messages in the range 2000h to 200Fh and MO3 to receive messages in the range 3000h to 300Fh. The problem that I am having is that any message sent to MO3 ends up in MO1. At initialisation my registers for each MO are set up as follows (using MO1 as an example, and omitting waiting for the busy flag to clear after each register write for clarity):

CAN_IF2MSK = C0001000h

CAN_IF2ARB = 40001000h

CAN_IF2MCTL = 00101080h

CAN_IF2ARB = C0001000h

and finally CAN_IF2CMD = 00F00001 to transfer the register settings.

I presume I need different mask or arbitration register settings to get this to work properly, but I haven't found a combination that works yet.