2018-06-13 11:37 PM
Hello,
Could you describe difference in use FIFO0 and FIFO1 for CAN1 and CAN2 in stm32f4 mcu? For example if I configure CAN2 for receive in FIFO0 and configurate filters 14 all work success, but if I try use FIFO1 with CAN2 no interrupt CAN2 happen in receive in this case. CAN0 need use with FIFO0 and CAN2 need use with FIFO1 if big data transfer happen, isn't it(or what case when need use separately FIFO for CAN1 and CAN2)?
Solved! Go to Solution.
2018-06-14 05:49 AM
But with FIFO0 CAN2 work correctly, with FIFO1 no interrupts in CAN2.
2018-06-14 05:52 AM
why are your bank and filter numbers so high ?
what page in the reference manual is that on ?
this is your work,
did you see my bank and filter numbers ?
2018-06-14 06:08 AM
As I know bank number for CAN1: 0...13 CAN2: 14...27 . In reference manual didn't find full description about it, only phrase that bank number 'shared between CAN1 and CAN2' at page 1076 of
2018-06-14 06:40 AM
The split point is programmable.
2018-06-14 06:43 AM
Like I said not something I can readily check today, but I would suspect the HAL implementation over that of the IP, they got the IP from Synopsys who have significantly more rigor in their design methodology/philosophy than ST.
2018-06-15 12:36 AM
Thank you for good discussion I solved it. FIFO1 didn't work because I don't create CAN2_RX1_IRQHandler() I have only
CAN2_RX0_IRQHandler() and not permit CAN2_RX1 interrupts. I didn't take note that needed 2 different interrupt handlers for FIFO0 and FIFO1 in my opinion it's strange struct organisation because we have 1 CAN_RxCplt handler and 2 same CAN2_RX0 and CAN2_RX1 interrupt handlers.
2018-06-15 04:09 AM
happy to help