Es un backup para las pruebas de firmware y hardware de un ventilador
Dependencies: mbed QEI FastPWM
stepper_motor_driver.h@10:b2d87404309a, 2020-04-27 (annotated)
- Committer:
- miguelangel_2511
- Date:
- Mon Apr 27 19:52:02 2020 +0000
- Revision:
- 10:b2d87404309a
- Parent:
- 7:f4e248182d31
- Child:
- 11:5cb7ae8bd831
Ventilador ajustado al nuevo sistema mecanico (con mordaza) y con el sensor de flujo (espirometria) calibrado de forma aproximada. Tabien se ha configurado el baud rate a su maximo valor funcional (256000 bps).
Who changed what in which revision?
User | Revision | Line number | New 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, |
miguelangel_2511 | 1:aa5df1878126 | 19 | Stepper_Inspiration_Finish, |
miguelangel_2511 | 1:aa5df1878126 | 20 | Stepper_Expiration, |
miguelangel_2511 | 1:aa5df1878126 | 21 | Stepper_Expiration_Finish, |
miguelangel_2511 | 1:aa5df1878126 | 22 | Stepper_Limit_Sensor_Error |
miguelangel_2511 | 1:aa5df1878126 | 23 | }Stepper_Driver_State_t; |
miguelangel_2511 | 0:9d0b9785d3d6 | 24 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 25 | |
miguelangel_2511 | 1:aa5df1878126 | 26 | /* Object declaration */ |
miguelangel_2511 | 1:aa5df1878126 | 27 | extern InterruptIn stepper_pulse_feedback; |
miguelangel_2511 | 1:aa5df1878126 | 28 | extern FastPWM stepper_pulse; |
miguelangel_2511 | 1:aa5df1878126 | 29 | extern DigitalOut stepper_en; |
miguelangel_2511 | 1:aa5df1878126 | 30 | extern DigitalOut stepper_dir; |
miguelangel_2511 | 1:aa5df1878126 | 31 | |
miguelangel_2511 | 3:45299e7882b9 | 32 | |
miguelangel_2511 | 1:aa5df1878126 | 33 | /* Variable declaration */ |
miguelangel_2511 | 1:aa5df1878126 | 34 | |
miguelangel_2511 | 3:45299e7882b9 | 35 | extern volatile uint8_t stepper_parameters_update_flag; |
miguelangel_2511 | 3:45299e7882b9 | 36 | |
miguelangel_2511 | 7:f4e248182d31 | 37 | |
miguelangel_2511 | 1:aa5df1878126 | 38 | // Tables for calculations |
miguelangel_2511 | 1:aa5df1878126 | 39 | extern const float sigma_ramp[RAMP_STEPS]; |
miguelangel_2511 | 3:45299e7882b9 | 40 | extern const float short_sigma_ramp[SHORT_RAMP_STEPS]; |
miguelangel_2511 | 10:b2d87404309a | 41 | //extern uint32_t calibration_period_rise_ramp_us[RAMP_STEPS]; |
miguelangel_2511 | 10:b2d87404309a | 42 | //extern uint32_t inspiration_period_rise_ramp_us[RAMP_STEPS]; |
miguelangel_2511 | 10:b2d87404309a | 43 | //extern uint32_t expiration_period_rise_ramp_us[RAMP_STEPS]; |
miguelangel_2511 | 10:b2d87404309a | 44 | //extern uint32_t expiration_period_short_rise_ramp_us[SHORT_RAMP_STEPS]; |
miguelangel_2511 | 1:aa5df1878126 | 45 | |
miguelangel_2511 | 1:aa5df1878126 | 46 | // These parameters are configurer through the graphic interface */ |
miguelangel_2511 | 1:aa5df1878126 | 47 | extern uint32_t inspiration_stepper_pulses_setpoint; |
miguelangel_2511 | 1:aa5df1878126 | 48 | //uint32_t expiration_stepper_pulses_setpoint; // Not used in this version |
miguelangel_2511 | 10:b2d87404309a | 49 | //extern uint32_t inspiration_stepper_pulse_period_us; |
miguelangel_2511 | 10:b2d87404309a | 50 | //extern uint32_t expiration_stepper_pulse_period_us; |
miguelangel_2511 | 10:b2d87404309a | 51 | //extern uint32_t calibration_stepper_pulse_period_us; |
miguelangel_2511 | 10:b2d87404309a | 52 | |
miguelangel_2511 | 10:b2d87404309a | 53 | extern float inspiration_stepper_pulse_period; |
miguelangel_2511 | 10:b2d87404309a | 54 | extern float expiration_stepper_pulse_period; |
miguelangel_2511 | 10:b2d87404309a | 55 | extern float calibration_stepper_pulse_period; |
miguelangel_2511 | 10:b2d87404309a | 56 | |
miguelangel_2511 | 5:bd5fc0510e7b | 57 | //extern uint32_t min_inspiration_ramp_period_us; |
miguelangel_2511 | 5:bd5fc0510e7b | 58 | //extern uint32_t min_expiration_ramp_period_us; |
miguelangel_2511 | 1:aa5df1878126 | 59 | extern uint32_t volume_in_steps[VOLUME_SETPOINT_INDEX_LIMIT]; |
miguelangel_2511 | 1:aa5df1878126 | 60 | |
miguelangel_2511 | 1:aa5df1878126 | 61 | // Variables used in every state of the stepper motor driver */ |
miguelangel_2511 | 1:aa5df1878126 | 62 | extern volatile uint32_t stepper_pulse_counter; |
miguelangel_2511 | 10:b2d87404309a | 63 | //extern volatile uint32_t stepper_ramp_pulse_counter; |
miguelangel_2511 | 1:aa5df1878126 | 64 | |
miguelangel_2511 | 1:aa5df1878126 | 65 | extern volatile Stepper_Driver_State_t stepper_driver_state; |
miguelangel_2511 | 1:aa5df1878126 | 66 | |
miguelangel_2511 | 1:aa5df1878126 | 67 | /* Function declaration */ |
miguelangel_2511 | 1:aa5df1878126 | 68 | void Stepper_Driver_Init(void); |
miguelangel_2511 | 5:bd5fc0510e7b | 69 | //void Stepper_Calculate_Period_Ramp(void); |
miguelangel_2511 | 10:b2d87404309a | 70 | //float Stepper_Calculate_Insp_Period_Ramp(float max_freq); |
miguelangel_2511 | 10:b2d87404309a | 71 | //float Stepper_Calculate_Exp_Period_Ramp(float max_freq); |
miguelangel_2511 | 10:b2d87404309a | 72 | //float Stepper_Calculate_Exp_Short_Period_Ramp(float max_freq); |
miguelangel_2511 | 1:aa5df1878126 | 73 | void Stepper_Go_Home_Position(void); |
miguelangel_2511 | 1:aa5df1878126 | 74 | void Stepper_Driver_State_Machine(void); |
miguelangel_2511 | 1:aa5df1878126 | 75 | void Stepper_Driver_Pulse_Signal_Update(void); |
miguelangel_2511 | 1:aa5df1878126 | 76 | |
miguelangel_2511 | 0:9d0b9785d3d6 | 77 | #endif |