Greetings. I am running a pair of 3.2's using CollinK's latest FlexCAN implementation. I can, between these two 3.2's, exchange standard CANbus frames all day long. Both sides can happily read and write such frames.
But...when I write an extended frame, well, the writing 3.2 happily writes it. My CANbus analyzer sees it on the bus. But the reading 3.2 device never reports the extended frame as ingested.
I added some counters to the FlexCAN::message_isr() function. These counters increment when the ISR is invoked, and when various legs of code in the ISR are taken. The counters tell me that what should be incoming extended frames never trigger an ISR. So it's not that the receiving 3.2 gets the extended frames and discards them; it's that the 3.2 that should receive the extended frames *acts as if such frames were never emitted by the other 3.2*.
My code to (primarily) read the frames is in CANTest1e:View attachment CANTest1e.ino
My code to (primarily) writes the frames is in CANTest2e:View attachment CANTest2e.ino
In both the above tests, when an extended frame is emitted, an asterisk is printed. The above tests need the Serial Monitor to be instanced in order to begin running. The manifest "HAS_rascnt" is only defined in versions of FlexCAN in which my interrupts counters exist.
Thanks.
But...when I write an extended frame, well, the writing 3.2 happily writes it. My CANbus analyzer sees it on the bus. But the reading 3.2 device never reports the extended frame as ingested.
I added some counters to the FlexCAN::message_isr() function. These counters increment when the ISR is invoked, and when various legs of code in the ISR are taken. The counters tell me that what should be incoming extended frames never trigger an ISR. So it's not that the receiving 3.2 gets the extended frames and discards them; it's that the 3.2 that should receive the extended frames *acts as if such frames were never emitted by the other 3.2*.
My code to (primarily) read the frames is in CANTest1e:View attachment CANTest1e.ino
My code to (primarily) writes the frames is in CANTest2e:View attachment CANTest2e.ino
In both the above tests, when an extended frame is emitted, an asterisk is printed. The above tests need the Serial Monitor to be instanced in order to begin running. The manifest "HAS_rascnt" is only defined in versions of FlexCAN in which my interrupts counters exist.
Thanks.