<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic FlexCan Receiving MB question in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FlexCan-Receiving-MB-question/m-p/475758#M28936</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Currently, I setup 8 receiving MBs from index 0 to 6. First 3 MBs is set to receive extended ID 0x0C20FF00 only, and next 3 MBs is setup to receive extended ID 0x0C21FF00 only. The last for any other extended ID.&lt;/P&gt;&lt;P&gt;The problem:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C20FF00 is always received in MB[0]. - as expected&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C21FF00 and any other Ext IDs are received in MB[6]. - This is wrong. 0x0C21FF00&amp;nbsp; should be in MB[3].&lt;/P&gt;&lt;P&gt;If I set MB[6] to receive 0x0C22FF00 only, without any other changes,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C20FF00 is always received in MB[0]. - as expected&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C21FF00 is received in MB[3]. - as expected. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C22FF00 is received in MB[6]. - as expected. &lt;/P&gt;&lt;P&gt;Suppose MB[3-5] have higher priority than MB[6]. 0x0C21FF00 should be in the MB[3] instead of MB[6] in the first case. Why in MB[6] instead?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the setup:&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_SRXDIS_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Disable Self Reception&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_IRMQ_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable Individual Mask and queue&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR &amp;amp;= (~(uint32_t)CAN_MCR_IDAM_MASK);&amp;nbsp;&amp;nbsp;&amp;nbsp; //Format A: One full ID (standard and extended)&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_MCR_RFEN_MASK); //Disable Rx FIFO&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;CTRL2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_CTRL2_RFFN_MASK) ; &lt;/P&gt;&lt;P&gt;//Initialize the Rx Individual Mask Registers&lt;/P&gt;&lt;P&gt;for (uint8_t mb=0; mb&amp;lt;NUM_OF_MB_USED_RX; mb++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FLEXCAN0_RXIMRn(mb) = g_dwMB_Masks[mb]; // 0: do not care 1: checked &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_SRXDIS_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Disable Self Reception&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_IRMQ_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable Individual Mask and queue&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR &amp;amp;= (~(uint32_t)CAN_MCR_IDAM_MASK);&amp;nbsp;&amp;nbsp;&amp;nbsp; //Format A: One full ID (standard and extended)&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_MCR_RFEN_MASK); //Disable Rx FIFO&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;CTRL2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_CTRL2_RFFN_MASK) ; &lt;/P&gt;&lt;P&gt;//Initialize the Rx Individual Mask Registers&lt;/P&gt;&lt;P&gt;for (uint8_t mb=0; mb&amp;lt;NUM_OF_MB_USED_RX; mb++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FLEXCAN0_RXIMRn(mb) = g_dwMB_Masks[mb]; // 0: do not care 1: checked &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t g_dwMB_Masks[NUM_OF_MB_USED_RX] = {&lt;/P&gt;&lt;P&gt;0x1FFFFF00, 0x1FFFFF00, 0x1FFFFF00,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //0-2: 0x0C20FF00 ( all SA )&amp;nbsp; &lt;/P&gt;&lt;P&gt;0x1FFFFF00, 0x1FFFFF00, 0x1FFFFF00,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //3-5: 0x0C21FF00 ( all SA )&amp;nbsp; &lt;/P&gt;&lt;P&gt;0x1FFFFF00,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //6: &lt;/P&gt;&lt;P&gt;//6: if only for 0x0C22FF00, 3-5 Rx-ed ok&lt;/P&gt;&lt;P&gt;//6: if for any other Ext IDs, 0x0C21FF00 goes to MB[6]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;David Zhou&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 14 Mar 2016 13:40:04 GMT</pubDate>
    <dc:creator>davidzhou</dc:creator>
    <dc:date>2016-03-14T13:40:04Z</dc:date>
    <item>
      <title>FlexCan Receiving MB question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FlexCan-Receiving-MB-question/m-p/475758#M28936</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Currently, I setup 8 receiving MBs from index 0 to 6. First 3 MBs is set to receive extended ID 0x0C20FF00 only, and next 3 MBs is setup to receive extended ID 0x0C21FF00 only. The last for any other extended ID.&lt;/P&gt;&lt;P&gt;The problem:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C20FF00 is always received in MB[0]. - as expected&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C21FF00 and any other Ext IDs are received in MB[6]. - This is wrong. 0x0C21FF00&amp;nbsp; should be in MB[3].&lt;/P&gt;&lt;P&gt;If I set MB[6] to receive 0x0C22FF00 only, without any other changes,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C20FF00 is always received in MB[0]. - as expected&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C21FF00 is received in MB[3]. - as expected. &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0C22FF00 is received in MB[6]. - as expected. &lt;/P&gt;&lt;P&gt;Suppose MB[3-5] have higher priority than MB[6]. 0x0C21FF00 should be in the MB[3] instead of MB[6] in the first case. Why in MB[6] instead?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is the setup:&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_SRXDIS_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Disable Self Reception&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_IRMQ_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable Individual Mask and queue&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR &amp;amp;= (~(uint32_t)CAN_MCR_IDAM_MASK);&amp;nbsp;&amp;nbsp;&amp;nbsp; //Format A: One full ID (standard and extended)&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_MCR_RFEN_MASK); //Disable Rx FIFO&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;CTRL2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_CTRL2_RFFN_MASK) ; &lt;/P&gt;&lt;P&gt;//Initialize the Rx Individual Mask Registers&lt;/P&gt;&lt;P&gt;for (uint8_t mb=0; mb&amp;lt;NUM_OF_MB_USED_RX; mb++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FLEXCAN0_RXIMRn(mb) = g_dwMB_Masks[mb]; // 0: do not care 1: checked &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_SRXDIS_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Disable Self Reception&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR |= (uint32_t)CAN_MCR_IRMQ_MASK ;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable Individual Mask and queue&lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR &amp;amp;= (~(uint32_t)CAN_MCR_IDAM_MASK);&amp;nbsp;&amp;nbsp;&amp;nbsp; //Format A: One full ID (standard and extended)&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;MCR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_MCR_RFEN_MASK); //Disable Rx FIFO&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;pCanReg-&amp;gt;CTRL2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;= (~(uint32_t)CAN_CTRL2_RFFN_MASK) ; &lt;/P&gt;&lt;P&gt;//Initialize the Rx Individual Mask Registers&lt;/P&gt;&lt;P&gt;for (uint8_t mb=0; mb&amp;lt;NUM_OF_MB_USED_RX; mb++) {&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; FLEXCAN0_RXIMRn(mb) = g_dwMB_Masks[mb]; // 0: do not care 1: checked &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint32_t g_dwMB_Masks[NUM_OF_MB_USED_RX] = {&lt;/P&gt;&lt;P&gt;0x1FFFFF00, 0x1FFFFF00, 0x1FFFFF00,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //0-2: 0x0C20FF00 ( all SA )&amp;nbsp; &lt;/P&gt;&lt;P&gt;0x1FFFFF00, 0x1FFFFF00, 0x1FFFFF00,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //3-5: 0x0C21FF00 ( all SA )&amp;nbsp; &lt;/P&gt;&lt;P&gt;0x1FFFFF00,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //6: &lt;/P&gt;&lt;P&gt;//6: if only for 0x0C22FF00, 3-5 Rx-ed ok&lt;/P&gt;&lt;P&gt;//6: if for any other Ext IDs, 0x0C21FF00 goes to MB[6]&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;David Zhou&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Mar 2016 13:40:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FlexCan-Receiving-MB-question/m-p/475758#M28936</guid>
      <dc:creator>davidzhou</dc:creator>
      <dc:date>2016-03-14T13:40:04Z</dc:date>
    </item>
    <item>
      <title>Re: FlexCan Receiving MB question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FlexCan-Receiving-MB-question/m-p/475759#M28937</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Continued:&lt;/P&gt;&lt;P&gt;the CANx_CTRL2[RFFN] is ambiguous to me. Rx FIFO is disabled, and CANx_CTRL2[RFFN] is set to 0. But why the Number of Rx FIFO filters&lt;/P&gt;&lt;P&gt;is still 8, instead of 0, in the table [CANx_CTRL2 field descriptions] on Page 1656?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Mar 2016 14:23:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FlexCan-Receiving-MB-question/m-p/475759#M28937</guid>
      <dc:creator>davidzhou</dc:creator>
      <dc:date>2016-03-14T14:23:45Z</dc:date>
    </item>
    <item>
      <title>Re: FlexCan Receiving MB question</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/FlexCan-Receiving-MB-question/m-p/475760#M28938</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I found the problem. It is in my processing code, which only MB[0] is read and processed. Other messages are not read and processed, which causes the corresponding MB full, and it goes to MB[6].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you,&lt;/P&gt;&lt;P&gt;David&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Mar 2016 14:58:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/FlexCan-Receiving-MB-question/m-p/475760#M28938</guid>
      <dc:creator>davidzhou</dc:creator>
      <dc:date>2016-03-14T14:58:23Z</dc:date>
    </item>
  </channel>
</rss>

