Merge pull request #127 from techie66/master

Support for 12Mhz Crystals
This commit is contained in:
Baozhu Zuo
2021-07-22 16:32:45 +08:00
committed by GitHub
3 changed files with 171 additions and 0 deletions
+103
View File
@@ -533,6 +533,109 @@ byte mcp2515_can::mcp2515_configRate(const byte canSpeed, const byte clock) {
}
break;
case (MCP_12MHz) :
switch (canSpeed) {
case (CAN_20KBPS) :
cfg1 = MCP_12MHz_20kBPS_CFG1;
cfg2 = MCP_12MHz_20kBPS_CFG2;
cfg3 = MCP_12MHz_20kBPS_CFG3;
break;
case (CAN_25KBPS) :
cfg1 = MCP_12MHz_25kBPS_CFG1;
cfg2 = MCP_12MHz_25kBPS_CFG2;
cfg3 = MCP_12MHz_25kBPS_CFG3;
break;
case (CAN_31K25BPS) :
cfg1 = MCP_12MHz_31k25BPS_CFG1;
cfg2 = MCP_12MHz_31k25BPS_CFG2;
cfg3 = MCP_12MHz_31k25BPS_CFG3;
break;
case (CAN_33KBPS) :
cfg1 = MCP_12MHz_33kBPS_CFG1;
cfg2 = MCP_12MHz_33kBPS_CFG2;
cfg3 = MCP_12MHz_33kBPS_CFG3;
break;
case (CAN_40KBPS) :
cfg1 = MCP_12MHz_40kBPS_CFG1;
cfg2 = MCP_12MHz_40kBPS_CFG2;
cfg3 = MCP_12MHz_40kBPS_CFG3;
break;
case (CAN_50KBPS) :
cfg1 = MCP_12MHz_50kBPS_CFG1;
cfg2 = MCP_12MHz_50kBPS_CFG2;
cfg3 = MCP_12MHz_50kBPS_CFG3;
break;
case (CAN_80KBPS) :
cfg1 = MCP_12MHz_80kBPS_CFG1;
cfg2 = MCP_12MHz_80kBPS_CFG2;
cfg3 = MCP_12MHz_80kBPS_CFG3;
break;
case (CAN_83K3BPS) :
cfg1 = MCP_12MHz_83k3BPS_CFG1;
cfg2 = MCP_12MHz_83k3BPS_CFG2;
cfg3 = MCP_12MHz_83k3BPS_CFG3;
break;
case (CAN_95KBPS) :
cfg1 = MCP_12MHz_95kBPS_CFG1;
cfg2 = MCP_12MHz_95kBPS_CFG2;
cfg3 = MCP_12MHz_95kBPS_CFG3;
break;
case (CAN_100KBPS) :
cfg1 = MCP_12MHz_100kBPS_CFG1;
cfg2 = MCP_12MHz_100kBPS_CFG2;
cfg3 = MCP_12MHz_100kBPS_CFG3;
break;
case (CAN_125KBPS) :
cfg1 = MCP_12MHz_125kBPS_CFG1;
cfg2 = MCP_12MHz_125kBPS_CFG2;
cfg3 = MCP_12MHz_125kBPS_CFG3;
break;
case (CAN_200KBPS) :
cfg1 = MCP_12MHz_200kBPS_CFG1;
cfg2 = MCP_12MHz_200kBPS_CFG2;
cfg3 = MCP_12MHz_200kBPS_CFG3;
break;
case (CAN_250KBPS) :
cfg1 = MCP_12MHz_250kBPS_CFG1;
cfg2 = MCP_12MHz_250kBPS_CFG2;
cfg3 = MCP_12MHz_250kBPS_CFG3;
break;
case (CAN_500KBPS) :
cfg1 = MCP_12MHz_500kBPS_CFG1;
cfg2 = MCP_12MHz_500kBPS_CFG2;
cfg3 = MCP_12MHz_500kBPS_CFG3;
break;
case (CAN_666KBPS) :
cfg1 = MCP_12MHz_666kBPS_CFG1;
cfg2 = MCP_12MHz_666kBPS_CFG2;
cfg3 = MCP_12MHz_666kBPS_CFG3;
break;
case (CAN_1000KBPS) :
cfg1 = MCP_12MHz_1000kBPS_CFG1;
cfg2 = MCP_12MHz_1000kBPS_CFG2;
cfg3 = MCP_12MHz_1000kBPS_CFG3;
break;
default:
set = 0;
break;
}
break;
case (MCP_8MHz) :
switch (canSpeed) {
case (CAN_5KBPS) :
+67
View File
@@ -350,6 +350,73 @@
#define MCP_16MHz_5kBPS_CFG3 (0x87)
// speed 12M
#define MCP_12MHz_1000kBPS_CFG1 (0x00)//
#define MCP_12MHz_1000kBPS_CFG2 (0x88)//
#define MCP_12MHz_1000kBPS_CFG3 (0x01)//
#define MCP_12MHz_666kBPS_CFG1 (0x00)//
#define MCP_12MHz_666kBPS_CFG2 (0x92)//
#define MCP_12MHz_666kBPS_CFG3 (0x01)//
#define MCP_12MHz_500kBPS_CFG1 (0x00)
#define MCP_12MHz_500kBPS_CFG2 (0x9B)
#define MCP_12MHz_500kBPS_CFG3 (0x02)
#define MCP_12MHz_250kBPS_CFG1 (0x00)//
#define MCP_12MHz_250kBPS_CFG2 (0xBF)//
#define MCP_12MHz_250kBPS_CFG3 (0x06)///
#define MCP_12MHz_200kBPS_CFG1 (0x01)//
#define MCP_12MHz_200kBPS_CFG2 (0xA4)//
#define MCP_12MHz_200kBPS_CFG3 (0x03)//
#define MCP_12MHz_125kBPS_CFG1 (0x01)//
#define MCP_12MHz_125kBPS_CFG2 (0xBF)//
#define MCP_12MHz_125kBPS_CFG3 (0x06)//
#define MCP_12MHz_100kBPS_CFG1 (0x02)//
#define MCP_12MHz_100kBPS_CFG2 (0xB6)//
#define MCP_12MHz_100kBPS_CFG3 (0x04)//
#define MCP_12MHz_95kBPS_CFG1 (0x02)//
#define MCP_12MHz_95kBPS_CFG2 (0xBE)//
#define MCP_12MHz_95kBPS_CFG3 (0x04)//
#define MCP_12MHz_83k3BPS_CFG1 (0x03)//
#define MCP_12MHz_83k3BPS_CFG2 (0xB5)//
#define MCP_12MHz_83k3BPS_CFG3 (0x03)//
#define MCP_12MHz_80kBPS_CFG1 (0x04)//
#define MCP_12MHz_80kBPS_CFG2 (0xA4)//
#define MCP_12MHz_80kBPS_CFG3 (0x03)//
#define MCP_12MHz_50kBPS_CFG1 (0x05)//
#define MCP_12MHz_50kBPS_CFG2 (0xB6)//
#define MCP_12MHz_50kBPS_CFG3 (0x04)//
#define MCP_12MHz_40kBPS_CFG1 (0x09)//
#define MCP_12MHz_40kBPS_CFG2 (0xA4)//
#define MCP_12MHz_40kBPS_CFG3 (0x03)//
#define MCP_12MHz_33kBPS_CFG1 (0x0C)//
#define MCP_12MHz_33kBPS_CFG2 (0xA4)//
#define MCP_12MHz_33kBPS_CFG3 (0x02)//
#define MCP_12MHz_31k25BPS_CFG1 (0x0B)//
#define MCP_12MHz_31k25BPS_CFG2 (0xAC)//
#define MCP_12MHz_31k25BPS_CFG3 (0x03)//
#define MCP_12MHz_25kBPS_CFG1 (0X0B)//
#define MCP_12MHz_25kBPS_CFG2 (0XB6)//
#define MCP_12MHz_25kBPS_CFG3 (0X04)//
#define MCP_12MHz_20kBPS_CFG1 (0x0C)//
#define MCP_12MHz_20kBPS_CFG2 (0xBF)//
#define MCP_12MHz_20kBPS_CFG3 (0x05)//
// speed 8M
+1
View File
@@ -20,6 +20,7 @@ typedef enum {
MCP_NO_MHz,
/* apply to MCP2515 */
MCP_16MHz,
MCP_12MHz,
MCP_8MHz,
/* apply to MCP2518FD */
MCP2518FD_40MHz = MCP_16MHz /* To compatible MCP2515 shield */,