CAN-BUS v1.0

I need to use it with Saab 9-5 CAN bus. Saab has this CAN bus specific:

“CAN 2.0A (11-bit identifiers)
Bus speed 47,619 kbit/s
Timing register settings BTR0 0xCB, BTR1 0x9A”

How I can implement it in arduino code?

Thank you!


I had the same problem as you, and after a lot of research i found a solution (if you havent already).
(Tried to post a link but im a new user so it looks to spammy)
but jus add a “.” between “blogspot” and “com” : bluesaab.blogspot com/2012/09/saab-i-bus-info.html

You can see the 3 "BUS Config"s if we can call it that ?
So by knowing this i added the code below to the mcp_can_dfs.h file at “speed 16M” section.

#define MCP_16MHz_40kBPS_CFG1 (0x07)
#define MCP_16MHz_40kBPS_CFG2 (0xFF)
#define MCP_16MHz_40kBPS_CFG3 (0x87)

And then i replaced the similar code in “initial value of gCANAutoProcess” section with this:

#define CAN_5KBPS 1 #define CAN_10KBPS 2 #define CAN_20KBPS 3 #define CAN_31K25BPS 4 #define CAN_33KBPS 5 #define CAN_40KBPS 6 #define CAN_47KBPS 7 #define CAN_50KBPS 8 #define CAN_80KBPS 9 #define CAN_83K3BPS 10 #define CAN_95KBPS 11 #define CAN_100KBPS 12 #define CAN_125KBPS 13 #define CAN_200KBPS 14 #define CAN_250KBPS 15 #define CAN_500KBPS 16 #define CAN_1000KBPS 17

And then in the mcp_can.cpp file add the code belowto the “mcp2515_configRate”.

case (CAN_47KBPS):
        cfg1 = MCP_16MHz_47kBPS_CFG1;
        cfg2 = MCP_16MHz_47kBPS_CFG2;
        cfg3 = MCP_16MHz_47kBPS_CFG3;

And that shuld be it!

I have the v1.2 shield but dont know about the 1.0