Es un backup para las pruebas de firmware y hardware de un ventilador

Dependencies:   mbed QEI FastPWM

Committer:
miguelangel_2511
Date:
Thu Apr 16 13:02:36 2020 +0000
Revision:
1:aa5df1878126
Parent:
0:9d0b9785d3d6
Child:
2:6f618b905d4f
Pantalla y encoder trabajan de forma coordinada. El driver del motor de pasos trabaja de forma independiente (aun no se ha enlazado con la pantalla y el encoder).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
miguelangel_2511 0:9d0b9785d3d6 1 #ifndef STEPPER_MOTOR_DRIVER_H_
miguelangel_2511 0:9d0b9785d3d6 2 #define STEPPER_MOTOR_DRIVER_H_
miguelangel_2511 0:9d0b9785d3d6 3
miguelangel_2511 0:9d0b9785d3d6 4 #include "mbed.h"
miguelangel_2511 1:aa5df1878126 5 #include "FastPWM.h"
miguelangel_2511 0:9d0b9785d3d6 6
miguelangel_2511 0:9d0b9785d3d6 7 #define STEPPER_PULSE_DUTY_CYCLE 0.5f
miguelangel_2511 0:9d0b9785d3d6 8 #define STEPPER_MOTOR_TOTAL_STEPS 6000
miguelangel_2511 0:9d0b9785d3d6 9
miguelangel_2511 0:9d0b9785d3d6 10 #define STEPPER_MOTOR_GO_HOME 0
miguelangel_2511 0:9d0b9785d3d6 11 #define STEPPER_MOTOR_GO_AHEAD 0
miguelangel_2511 0:9d0b9785d3d6 12
miguelangel_2511 0:9d0b9785d3d6 13
miguelangel_2511 1:aa5df1878126 14 /* Type definition */
miguelangel_2511 0:9d0b9785d3d6 15
miguelangel_2511 1:aa5df1878126 16 typedef enum{
miguelangel_2511 1:aa5df1878126 17 Stepper_Stand_By = 0,
miguelangel_2511 1:aa5df1878126 18 Stepper_Inspiration_Rising_Ramp,
miguelangel_2511 1:aa5df1878126 19 Stepper_Inspiration,
miguelangel_2511 1:aa5df1878126 20 Stepper_Inspiration_Falling_Ramp,
miguelangel_2511 1:aa5df1878126 21 Stepper_Inspiration_Finish,
miguelangel_2511 1:aa5df1878126 22 Stepper_Expiration_Rising_Ramp,
miguelangel_2511 1:aa5df1878126 23 Stepper_Expiration,
miguelangel_2511 1:aa5df1878126 24 Stepper_Expiration_Falling_Ramp,
miguelangel_2511 1:aa5df1878126 25 Stepper_Expiration_Finish,
miguelangel_2511 1:aa5df1878126 26 Stepper_Limit_Sensor_Error
miguelangel_2511 1:aa5df1878126 27 }Stepper_Driver_State_t;
miguelangel_2511 0:9d0b9785d3d6 28
miguelangel_2511 0:9d0b9785d3d6 29
miguelangel_2511 1:aa5df1878126 30 /* Object declaration */
miguelangel_2511 1:aa5df1878126 31 extern InterruptIn stepper_pulse_feedback;
miguelangel_2511 1:aa5df1878126 32 extern FastPWM stepper_pulse;
miguelangel_2511 1:aa5df1878126 33 extern DigitalOut stepper_en;
miguelangel_2511 1:aa5df1878126 34 extern DigitalOut stepper_dir;
miguelangel_2511 1:aa5df1878126 35
miguelangel_2511 1:aa5df1878126 36 /* Variable declaration */
miguelangel_2511 1:aa5df1878126 37
miguelangel_2511 1:aa5df1878126 38 // Tables for calculations
miguelangel_2511 1:aa5df1878126 39 extern const float sigma_ramp[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 40 extern const float i_e_ratio_stepper_table[I_E_RATIO_INDEX_LIMIT][2];
miguelangel_2511 1:aa5df1878126 41 extern uint32_t calibration_period_rise_ramp_us[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 42 extern uint32_t inspiration_period_rise_ramp_us[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 43 extern uint32_t expiration_period_rise_ramp_us[RAMP_STEPS];
miguelangel_2511 1:aa5df1878126 44
miguelangel_2511 1:aa5df1878126 45 // These parameters are configurer through the graphic interface */
miguelangel_2511 1:aa5df1878126 46 extern uint32_t inspiration_stepper_pulses_setpoint;
miguelangel_2511 1:aa5df1878126 47 //uint32_t expiration_stepper_pulses_setpoint; // Not used in this version
miguelangel_2511 1:aa5df1878126 48 extern uint32_t inspiration_stepper_pulse_period_us;
miguelangel_2511 1:aa5df1878126 49 extern uint32_t expiration_stepper_pulse_period_us;
miguelangel_2511 1:aa5df1878126 50 extern uint32_t calibration_stepper_pulse_period_us;
miguelangel_2511 1:aa5df1878126 51 extern uint32_t volume_in_steps[VOLUME_SETPOINT_INDEX_LIMIT];
miguelangel_2511 1:aa5df1878126 52
miguelangel_2511 1:aa5df1878126 53 // Variables used in every state of the stepper motor driver */
miguelangel_2511 1:aa5df1878126 54 extern volatile uint32_t stepper_pulse_counter;
miguelangel_2511 1:aa5df1878126 55 extern volatile uint32_t stepper_ramp_pulse_counter;
miguelangel_2511 1:aa5df1878126 56
miguelangel_2511 1:aa5df1878126 57 extern volatile Stepper_Driver_State_t stepper_driver_state;
miguelangel_2511 1:aa5df1878126 58
miguelangel_2511 1:aa5df1878126 59 /* Function declaration */
miguelangel_2511 1:aa5df1878126 60 void Stepper_Driver_Init(void);
miguelangel_2511 1:aa5df1878126 61 void Stepper_Calculate_Period_Ramp(void);
miguelangel_2511 1:aa5df1878126 62 void Stepper_Go_Home_Position(void);
miguelangel_2511 1:aa5df1878126 63 void Stepper_Driver_State_Machine(void);
miguelangel_2511 1:aa5df1878126 64 void Stepper_Driver_Pulse_Signal_Update(void);
miguelangel_2511 1:aa5df1878126 65
miguelangel_2511 0:9d0b9785d3d6 66 #endif