Hi, I use EB to configure the CAN driver of MPC5604, I configure a receiving mailbox HOH, use BASIC type, ID is 0X700, mask is 0X700, expect to receive CAN messages from 0x700-0x7ff.
But only 0x700 can be received in CanIf_RxIndication, No other CAN IDs are allowed.am I missing something? can anyone help me, thanks
hi,I use EB 14 MCAL version V1.0.1RTM to configure the driver, I configured 2 BASIC type CAN HOH, expect to receive message range 0x400-0x47f, and 0x700-0x7Ff, but found that no matter the undefined message CANID, Such as 0x355 can be received, hoh is 2, it seems that no filtering is performed, can you give me some help? The attachment is EB and S32 project, looking forward to help!
Hi jacst,
I checked your configuration.
The first one, with Can1FilterMask_700 = 0x700 is correctly. I didn't why your error (only filter ID = 0x700) has occurred. At the moment, I have not a board mpc5604 to debug your code. In the next week, I will debug your code and inform you as soon as possible.
The second, you configured the Can1FilterMask_480 = 0x47F is wrong. If you want to filter from 0x400->0x47F, you must change Can1FilterMask_480 = 0x780 because:
(id_filter & id_mask) == (id_comming & id_mask)
Best regards,
Dan
Hi jacst,
I have a suggestion to test: you will remove the Can_RxHandle = 2 (Rx_0x400) in your configuration and generate code again. After that, you will run the code and check that Can_RxHandle = 1 (Rx_0x700) has received the ID = 0x701?
Best regards,
Dan
hi,
According to what you said, I changed the 0x400 to the full mode, leaving only 0x700 as the basic mode.
The retest found that only 0x700 message could be received, and 0x701 message could not be received by the program
Hi jacst,
I think that you should change the value of the RXIMR1 register to 0x700 after you called the Can_Init(); function. After that, Could you test again and let me know the results?
Best regards,
Dan
Hi jacst,
I asked my colleagues and I knew that this driver didn't support the ECUC_Can_00325 requirement.
Maybe, this driver only supports the single Can ID Filter.
Could you change the "Can ID Message Type" of all "CanHardwareObject" to "FULL"?
After that, Could you check the filer mask operate OK?
Best regards,
Dan
Hi jacst,
My mean is the configuration as the below image and you should remove this statement: CAN_1.RXIMR[1].R = (0x700 << 18);
After that, could you test again? (If you only receive the IDs: 0x140, 0x700, and 0x400 => This driver only supports the single Can ID Filter and didn't support the range Can ID Filter).
Best regards,
Dan