BaseCode for T-Motor_AK80

Dependencies:   mbed-dev-f303 FastPWM3

Files at this revision

API Documentation at this revision

Comitter:
Ikhee
Date:
Wed Dec 09 06:33:30 2020 +0000
Parent:
56:fe5056ac6740
Commit message:
Last Updated version.

Changed in this revision

Config/current_controller_config.h Show annotated file Show diff for this revision Revisions of this file
PositionSensor/PositionSensor.cpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/Config/current_controller_config.h	Thu Oct 10 15:03:12 2019 +0000
+++ b/Config/current_controller_config.h	Wed Dec 09 06:33:30 2020 +0000
@@ -2,16 +2,16 @@
 #define CURRENT_CONTROLLER_CONFIG_H
 
 // Current controller///
-#define K_D .05f                    // Loop gain,  Volts/Amp
-#define K_Q .05f                    // Loop gain,  Volts/Amp
+//#define K_D .05f                    // Loop gain,  Volts/Amp
+//#define K_Q .05f                    // Loop gain,  Volts/Amp
 #define K_SCALE 0.0001f             // K_loop/Loop BW (Hz) 0.0042
 #define KI_D 0.0455f                // PI zero, in radians per sample
 #define KI_Q 0.0455f                // PI zero, in radians per sample
 #define V_BUS 24.0f                 // Volts
 #define OVERMODULATION 1.15f        // 1.0 = no overmodulation
-
-#define D_INT_LIM V_BUS/(K_D*KI_D)  // Amps*samples
-#define Q_INT_LIM V_BUS/(K_Q*KI_Q)  // Amps*samples
+//
+//#define D_INT_LIM V_BUS/(K_D*KI_D)  // Amps*samples
+//#define Q_INT_LIM V_BUS/(K_Q*KI_Q)  // Amps*samples
 
 //Observer//
 #define DT 0.000025f
--- a/PositionSensor/PositionSensor.cpp	Thu Oct 10 15:03:12 2019 +0000
+++ b/PositionSensor/PositionSensor.cpp	Wed Dec 09 06:33:30 2020 +0000
@@ -29,6 +29,11 @@
         spi->write(0);
         wait_us(100);
     }
+    
+    GPIOA->ODR &= ~(1 << 15);
+    spi->write(0x8980);
+    wait_ms(20);
+    
 
     }
     
--- a/main.cpp	Thu Oct 10 15:03:12 2019 +0000
+++ b/main.cpp	Wed Dec 09 06:33:30 2020 +0000
@@ -178,6 +178,7 @@
   if (TIM1->SR & TIM_SR_UIF ) {
         //gpio.led->write(1);
         ///Sample current always ///
+        gpio.led->write(!gpio.led->read());
         ADC1->CR2  |= 0x40000000;                                               // Begin sample and conversion
         //volatile int delay;   
         //for (delay = 0; delay < 55; delay++);
@@ -447,6 +448,14 @@
     wait_us(100);
     drv.write_CSACR(0x0, 0x1, 0x0, CSA_GAIN_40, 0x0, 0x1, 0x1, 0x1, SEN_LVL_1_0);   // calibrate shunt amplifiers
     wait_us(100);
+    
+        
+    drv.write_HSR(LOCK_OFF, IDRIVEP_HS_330MA, IDRIVEN_HS_660MA);
+    wait_us(100);
+    drv.write_LSR(0x1, TDRIVE_4000NS, IDRIVEP_LS_330MA, IDRIVEN_LS_660MA);
+    wait_us(100);
+    
+    
     zero_current(&controller.adc1_offset, &controller.adc2_offset); 
     wait_us(100);
     drv.write_CSACR(0x0, 0x1, 0x0, CSA_GAIN_40, 0x1, 0x0, 0x0, 0x0, SEN_LVL_1_0);
@@ -523,7 +532,7 @@
         //drv.print_faults();
         wait(.1);
         //printf("%.3f  %.3f\n\r" , observer.temperature, observer.q_in);
-        if(controller.otw_flag){gpio.led->write(!gpio.led->read());}
+        //if(controller.otw_flag){gpio.led->write(!gpio.led->read());}
              /*
         if(state == MOTOR_MODE)
         {