Flexcan Acceptance filter mechanism

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

Flexcan Acceptance filter mechanism

3,493 Views
steffenrose
Contributor III

I use the K60 Flexcan to receive CAN messages. I use the RX Fifo. RFFN is set to 3, MB0..13 are part of the RX Fifo.

I can set the Filters to receive all messages. This works.

Now I want to use the filter mecahnism. I want to use the ID Filter table Format B. Individual filter are activated.

My problem:

All messages are receiving. Filterhit is 1.

I do not find detail information in case I use the Format B ID Table.

Which ID Filter works with which Indiviual mask?

Which entrie (combination) receive my messages and set the filterhit to 1.

My test setting (later I want to receive only specific IDs):

/* compare all mask bits */

    pCan->CTRL2 |= FLEXCAN_CTRL2_EACEN;

    /* store RTR frames */

    pCan->CTRL2 |= FLEXCAN_CTRL2_RRS;

    /* Set Scan priority (RX Fifo first) */

    pCan->CTRL2 &= ~FLEXCAN_CTRL2_MRP;

    /* RX Fifo */

    pCan->MCR |= FLEXCAN_MCR_FEN;

     // RFFN is 3

     pCan->CTRL2 = (pCan->CTRL2 & ~FLEXCAN_CTRL2_RFFN )

             | (FLEXCAN_RFFN_VAL << FLEXCAN_CTRL2_RFFN_BIT_NO);

    /* Set ID filter table format (RX Fifo mask - Format B / 01 ) */

    pCan->MCR = (pCan->MCR & ~FLEXCAN_MCR_IDAM_MASK) |  FLEXCAN_MCR_IDAM(1);

/* Initialize mask registers - not relevant, I think */

    pCan->RXMGMASK = 0x1FFFFFFFul;

    pCan->RX14MASK = 0x1FFFFFFFul;

    pCan->RX15MASK = 0x1FFFFFFFul;

//Test setting

// first should only receive, if bit 0 is set

// second only, if Bit1 is set

// next Bit 2 is set

// and so on

// the higher ID (RXIDB_0) should only receive 0x7FF - ignored for this test

for(i = 0; i <= 13 ; i++)
    {
   pCan->RXIMR[i] = 0xFFFF0000ul | (1ul<<i);// individual masks

    }

    for(i = 0; i < (14-6)*4 ; i++)

    {

   FLEXCAN1_IDFLT_TAB(i) = 0x07FF07FFul;

    }

    pCan->RXFGMASK = 0xFFFFFFFFul; //mask for all other IDs

0 Kudos
Reply
2 Replies

1,375 Views
steffenrose
Contributor III

Thank you. I could use it to experiment with different settings.

Special thank, that your package was for my environment!

bye

Steffen

0 Kudos
Reply

1,375 Views
Kan_Li
NXP TechSupport
NXP TechSupport

Hi Steffen Rose,

The attachment is the flexcan validation code, please kindly refer to it for details.

Hope that helps,


Have a great day,
Kan

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