@@ -100,59 +100,51 @@ int CANClass::begin(long baudRate, long clockRate)
100100 const struct {
101101 long clockRate;
102102 long baudRate;
103- uint8_t cfg[3 ];
104- } CFG_MAPPER[] = {
105- { (long )8E6 , (long )1000E3 , { 0x00 , 0xc0 , 0x80 } },
106- { (long )8E6 , (long )500E3 , { 0x00 , 0xd1 , 0x81 } },
107- { (long )8E6 , (long )250E3 , { 0x80 , 0xe5 , 0x83 } },
108- { (long )8E6 , (long )200E3 , { 0x80 , 0xf6 , 0x84 } },
109- { (long )8E6 , (long )125E3 , { 0x81 , 0xe5 , 0x83 } },
110- { (long )8E6 , (long )100E3 , { 0x81 , 0xf6 , 0x84 } },
111- { (long )8E6 , (long )80E3 , { 0x84 , 0xd3 , 0x81 } },
112- { (long )8E6 , (long )50E3 , { 0x84 , 0xe5 , 0x83 } },
113- { (long )8E6 , (long )40E3 , { 0x84 , 0xf6 , 0x84 } },
114- { (long )8E6 , (long )20E3 , { 0x89 , 0xf6 , 0x84 } },
115- { (long )8E6 , (long )10E3 , { 0x93 , 0xf6 , 0x84 } },
116- { (long )8E6 , (long )5E3 , { 0xa7 , 0xf6 , 0x84 } },
117- { (long )16E6 , (long )1000E3 , { 0x00 , 0xca , 0x81 } },
118- { (long )16E6 , (long )500E3 , { 0x40 , 0xe5 , 0x83 } },
119- { (long )16E6 , (long )250E3 , { 0x41 , 0xe5 , 0x83 } },
120- { (long )16E6 , (long )200E3 , { 0x41 , 0xf6 , 0x84 } },
121- { (long )16E6 , (long )125E3 , { 0x43 , 0xe5 , 0x83 } },
122- { (long )16E6 , (long )100E3 , { 0x44 , 0xe5 , 0x83 } },
123- { (long )16E6 , (long )80E3 , { 0x44 , 0xf6 , 0x84 } },
124- { (long )16E6 , (long )50E3 , { 0x47 , 0xf6 , 0x84 } },
125- { (long )16E6 , (long )40E3 , { 0x49 , 0xf6 , 0x84 } },
126- { (long )16E6 , (long )20E3 , { 0x53 , 0xe5 , 0x84 } },
127- { (long )16E6 , (long )10E3 , { 0x67 , 0xf6 , 0x84 } },
103+ uint8_t cnf[3 ];
104+ } CNF_MAPPER[] = {
105+ { (long )8E6 , (long )1000E3 , { 0x00 , 0x80 , 0x00 } },
106+ { (long )8E6 , (long )500E3 , { 0x00 , 0x90 , 0x02 } },
107+ { (long )8E6 , (long )250E3 , { 0x00 , 0xb1 , 0x05 } },
108+ { (long )8E6 , (long )200E3 , { 0x00 , 0xb4 , 0x06 } },
109+ { (long )8E6 , (long )125E3 , { 0x01 , 0xb1 , 0x05 } },
110+ { (long )8E6 , (long )100E3 , { 0x01 , 0xb4 , 0x06 } },
111+ { (long )8E6 , (long )80E3 , { 0x01 , 0xbf , 0x07 } },
112+ { (long )8E6 , (long )50E3 , { 0x03 , 0xb4 , 0x06 } },
113+ { (long )8E6 , (long )40E3 , { 0x03 , 0xbf , 0x07 } },
114+ { (long )8E6 , (long )20E3 , { 0x07 , 0xbf , 0x07 } },
115+ { (long )8E6 , (long )10E3 , { 0x0f , 0xbf , 0x07 } },
116+ { (long )8E6 , (long )5E3 , { 0x1f , 0xbf , 0x07 } },
117+
118+ { (long )16E6 , (long )1000E3 , { 0x00 , 0xd0 , 0x82 } },
119+ { (long )16E6 , (long )500E3 , { 0x00 , 0xf0 , 0x86 } },
120+ { (long )16E6 , (long )250E3 , { 0x41 , 0xf1 , 0x85 } },
121+ { (long )16E6 , (long )200E3 , { 0x01 , 0xfa , 0x87 } },
122+ { (long )16E6 , (long )125E3 , { 0x03 , 0xf0 , 0x86 } },
123+ { (long )16E6 , (long )100E3 , { 0x03 , 0xfa , 0x87 } },
124+ { (long )16E6 , (long )80E3 , { 0x03 , 0xff , 0x87 } },
125+ { (long )16E6 , (long )50E3 , { 0x07 , 0xfa , 0x87 } },
126+ { (long )16E6 , (long )40E3 , { 0x07 , 0xff , 0x87 } },
127+ { (long )16E6 , (long )20E3 , { 0x0f , 0xff , 0x87 } },
128+ { (long )16E6 , (long )10E3 , { 0x1f , 0xff , 0x87 } },
128129 { (long )16E6 , (long )5E3 , { 0x3f , 0xff , 0x87 } },
129- { (long )20E6 , (long )1000E3 , { 0x00 , 0xd9 , 0x82 } },
130- { (long )20E6 , (long )500E3 , { 0x40 , 0xe5 , 0x83 } },
131- { (long )20E6 , (long )250E3 , { 0x41 , 0xf6 , 0x84 } },
132- { (long )20E6 , (long )200E3 , { 0x44 , 0xd3 , 0x81 } },
133- { (long )20E6 , (long )125E3 , { 0x44 , 0xe5 , 0x83 } },
134- { (long )20E6 , (long )100E3 , { 0x44 , 0xf6 , 0x84 } },
135- { (long )20E6 , (long )80E3 , { 0xc4 , 0xff , 0x87 } },
136- { (long )20E6 , (long )50E3 , { 0x49 , 0xf6 , 0x84 } },
137- { (long )20E6 , (long )40E3 , { 0x18 , 0xd3 , 0x81 } },
138130 };
139131
140- const uint8_t * cfg = NULL ;
132+ const uint8_t * cnf = NULL ;
141133
142- for (unsigned int i = 0 ; i < (sizeof (CFG_MAPPER ) / sizeof (CFG_MAPPER [0 ])); i++) {
143- if (CFG_MAPPER [i].clockRate == clockRate && CFG_MAPPER [i].baudRate == baudRate) {
144- cfg = CFG_MAPPER [i].cfg ;
134+ for (unsigned int i = 0 ; i < (sizeof (CNF_MAPPER ) / sizeof (CNF_MAPPER [0 ])); i++) {
135+ if (CNF_MAPPER [i].clockRate == clockRate && CNF_MAPPER [i].baudRate == baudRate) {
136+ cnf = CNF_MAPPER [i].cnf ;
145137 break ;
146138 }
147139 }
148140
149- if (cfg == NULL ) {
141+ if (cnf == NULL ) {
150142 return 0 ;
151143 }
152144
153- writeRegister (REG_CNF1, cfg [0 ]);
154- writeRegister (REG_CNF2, cfg [1 ]);
155- writeRegister (REG_CNF3, cfg [2 ]);
145+ writeRegister (REG_CNF1, cnf [0 ]);
146+ writeRegister (REG_CNF2, cnf [1 ]);
147+ writeRegister (REG_CNF3, cnf [2 ]);
156148
157149 writeRegister (REG_CANINTE, FLAG_RXnIE (1 ) | FLAG_RXnIE (0 ));
158150 writeRegister (REG_BFPCTRL, 0x00 );
0 commit comments