Add: predefined CAN baudrate 800KBPS

This commit is contained in:
turmary
2021-02-02 21:08:26 +08:00
parent 438ae2bb21
commit 240bb4de04
4 changed files with 26 additions and 3 deletions
+12
View File
@@ -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;
+12 -3
View File
@@ -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)
+1
View File
@@ -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;
+1
View File
@@ -46,6 +46,7 @@ typedef enum {
CAN_250KBPS ,
CAN_500KBPS ,
CAN_666KBPS ,
CAN_800KBPS ,
CAN_1000KBPS
} MCP_BITTIME_SETUP;