Hi
Hello everyone,I use S12ZVML32 for can communication,
The settings are as follows:
CAN0IDAC_IDAM = 0; /* Two 32 bit filters */
CAN0IDAR0 = 0x64; //ID 0X322
CAN0IDAR1 = 0x40;
CAN0IDMR0 = 0x00; /* Accept all incoming ID's */
CAN0IDMR1 = 0x07;
CAN0IDMR2 = 0xFF;
CAN0IDMR3 = 0xFF;
CAN0IDMR4 = 0x00;
CAN0IDMR5 = 0x07;
CAN0IDMR6 = 0xFF;
CAN0IDMR7 = 0xFF;
(1) I can receive not only the data with ID = 0x322, but also the data with ID = 0X000. According to the settings, only ID = 0X322 can match, and whether ID = 0X000 is unconditional?
(2) Why?Both first 32-bit filter bank (CANIDAR0–CANIDAR3, CANIDMR0–CANIDMR3) and
the second filter bank (CANIDAR4–CANIDAR7, CANIDMR4–CANIDMR7) must be set
Hi,
both filters are active so if you want the only value also second filter IDAR must be set.
CAN0IDAR0 = 0x64; //ID 0X322
CAN0IDAR1 = 0x40;
CAN0IDAR4 = 0x64; //ID 0X322
CAN0IDAR5 = 0x40;
In your case you receive also message corresponding to IDAR4,5 and IDMR4,5 combination for default values.
Best regards,
Ladislav.
Thank you. The problem has been solved.