XMC4400 Interrupt Issue With Message Object

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hello,

I am using XMC4400 controller.... To reduce load on CPU I have configured Message Objects and I want that Receive Interrupt should be generate only when data with matching identifier configured in Message object is arrived at CAN node. I have made following configuration for Message Object 0-

CAN_NCR(NODE1).TRIE= 1 or 0
CAN_NCR(NODE1).LECIE=1 or 0
CAN_NCR(NODE1).ALIE=1 or 0

setting or resetting Above (NCR) values shows no change

CAN_MOIPR0.MNP= 0x0000
CAN_MSIMASK.IM= 0x0FFFF
CAN_MOAR0.ID = 0x00<<18;
CAN_MOARM0 = 0x00;
CAN_MOCTR0 = RESDIR | SETMSGVAL | SETRXEN | SETRTSEL
CAN_MOFCR0.RXIE = 1
CAN_MOFCR0.FRREN= 0

Please note I dont see any problem with Configuration of LIST register.

But after running the program- Suppose if i transmit a data with Identifier with 0x111 from PCAN simulator on CAN Bus... the controller Generates Receive interrupt for Message Object 0 and its CAN_MOAR0.ID register gets modified. i.e. CAN_MOAR0.ID=0x111<18 is the output seen in the registers.


Please let me know if I have to make any setting so that my Id from Message object will not be modified and Interrupt will be generated only for Matching identifiers only.

If you require any more details please let me know.

Thanking in anticipation

Regards
Nitin Jadhav
0 Likes
2 Replies
Not applicable
The problem was wit configuration of CAN_MOAMR register. The AM Masking of Id was not done properly
0 Likes
Not applicable
Is the problem solved now?
0 Likes