This didn’t seem to work, so I made some further refinements. Documentation on MCP2515 datasheet is not very clear. From what I can tell, the receive registers are setup like this:
Register Standard ExtendedSIDH (0x61) 7:0 28:21SIDL (0x62) 7:5 20:18, 17:16EID8 (0x63) n/a 15:8EID0 (0x64) n/a 7:0
and the SIDL bit 3 (IDE) is 1 for extended and 0 for standard.
I implemented it like that, and it now seems to co-exists between the MCP2515 and ESP32 native CAN in both standard and extended modes. Of course, both implementations could now be wrong, but at least they match ;-) Need to try it out on something real, to be certain it is fixed now.
Regards, Mark.
On 10 Oct 2017, at 4:20 AM, Greg D. <gregd2350@gmail.com> wrote:
Hi folks, (Mark, in particular),
I've tweaked the mcp2515.cpp code to support Extended CAN frames on CAN
2 & 3. Needed this for the OBD2ECU code, but it's there for anyone else
who may want it.
Mark - I did a bit of this by trial & error, since some of what I was
doing wasn't working as I expected it would. Bits upside down, that
sort of thing... So I expect some of the middle bits around the three
frame flags is wrong, particularly on the transmit side, but for the
PIDs I use, the results I get match what Wireshark decodes. So, I think
it's close.
Greg
p.s. Got my first CAN 3 bus hang too... hope it's not related. :)
_______________________________________________
OvmsDev mailing list
OvmsDev@lists.teslaclub.hk
http://lists.teslaclub.hk/mailman/listinfo/ovmsdev
_______________________________________________ OvmsDev mailing list OvmsDev@lists.teslaclub.hk http://lists.teslaclub.hk/mailman/listinfo/ovmsdev