bldc driver firmware based on hobbyking cheetah compact
Dependencies: BLDC_V2 mbed-dev-f303 FastPWM3
Diff: main.cpp
- 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);