test

Fork of CANnucleo by Zoltan Hudak

Revision:
20:a4cb2125682c
Parent:
17:1fd35431ee8e
--- a/can_api.c	Sat Mar 19 21:16:10 2016 +0000
+++ b/can_api.c	Fri Jun 24 07:54:02 2016 +0000
@@ -119,33 +119,33 @@
     switch(hz) {
     case 1000000:
         // 1000kbps bit rate
-        _canHandle.Init.Prescaler = 3;      // number of time quanta = 36000000/3/1000000 = 12
+        _canHandle.Init.Prescaler = 2;      // number of time quanta = 36000000/3/1000000 = 12
         _canHandle.Init.SJW = CAN_SJW_1TQ;
-        _canHandle.Init.BS1 = CAN_BS1_8TQ;  // sample point at: (1 + 8) / 12 * 100 = 75%
-        _canHandle.Init.BS2 = CAN_BS2_3TQ;
+        _canHandle.Init.BS1 = CAN_BS1_11TQ;  // sample point at: (1 + 11) / 16 * 100 = 75%
+        _canHandle.Init.BS2 = CAN_BS2_4TQ;
         break;
 
     case 500000:
         // 500kbps bit rate
-        _canHandle.Init.Prescaler = 6;      // number of time quanta = 36000000/6/500000 = 12
+        _canHandle.Init.Prescaler = 4;      // number of time quanta = 36000000/3/1000000 = 12
         _canHandle.Init.SJW = CAN_SJW_1TQ;
-        _canHandle.Init.BS1 = CAN_BS1_8TQ;  // sample point at: (1 + 8) / 12 * 100 = 75%
-        _canHandle.Init.BS2 = CAN_BS2_3TQ;
+        _canHandle.Init.BS1 = CAN_BS1_11TQ;  // sample point at: (1 + 11) / 16 * 100 = 75%
+        _canHandle.Init.BS2 = CAN_BS2_4TQ;
         break;
 
     case 250000:
         // 250kbps
-        _canHandle.Init.Prescaler = 9;      // number of time quanta = 36000000/9/250000 = 16
+        _canHandle.Init.Prescaler = 8;      // number of time quanta = 36000000/3/1000000 = 12
         _canHandle.Init.SJW = CAN_SJW_1TQ;
-        _canHandle.Init.BS1 = CAN_BS1_11TQ; // sample point at: (1 + 11) / 16 * 100 = 75%
+        _canHandle.Init.BS1 = CAN_BS1_11TQ;  // sample point at: (1 + 11) / 16 * 100 = 75%
         _canHandle.Init.BS2 = CAN_BS2_4TQ;
         break;
 
     case 125000:
         // 125kbps
-        _canHandle.Init.Prescaler = 18;     // number of time quanta = 36000000/18/125000 = 16
+        _canHandle.Init.Prescaler = 16;      // number of time quanta = 36000000/3/1000000 = 12
         _canHandle.Init.SJW = CAN_SJW_1TQ;
-        _canHandle.Init.BS1 = CAN_BS1_11TQ; // sample point at: (1 + 11) / 16 * 100 = 75%
+        _canHandle.Init.BS1 = CAN_BS1_11TQ;  // sample point at: (1 + 11) / 16 * 100 = 75%
         _canHandle.Init.BS2 = CAN_BS2_4TQ;
         break;