6.10 Unexpected High Priority Message (HPM) interrupt

Attention: This erratum is applicable for CAN 2.0.

This issue occurs in two configurations:

Configuration A:
  • At least one Standard Message ID Filter Element is configured with Priority flag set (S0.SFEC = "100"/"101"/"110").
  • No Extended Message ID Filter Element is configured.
  • Non-matching extended frames are accepted (MCAN_GFC.ANFE = "00"/"01").
The HPM Interrupt flag MCAN_IR.HPM is set erroneously on reception of a non-high-priority extended message under the following conditions:
  1. A standard HPM frame is received, and accepted by a filter with Priority flag set. Then, Interrupt flag MCAN_IR.HPM is set as expected.
  2. Next, an extended frame is received and accepted due to the MCAN_GFC.ANFE configuration. Then, Interrupt flag MCAN_IR.HPM is set erroneously.
Configuration B:
  • At least one Extended Message ID Filter Element is configured with Priority flag set (F0.EFEC = "100"/"101"/"110").
  • No Standard Message ID Filter Element is configured.
  • Non-matching standard frames are accepted (MCAN_GFC.ANFS = "00"/"01").
The HPM Interrupt flag MCAN_IR.HPM is set erroneously on reception of a non-high-priority standard message under the following conditions:
  1. An extended HPM frame is received, and accepted by a filter with Priority flag set. Then, Interrupt flag MCAN_IR.HPM is set as expected.
  2. Next, a standard frame is received and accepted due to the MCAN_GFC.ANFS configuration. Then, Interrupt flag MCAN_IR.HPM is set erroneously.

Work around

Configuration A:

Set up an Extended Message ID Filter Element with the following configuration:
  • F0.EFEC = "001"/"010" - select Rx FIFO for storage of extended frames
  • F0.EFID1 = any value - value not relevant as all ID bits are masked out by F1.EFID2
  • F1.EFT = "10" - classic filter, F0.EFID1 = filter, F1.EFID2 = mask
  • F1.EFID2 = zero - all bits of the received extended ID are masked out

Now, all extended frames are stored in Rx FIFO 0 respectively Rx FIFO 1 depending on the configuration of F0.EFEC.

Configuration B:

Set up a Standard Message ID Filter Element with the following configuration:
  • S0.SFEC = "001"/"010" - select Rx FIFO for storage of standard frames
  • S0.SFID1 = any value - value not relevant as all ID bits are masked out by S0.SFID2
  • S0.SFT = "10" - classic filter, S0.SFID1 = filter, S0.SFID2 = mask
  • S0.SFID2 = zero - all bits of the received standard ID are masked out

Now, all standard frames are stored in Rx FIFO 0 respectively Rx FIFO 1 depending on the configuration of S0.SFEC.