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.