@@ -236,16 +236,83 @@ func (d *Device) getMode() (byte, error) {
236
236
}
237
237
238
238
func (d * Device ) configRate (speed , clock byte ) error {
239
- // TODO: add another baudrate
240
239
var cfg1 , cfg2 , cfg3 byte
241
240
set := true
242
241
switch clock {
243
242
case Clock16MHz :
244
243
switch speed {
244
+ case CAN5kBps :
245
+ cfg1 = mcp16mHz5kBpsCfg1
246
+ cfg2 = mcp16mHz5kBpsCfg2
247
+ cfg3 = mcp16mHz5kBpsCfg3
248
+ case CAN10kBps :
249
+ cfg1 = mcp16mHz10kBpsCfg1
250
+ cfg2 = mcp16mHz10kBpsCfg2
251
+ cfg3 = mcp16mHz10kBpsCfg3
252
+ case CAN20kBps :
253
+ cfg1 = mcp16mHz20kBpsCfg1
254
+ cfg2 = mcp16mHz20kBpsCfg2
255
+ cfg3 = mcp16mHz20kBpsCfg3
256
+ case CAN25kBps :
257
+ cfg1 = mcp16mHz25kBpsCfg1
258
+ cfg2 = mcp16mHz25kBpsCfg2
259
+ cfg3 = mcp16mHz25kBpsCfg3
260
+ case CAN31k25Bps :
261
+ cfg1 = mcp16mHz31k25BpsCfg1
262
+ cfg2 = mcp16mHz31k25BpsCfg2
263
+ cfg3 = mcp16mHz31k25BpsCfg3
264
+ case CAN33kBps :
265
+ cfg1 = mcp16mHz33kBpsCfg1
266
+ cfg2 = mcp16mHz33kBpsCfg2
267
+ cfg3 = mcp16mHz33kBpsCfg3
268
+ case CAN40kBps :
269
+ cfg1 = mcp16mHz40kBpsCfg1
270
+ cfg2 = mcp16mHz40kBpsCfg2
271
+ cfg3 = mcp16mHz40kBpsCfg3
272
+ case CAN47kBps :
273
+ cfg1 = mcp16mHz47kBpsCfg1
274
+ cfg2 = mcp16mHz47kBpsCfg2
275
+ cfg3 = mcp16mHz47kBpsCfg3
276
+ case CAN50kBps :
277
+ cfg1 = mcp16mHz50kBpsCfg1
278
+ cfg2 = mcp16mHz50kBpsCfg2
279
+ cfg3 = mcp16mHz50kBpsCfg3
280
+ case CAN80kBps :
281
+ cfg1 = mcp16mHz80kBpsCfg1
282
+ cfg2 = mcp16mHz80kBpsCfg2
283
+ cfg3 = mcp16mHz80kBpsCfg3
284
+ case CAN83k3Bps :
285
+ cfg1 = mcp16mHz83k3BpsCfg1
286
+ cfg2 = mcp16mHz83k3BpsCfg2
287
+ cfg3 = mcp16mHz83k3BpsCfg3
288
+ case CAN95kBps :
289
+ cfg1 = mcp16mHz95kBpsCfg1
290
+ cfg2 = mcp16mHz95kBpsCfg2
291
+ cfg3 = mcp16mHz95kBpsCfg3
292
+ case CAN100kBps :
293
+ cfg1 = mcp16mHz100kBpsCfg1
294
+ cfg2 = mcp16mHz100kBpsCfg2
295
+ cfg3 = mcp16mHz100kBpsCfg3
296
+ case CAN125kBps :
297
+ cfg1 = mcp16mHz125kBpsCfg1
298
+ cfg2 = mcp16mHz125kBpsCfg2
299
+ cfg3 = mcp16mHz125kBpsCfg3
300
+ case CAN200kBps :
301
+ cfg1 = mcp16mHz200kBpsCfg1
302
+ cfg2 = mcp16mHz200kBpsCfg2
303
+ cfg3 = mcp16mHz200kBpsCfg3
304
+ case CAN250kBps :
305
+ cfg1 = mcp16mHz250kBpsCfg1
306
+ cfg2 = mcp16mHz250kBpsCfg2
307
+ cfg3 = mcp16mHz250kBpsCfg3
245
308
case CAN500kBps :
246
309
cfg1 = mcp16mHz500kBpsCfg1
247
310
cfg2 = mcp16mHz500kBpsCfg2
248
311
cfg3 = mcp16mHz500kBpsCfg3
312
+ case CAN666kBps :
313
+ cfg1 = mcp16mHz666kBpsCfg1
314
+ cfg2 = mcp16mHz666kBpsCfg2
315
+ cfg3 = mcp16mHz666kBpsCfg3
249
316
case CAN1000kBps :
250
317
cfg1 = mcp16mHz1000kBpsCfg1
251
318
cfg2 = mcp16mHz1000kBpsCfg2
@@ -255,6 +322,50 @@ func (d *Device) configRate(speed, clock byte) error {
255
322
}
256
323
case Clock8MHz :
257
324
switch speed {
325
+ case CAN5kBps :
326
+ cfg1 = mcp8mHz5kBpsCfg1
327
+ cfg2 = mcp8mHz5kBpsCfg2
328
+ cfg3 = mcp8mHz5kBpsCfg3
329
+ case CAN10kBps :
330
+ cfg1 = mcp8mHz10kBpsCfg1
331
+ cfg2 = mcp8mHz10kBpsCfg2
332
+ cfg3 = mcp8mHz10kBpsCfg3
333
+ case CAN20kBps :
334
+ cfg1 = mcp8mHz20kBpsCfg1
335
+ cfg2 = mcp8mHz20kBpsCfg2
336
+ cfg3 = mcp8mHz20kBpsCfg3
337
+ case CAN31k25Bps :
338
+ cfg1 = mcp8mHz31k25BpsCfg1
339
+ cfg2 = mcp8mHz31k25BpsCfg2
340
+ cfg3 = mcp8mHz31k25BpsCfg3
341
+ case CAN40kBps :
342
+ cfg1 = mcp8mHz40kBpsCfg1
343
+ cfg2 = mcp8mHz40kBpsCfg2
344
+ cfg3 = mcp8mHz40kBpsCfg3
345
+ case CAN50kBps :
346
+ cfg1 = mcp8mHz50kBpsCfg1
347
+ cfg2 = mcp8mHz50kBpsCfg2
348
+ cfg3 = mcp8mHz50kBpsCfg3
349
+ case CAN80kBps :
350
+ cfg1 = mcp8mHz80kBpsCfg1
351
+ cfg2 = mcp8mHz80kBpsCfg2
352
+ cfg3 = mcp8mHz80kBpsCfg3
353
+ case CAN100kBps :
354
+ cfg1 = mcp8mHz100kBpsCfg1
355
+ cfg2 = mcp8mHz100kBpsCfg2
356
+ cfg3 = mcp8mHz100kBpsCfg3
357
+ case CAN125kBps :
358
+ cfg1 = mcp8mHz125kBpsCfg1
359
+ cfg2 = mcp8mHz125kBpsCfg2
360
+ cfg3 = mcp8mHz125kBpsCfg3
361
+ case CAN200kBps :
362
+ cfg1 = mcp8mHz200kBpsCfg1
363
+ cfg2 = mcp8mHz200kBpsCfg2
364
+ cfg3 = mcp8mHz200kBpsCfg3
365
+ case CAN250kBps :
366
+ cfg1 = mcp8mHz250kBpsCfg1
367
+ cfg2 = mcp8mHz250kBpsCfg2
368
+ cfg3 = mcp8mHz250kBpsCfg3
258
369
case CAN500kBps :
259
370
cfg1 = mcp8mHz500kBpsCfg1
260
371
cfg2 = mcp8mHz500kBpsCfg2
0 commit comments