bldc driver firmware based on hobbyking cheetah compact

Dependencies:   BLDC_V2 mbed-dev-f303 FastPWM3

Dependents:   BLDC_V2

Revision:
48:a74e401a6d84
Parent:
47:f4ecf3e0576a
diff -r f4ecf3e0576a -r a74e401a6d84 main.cpp
--- a/main.cpp	Wed May 13 09:53:27 2020 +0000
+++ b/main.cpp	Wed Apr 07 10:12:43 2021 +0000
@@ -82,7 +82,9 @@
         else if(state == MOTOR_MODE){
             unpack_cmd(rxMsg, &controller);
             }
-        pack_reply(&txMsg, controller.theta_mech, controller.dtheta_mech, controller.i_q_filt*KT_OUT);
+        // pack_reply(&txMsg, controller.theta_mech, controller.dtheta_mech, controller.i_q_filt*KT_OUT);
+         pack_reply(&txMsg, controller.theta_mech, controller.dtheta_mech, controller.i_q*KT_OUT); //return real torque
+//        pack_reply(&txMsg, controller.theta_mech, controller.dtheta_mech, controller.v_bus/2.0f);
         can.write(txMsg);
         }
     
@@ -117,6 +119,7 @@
     pc.printf(" %-4s %-31s %-5s %-6s %-5s\n\r\n\r", "prefix", "parameter", "min", "max", "current value");
     wait_us(10);
     pc.printf(" %-4s %-31s %-5s %-6s %.1f\n\r", "b", "Current Bandwidth (Hz)", "100", "2000", I_BW);
+    //pc.printf(" %-4s %-31s %-5s %-6s %.1f\n\r", "b", "Current Bandwidth (Hz)", "1", "100", I_BW);
     wait_us(10);
     pc.printf(" %-4s %-31s %-5s %-6s %-5i\n\r", "i", "CAN ID", "0", "127", CAN_ID);
     wait_us(10);
@@ -196,10 +199,13 @@
         controller.adc3_raw = ADC3->DR;
         spi.Sample(DT);                                                           // sample position sensor
         controller.theta_elec = spi.GetElecPosition();
+//        controller.theta_elec = 0;
         controller.theta_mech = (1.0f/GR)*spi.GetMechPosition();
         controller.dtheta_mech = (1.0f/GR)*spi.GetMechVelocity();  
         controller.dtheta_elec = spi.GetElecVelocity();
-        controller.v_bus = 0.95f*controller.v_bus + 0.05f*((float)controller.adc3_raw)*V_SCALE;
+//        controller.dtheta_elec = 0;
+//        controller.v_bus = 0.95f*controller.v_bus + 0.05f*((float)controller.adc3_raw)*V_SCALE;
+         controller.v_bus = 24.0;
         ///
         LLLL ++;
         if(LLLL==10000){
@@ -375,6 +381,7 @@
                 switch (cmd_id){
                     case 'b':
                         I_BW = fmaxf(fminf(atof(cmd_val), 2000.0f), 100.0f);
+                        //I_BW = fmaxf(fminf(atof(cmd_val), 100.0f), 1.0f);
                         break;
                     case 'i':
                         CAN_ID = atoi(cmd_val);
@@ -469,6 +476,7 @@
     
     controller.v_bus = V_BUS;
     controller.mode = 0;
+    // controller.kd = 0.1;
     Init_All_HW(&gpio);                                                         // Setup PWM, ADC, GPIO
 
     wait(.1);
@@ -502,11 +510,14 @@
     memcpy(&lut, &ENCODER_LUT, sizeof(lut));
     spi.WriteLUT(lut);                                                          // Set potision sensor nonlinearity lookup table
     
-    pc.baud(921600);                                                            // set serial baud rate
-    // pc.baud(460800);
+    // pc.baud(921600);                                                            // set serial baud rate
+    pc.baud(460800);
     
     wait(.01);
-    pc.printf("\n\r\n\r 3.3, With obs, vdff, no cogging\n\r\n\r");
+    //pc.printf("\n\r\n\r 3.3, With obs, vdff, no cogging\n\r\n\r");
+    // pc.printf("aloha, it do is 48v, low cal");
+    pc.printf("origin control with current filter 2000hz and current shunt is 1.5mo\n\r");
+    pc.printf("vdff_cogging_\n\r");
     wait(.01);
     pc.printf("\n\r Debug Info:\n\r");
     pc.printf(" Firmware Version: %s\n\r", VERSION_NUM);