X-CUBE-SPN7 for X-NUCLEO-IHM07M1
|
Motor Control driver. More...
Modules | |
Exported_types | |
Exported_function_6StepLib | |
MC_SixStep_TABLE | |
Set the peripherals (TIMx, GPIO etc.) for each step. | |
MC_SixStep_NEXT_step | |
Generate the next step number according with the direction (CW or CCW) | |
MC_SixStep_RESET | |
Reset all variables used for 6Step control algorithm. | |
MC_SixStep_Ramp_Motor_calc | |
Calculate the acceleration profile step by step for motor during start-up. | |
MC_SixStep_ARR_step | |
Generate the ARR value for Low Frequency TIM during start-up. | |
MC_SixStep_Alignment | |
Generate the motor alignment. | |
MC_SixStep_Speed_Val_target_potentiometer | |
Calculate the Motor Speed validation threshold according with the potentiometer value. | |
MC_SixStep_Speed_Potentiometer | |
Calculate the potentiometer value to set the Motor Speed. | |
MC_Set_PI_param | |
Set all parameters for PI regulator. | |
MC_PI_Controller | |
Compute the PI output for the Current Reference. | |
MC_Task_Speed | |
Main task: Speed Loop with PI regulator. | |
MC_Set_Speed | |
Set the new motor speed value. | |
MC_Bemf_Delay | |
Take the delay time after each new 6-step commutation. | |
MC_StartMotor | |
Start the Motor. | |
MC_StopMotor | |
Stop the Motor. | |
MC_GetElSpeedHz | |
Get the Eletrical Motor Speed from ARR value of LF TIM. | |
MC_GetMechSpeedRPM | |
Get the Mechanical Motor Speed (RPM) | |
MC_SixStep_Init_main_data | |
Init the main variables for motor driving from MC_SixStep_param.h. | |
MC_SixStep_INIT | |
Initialitation function for SixStep library. | |
MC_TIMx_SixStep_timebase | |
Low Frequency Timer Callback - Call the next step and request the filtered speed value. | |
MC_Speed_Filter | |
Calculate the speed filtered. | |
MC_Potentiometer_filter | |
Calculate the filtered potentiometer value. | |
MC_SysTick_SixStep_MediumFrequencyTask | |
Systick Callback - Call the Speed loop. | |
MC_SixStep_ARR_Bemf | |
Calculate the new Autoreload value (ARR) for Low Frequency timer. | |
MC_ADCx_SixStep_Bemf | |
Compute the zero crossing detection. | |
MC_EXT_button_SixStep | |
GPIO EXT Callback - Start or Stop the motor through the Blue push button on STM32Nucleo. | |
Main_Motor_parameters | |
All motor parameters for 6Step driving. | |
Functions | |
uint64_t | MCM_Sqrt (uint64_t wInput) |
It calculates the square root of a non-negative s64. It returns 0 for negative s64. More... | |
void | MC_SixStep_EnableInput_CH1_E_CH2_E_CH3_D (void) |
void | MC_SixStep_EnableInput_CH1_E_CH2_D_CH3_E (void) |
void | MC_SixStep_EnableInput_CH1_D_CH2_E_CH3_E (void) |
void | MC_SixStep_DisableInput_CH1_D_CH2_D_CH3_D (void) |
void | MC_SixStep_Start_PWM_driving (void) |
void | MC_SixStep_Stop_PWM_driving (void) |
void | MC_SixStep_HF_TIMx_SetDutyCycle_CH1 (uint16_t) |
void | MC_SixStep_HF_TIMx_SetDutyCycle_CH2 (uint16_t) |
void | MC_SixStep_HF_TIMx_SetDutyCycle_CH3 (uint16_t) |
void | MC_SixStep_Current_Reference_Start (void) |
void | MC_SixStep_Current_Reference_Stop (void) |
void | MC_SixStep_Current_Reference_Setvalue (uint16_t) |
void | MC_UI_INIT (void) |
void | UART_Set_Value (void) |
void | UART_Communication_Task (void) |
void | CMD_Parser (char *pCommandString) |
void | HAL_IncTick (void) |
This function is called to increment a global variable "uwTick" used as application time base. More... | |
uint32_t | HAL_GetTick (void) |
Povides a tick value in millisecond. More... | |
Variables | |
SIXSTEP_Base_InitTypeDef | SIXSTEP_parameters |
SIXSTEP_PI_PARAM_InitTypeDef_t | PI_parameters |
uint16_t | Rotor_poles_pairs |
uint32_t | mech_accel_hz = 0 |
uint32_t | constant_k = 0 |
uint32_t | Time_vector_tmp = 0 |
uint32_t | Time_vector_prev_tmp = 0 |
uint32_t | T_single_step = 0 |
uint32_t | T_single_step_first_value = 0 |
int32_t | delta = 0 |
uint16_t | index_array = 1 |
int16_t | speed_tmp_array [FILTER_DEEP] |
uint16_t | speed_tmp_buffer [FILTER_DEEP] |
uint16_t | HFBuffer [HFBUFFERSIZE] |
uint16_t | HFBufferIndex = 0 |
uint8_t | array_completed = FALSE |
uint8_t | buffer_completed = FALSE |
uint8_t | UART_FLAG_RECEIVE = FALSE |
uint32_t | ARR_LF = 0 |
int32_t | Mech_Speed_RPM = 0 |
int32_t | El_Speed_Hz = 0 |
uint16_t | index_adc_chn = 0 |
uint16_t | index_motor_run = 0 |
uint16_t | test_motor_run = 1 |
uint8_t | Enable_start_button = TRUE |
uint16_t | index_ARR_step = 1 |
uint32_t | n_zcr_startup = 0 |
uint16_t | index_startup_motor = 1 |
uint16_t | target_speed = TARGET_SPEED |
uint16_t | shift_n_sqrt = 14 |
uint16_t | cnt_bemf_event = 0 |
uint8_t | startup_bemf_failure = 0 |
uint8_t | speed_fdbk_error = 0 |
__IO uint32_t | uwTick = 0 |
uint8_t | dac_status = DAC_ENABLE |
uint16_t | index_align = 1 |
int32_t | speed_sum_sp_filt = 0 |
int32_t | speed_sum_pot_filt = 0 |
uint16_t | index_pot_filt = 1 |
int16_t | potent_filtered = 0 |
uint32_t | Tick_cnt = 0 |
uint32_t | counter_ARR_Bemf = 0 |
uint64_t | constant_multiplier_tmp = 0 |
Detailed Description
Motor Control driver.
Function Documentation
uint32_t HAL_GetTick | ( | void | ) |
Povides a tick value in millisecond.
- Note
- The function is declared as __Weak to be overwritten in case of other implementations in user file.
- Return values
-
tick value
void HAL_IncTick | ( | void | ) |
This function is called to increment a global variable "uwTick" used as application time base.
- Note
- In the default implementation, this variable is incremented each 1ms in Systick ISR.
- This function is declared as __weak to be overwritten in case of other implementations in user file.
- Return values
-
None
uint64_t MCM_Sqrt | ( | uint64_t | wInput | ) |
It calculates the square root of a non-negative s64. It returns 0 for negative s64.
- Parameters
-
Input uint64_t number
- Return values
-
int32_t Square root of Input (0 if Input<0)
Variable Documentation
uint32_t ARR_LF = 0 |
Autoreload LF TIM variable
uint8_t array_completed = FALSE |
Speed filter variable
uint8_t buffer_completed = FALSE |
Potentiometer filter variable
uint32_t constant_k = 0 |
1/3*mech_accel_hz
int32_t delta = 0 |
Startup variable
int32_t El_Speed_Hz = 0 |
Electrical motor speed
uint8_t Enable_start_button = TRUE |
Start/stop button filter to avoid double command
uint16_t HFBuffer[HFBUFFERSIZE] |
Buffer for Potentiometer Value Filtering at the High-Frequency ADC conversion
uint16_t HFBufferIndex = 0 |
High-Frequency Buffer Index
uint16_t index_adc_chn = 0 |
Index of ADC channel selector for measuring
uint16_t index_array = 1 |
Speed filter variable
uint16_t index_motor_run = 0 |
Tmp variable for DEMO mode
uint32_t mech_accel_hz = 0 |
Hz – Mechanical acceleration rate
int32_t Mech_Speed_RPM = 0 |
Mechanical motor speed
SIXSTEP_PI_PARAM_InitTypeDef_t PI_parameters |
SixStep PI regulator structure
uint16_t Rotor_poles_pairs |
Number of pole pairs of the motor
SIXSTEP_Base_InitTypeDef SIXSTEP_parameters |
Main SixStep structure
int16_t speed_tmp_array[FILTER_DEEP] |
Speed filter variable
uint16_t speed_tmp_buffer[FILTER_DEEP] |
Potentiometer filter variable
uint32_t T_single_step = 0 |
Startup variable
uint32_t T_single_step_first_value = 0 |
Startup variable
uint16_t target_speed = TARGET_SPEED |
Target speed for closed loop control
uint16_t test_motor_run = 1 |
Tmp variable for DEMO mode
uint32_t Time_vector_prev_tmp = 0 |
Startup variable
uint32_t Time_vector_tmp = 0 |
Startup variable
uint8_t UART_FLAG_RECEIVE = FALSE |
UART commmunication flag
__IO uint32_t uwTick = 0 |
Tick counter - 1msec updated
Generated on Fri Sep 11 2015 16:47:21 for X-CUBE-SPN7 for X-NUCLEO-IHM07M1 by 1.8.9.1