Index: firmware/App/Controllers/SubstitutionPump.c =================================================================== diff -u -r3b64586791accd0b9e8d8978b40e2509bb86dfbe -r69b6a8036f72eeb935a20701c7d30d402a9ba1f5 --- firmware/App/Controllers/SubstitutionPump.c (.../SubstitutionPump.c) (revision 3b64586791accd0b9e8d8978b40e2509bb86dfbe) +++ firmware/App/Controllers/SubstitutionPump.c (.../SubstitutionPump.c) (revision 69b6a8036f72eeb935a20701c7d30d402a9ba1f5) @@ -63,19 +63,24 @@ #define MAX_ALLOWED_ML_OUT_OF_RANGE 10 ///< Maximum allowed mL/min out of range from target ml/min in open loop. #define RPM_OUT_OF_RANGE_TIME_OUT ( 2 * MS_PER_SECOND ) ///< Open loop RPM out of range time out in ms. -static const U32 SUBSTITUTION_PUMP_CONTROL_FORWARD = SUBSTITUTION_PUMP_CONTROL_SLEEP_OFF | - SUBSTITUTION_PUMP_CONTROL_NOT_RESET | - SUBSTITUTION_PUMP_CONTROL_ENABLE | - SUBSTITUTION_PUMP_CONTROL_REVERSE_DIR | - SUBSTITUTION_PUMP_CONTROL_SIXTY_FOUR_STEP; +//Stepper Motor driver configuration (DRV8434S) +#define SUBSTITUTION_PUMP_CONTROL_DRV_SIXTY_FOUR_STEP 0x08 ///< 1/64 step, MS[3:0]=1000. (DRV8434S) +#define SUBSTITUTION_PUMP_CONTROL_DRV_REVERSE_DIR 0x00 ///< bit 4 = DIR, Substitution pump reverse direction configuration. +#define SUBSTITUTION_PUMP_CONTROL_DRV_FORWARD_DIR 0x10 ///< bit 4 = DIR, Substitution pump forward direction configuration. +#define SUBSTITUTION_PUMP_CONTROL_DRV_ENABLE 0x00 ///< bit 5, Substitution pump control enable pump. +#define SUBSTITUTION_PUMP_CONTROL_DRV_DISABLE 0x20 ///< bit 5, active low, disabled. (DRV8434S) -static const U32 SUBSTITUTION_PUMP_CONTROL_STOP = SUBSTITUTION_PUMP_CONTROL_SLEEP_OFF | - SUBSTITUTION_PUMP_CONTROL_NOT_RESET | - SUBSTITUTION_PUMP_CONTROL_DISABLE | - SUBSTITUTION_PUMP_CONTROL_REVERSE_DIR | - SUBSTITUTION_PUMP_CONTROL_SIXTY_FOUR_STEP; +#define DRV8434S_CTRL1_DEFAULT 0x00 +#define DRV8434S_CTRL2_DEFAULT 0x8F +#define DRV8434S_CTRL4_DEFAULT 0x30 +#define DRV8434S_CTRL5_DEFAULT 0x08 +#define DRV8434S_CTRL6_DEFAULT 0x03 +#define DRV8434S_CTRL7_DEFAULT 0x20 +static U32 SUBSTITUTION_PUMP_CONTROL_FORWARD; +static U32 SUBSTITUTION_PUMP_CONTROL_STOP; + /// Enumeration of Substitution pump states. typedef enum SubstituionPumpState { @@ -150,6 +155,38 @@ substitutionPumpDataPublishInterval.ovData = 0; substitutionPumpDataPublishInterval.override = OVERRIDE_RESET; + if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_ENABLE_DRV8434S_STEPPER_DRIVER ) ) + { + SUBSTITUTION_PUMP_CONTROL_FORWARD = SUBSTITUTION_PUMP_CONTROL_DRV_ENABLE | + SUBSTITUTION_PUMP_CONTROL_DRV_REVERSE_DIR | + SUBSTITUTION_PUMP_CONTROL_DRV_SIXTY_FOUR_STEP; + + SUBSTITUTION_PUMP_CONTROL_STOP = SUBSTITUTION_PUMP_CONTROL_DRV_DISABLE | + SUBSTITUTION_PUMP_CONTROL_DRV_REVERSE_DIR | + SUBSTITUTION_PUMP_CONTROL_DRV_SIXTY_FOUR_STEP; + + setFPGAD92CTRL1Reg( DRV8434S_CTRL1_DEFAULT ); + setFPGAD92CTRL2Reg( DRV8434S_CTRL2_DEFAULT ); + setFPGAD92CTRL4Reg( DRV8434S_CTRL4_DEFAULT ); + setFPGAD92CTRL5Reg( DRV8434S_CTRL5_DEFAULT ); + setFPGAD92CTRL6Reg( DRV8434S_CTRL6_DEFAULT ); + setFPGAD92CTRL7Reg( DRV8434S_CTRL7_DEFAULT ); + } + else + { + SUBSTITUTION_PUMP_CONTROL_FORWARD = SUBSTITUTION_PUMP_CONTROL_SLEEP_OFF | + SUBSTITUTION_PUMP_CONTROL_NOT_RESET | + SUBSTITUTION_PUMP_CONTROL_ENABLE | + SUBSTITUTION_PUMP_CONTROL_REVERSE_DIR | + SUBSTITUTION_PUMP_CONTROL_SIXTY_FOUR_STEP; + + SUBSTITUTION_PUMP_CONTROL_STOP = SUBSTITUTION_PUMP_CONTROL_SLEEP_OFF | + SUBSTITUTION_PUMP_CONTROL_NOT_RESET | + SUBSTITUTION_PUMP_CONTROL_DISABLE | + SUBSTITUTION_PUMP_CONTROL_REVERSE_DIR | + SUBSTITUTION_PUMP_CONTROL_SIXTY_FOUR_STEP; + } + initPersistentAlarm( ALARM_ID_DD_D92_PUMP_RPM_OUT_OF_RANGE, RPM_OUT_OF_RANGE_TIME_OUT, RPM_OUT_OF_RANGE_TIME_OUT ); }