Hi community,
I want to use individual masking functionality of FlexCAN by setup a mask to received CAN Message.
My setup is the following:
- use MB1 as receive message box
- IDAM bit = Format A
- IRMQ bit = 1 (individual masking is enabled and FIFO is not used)
- RXIMR1 = 0x00000700 (I want to receive all IDs between 0x300 and 0x3FF)
- ID = 0x300 therfore in MB[1].ID it is 0xC000000
I verified that the RXIMR1 register is written correctly in FreezeMode
I also verified that MB[1].ID is also written correctly.
Why do I get all CAN ID´s with this Setup and the defined mask (0x700) has no effect ?
Is there any additional configuration which I missed ?
Thanks for your help.
Jochen
Solved! Go to Solution.
Hi Jochen,
Please check below message buffer structure:
The standard frame ID is from bit 28 to bit 18.
So the RXIMR1 = 0x00000700 should change to RXIMR1 = 0x1C000000
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Ma Hui,
thanks a lot for your Support!
That was exactly the solution I needed.
Now it works perfect!
Regards
Jochen
Hi Jochen,
Please check below message buffer structure:
The standard frame ID is from bit 28 to bit 18.
So the RXIMR1 = 0x00000700 should change to RXIMR1 = 0x1C000000
Wish it helps.
Have a great day,
Ma Hui
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------