diff --git a/src/mcp2515_can.cpp b/src/mcp2515_can.cpp index 6ef5b9d..93b9a3d 100644 --- a/src/mcp2515_can.cpp +++ b/src/mcp2515_can.cpp @@ -515,6 +515,12 @@ byte mcp2515_can::mcp2515_configRate(const byte canSpeed, const byte clock) { cfg3 = MCP_16MHz_666kBPS_CFG3; break; + case (CAN_800KBPS) : + cfg1 = MCP_16MHz_800kBPS_CFG1; + cfg2 = MCP_16MHz_800kBPS_CFG2; + cfg3 = MCP_16MHz_800kBPS_CFG3; + break; + case (CAN_1000KBPS): cfg1 = MCP_16MHz_1000kBPS_CFG1; cfg2 = MCP_16MHz_1000kBPS_CFG2; @@ -601,6 +607,12 @@ byte mcp2515_can::mcp2515_configRate(const byte canSpeed, const byte clock) { cfg3 = MCP_8MHz_500kBPS_CFG3; break; + case (CAN_800KBPS) : + cfg1 = MCP_8MHz_800kBPS_CFG1; + cfg2 = MCP_8MHz_800kBPS_CFG2; + cfg3 = MCP_8MHz_800kBPS_CFG3; + break; + case (CAN_1000KBPS) : cfg1 = MCP_8MHz_1000kBPS_CFG1; cfg2 = MCP_8MHz_1000kBPS_CFG2; diff --git a/src/mcp2515_can_dfs.h b/src/mcp2515_can_dfs.h index 2f02890..025a44f 100644 --- a/src/mcp2515_can_dfs.h +++ b/src/mcp2515_can_dfs.h @@ -277,6 +277,14 @@ #define MCP_16MHz_1000kBPS_CFG2 (0xD0) #define MCP_16MHz_1000kBPS_CFG3 (0x82) +#define MCP_16MHz_800kBPS_CFG1 (0x40) +#define MCP_16MHz_800kBPS_CFG2 (0x92) +#define MCP_16MHz_800kBPS_CFG3 (0x02) + +#define MCP_16MHz_666kBPS_CFG1 (0x00) +#define MCP_16MHz_666kBPS_CFG2 (0xA0) +#define MCP_16MHz_666kBPS_CFG3 (0x04) + #define MCP_16MHz_500kBPS_CFG1 (0x00) #define MCP_16MHz_500kBPS_CFG2 (0xF0) #define MCP_16MHz_500kBPS_CFG3 (0x86) @@ -341,9 +349,6 @@ #define MCP_16MHz_5kBPS_CFG2 (0xFF) #define MCP_16MHz_5kBPS_CFG3 (0x87) -#define MCP_16MHz_666kBPS_CFG1 (0x00) -#define MCP_16MHz_666kBPS_CFG2 (0xA0) -#define MCP_16MHz_666kBPS_CFG3 (0x04) // speed 8M @@ -352,6 +357,10 @@ #define MCP_8MHz_1000kBPS_CFG2 (0x80) #define MCP_8MHz_1000kBPS_CFG3 (0x00) +#define MCP_8MHz_800kBPS_CFG1 (0x00) +#define MCP_8MHz_800kBPS_CFG2 (0x80) +#define MCP_8MHz_800kBPS_CFG3 (0x01) + #define MCP_8MHz_500kBPS_CFG1 (0x00) #define MCP_8MHz_500kBPS_CFG2 (0x90) #define MCP_8MHz_500kBPS_CFG3 (0x02) diff --git a/src/mcp2518fd_can.cpp b/src/mcp2518fd_can.cpp index dd3f602..5dda94a 100644 --- a/src/mcp2518fd_can.cpp +++ b/src/mcp2518fd_can.cpp @@ -1822,6 +1822,7 @@ uint32_t mcp2518fd::bittime_compat_to_mcp2518fd(uint32_t speedset) { default: case CAN_500KBPS: r = CANFD::BITRATE( 500000UL, 0); break; case CAN_666KBPS: r = CANFD::BITRATE( 666000UL, 0); break; + case CAN_800KBPS: r = CANFD::BITRATE( 800000UL, 0); break; case CAN_1000KBPS:r = CANFD::BITRATE(1000000UL, 0); break; } return r; diff --git a/src/mcp_can.h b/src/mcp_can.h index bdca025..33fc7d5 100644 --- a/src/mcp_can.h +++ b/src/mcp_can.h @@ -46,6 +46,7 @@ typedef enum { CAN_250KBPS , CAN_500KBPS , CAN_666KBPS , + CAN_800KBPS , CAN_1000KBPS } MCP_BITTIME_SETUP;