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

Dependencies:   mbed QEI FastPWM

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?

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,
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