Re: i.MXRT1064 CANFD. If the CAN message buffer payload for a region (0 or 1) is set to 8bytes, 16Byte or 32Byte or 64Byte, which affects the # message buffers, how is indexing into RXMASK registers affected?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Re: i.MXRT1064 CANFD. If the CAN message buffer payload for a region (0 or 1) is set to 8bytes, 16Byte or 32Byte or 64Byte, which affects the # message buffers, how is indexing into RXMASK registers affected?

1,408 Views
paul_roberts
Contributor III

Re: i.MXRT1064 CANFD.  If the CAN message buffer payload for a region (0 or 1) is set to 8bytes, 16Byte or 32Byte or 64Byte, which affects the # message buffers, is indexing into RXMASK registers affected?   If so, is there a table showing the mapping?

Suppose for example:

1) I select 64Byte payload size for region 0 which gives me a total of 7 message buffers for region 0.  (MB0 through MB6?)

2) I select 16Byte payload size for region 1 which gives me a total of 21 message buffers for region 1.  (MB7 through MB27?)

3) Now suppose I want to set the RXMASK for "MB5", or for "MB27"?  Which   FLEXCANx_RXIMRnn registers do I use? 

4) Does similar mapping apply to the bits in FLEXCANx_IMASK1, FLEXCANx_IMASK2?

4 Replies

1,317 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Paul Roberts,

  Sorry for my later reply!

  About the different CAN mesage buffer payload, I think the RXMASK register is not affected, the RX individual Mask Register should still need to check the related MB number.

Answer your supposed example:

1) I select 64Byte payload size for region 0 which gives me a total of 7 message buffers for region 0.  (MB0 through MB6?)

Answer:

   The 64Byte Message buffers memory map, the related message buffer list as follows:

pastedImage_1.png

So, if you want to check the RXMASK register index, you just need to check the RXIMR0-RXIMR13, the IMASK register also check the related MB index.

2) I select 16Byte payload size for region 1 which gives me a total of 21 message buffers for region 1.  (MB7 through MB27?)

Answer:

  16Byte payload is the same, you can check Table 44-41. 16-byte message buffers in the RM, then you also can use the related MB index for mask register.

3) Now suppose I want to set the RXMASK for "MB5", or for "MB27"?  Which   FLEXCANx_RXIMRnn registers do I use? 

Answer: I think it should be RXIMR5 and RXIMR27.

4) Does similar mapping apply to the bits in FLEXCANx_IMASK1, FLEXCANx_IMASK2?

Answer:  The index is the same, it is not changed, it should be the same index as your MB number.

Wish it helps you!

If you still have questions about it, please kindly let me know.

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
Reply

1,317 Views
paul_roberts
Contributor III

Hello Kerry,

Thank you for the reply.  It makes sense.  What I'm really trying to confirm is as follows.

Suppose region 0 is set to the 16-byte payload size and 12 MBs (MB0 through MB11).  If I now set region 1 to the 64-byte payload and 7MBs, will the first MB in region 1 be MB12?  In other words, is MB mapping affected if your regions are using differently sized payloads?

Thanks,

Paul

0 Kudos
Reply

1,317 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Paul Roberts,

   Happy new year!

   About your question, I think this content in the RM already give some clue:

pastedImage_1.png

    So, I think, the detail MB number is in order, even you have different payload in different region.

     Take your suppose as an example:

     1. region 0, 16-byte payload, MB number is 21.

     2. region 1, 64-byte payload, MB number is 7.

  Now, the MB should be:

MB0-20 is the 16 byte payload MB, MB21-MB27 is the 64Byte payload MB.

Wish it helps you!

If you still have questions about it, please kindly let me know.

Have a great day,
Kerry

 

-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

 

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

0 Kudos
Reply

1,317 Views
kerryzhou
NXP TechSupport
NXP TechSupport

Hi Paul Roberts ,

   Sorry for our later reply, I just take your case.

   Please give me more time to check the details, then give you reply later, please wait patiently, thanks a lot for your understanding.

Best Regards,

kerry

0 Kudos
Reply