Index: firmware/App/Controllers/SubstitutionPump.c =================================================================== diff -u -r20676421ce71cfc51bddaaa9ba95f9e183967aba -r7f56f07660862bc62524c506699193a7e5f48f96 --- firmware/App/Controllers/SubstitutionPump.c (.../SubstitutionPump.c) (revision 20676421ce71cfc51bddaaa9ba95f9e183967aba) +++ firmware/App/Controllers/SubstitutionPump.c (.../SubstitutionPump.c) (revision 7f56f07660862bc62524c506699193a7e5f48f96) @@ -69,15 +69,8 @@ #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) -#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 - #define CONCENTRATE_PUMP_CONTROL_DRV_TWOFIXTYSIXTH_STEP 0x0A ///< concentrate pump microstep control 1/256th step. -#define CONCENTRATE_PUMP_CONTROL_DRV_ONE_TWENTY_EIGHTH_STEP 0x09 ///< concentrate pump microstep control 1/128th step. +#define CONCENTRATE_PUMP_CONTROL_DRV_ONE_TWENTY_EIGHTH_STEP 0x09 ///< concentrate pump microstep control 1/128th step. #define SUBSTITUTION_PUMP_CONTROL_DRV_SIXTY_FOUR_STEP 0x08 ///< concentrate pump microstep control 1/64th step. #define CONCENTRATE_PUMP_CONTROL_DRV_THIRTYSECOND_STEP 0x07 ///< concentrate pump microstep control 1/32nd step. #define CONCENTRATE_PUMP_CONTROL_DRV_SIXTEENTH_STEP 0x06 ///< concentrate pump microstep control 1/16th step. @@ -88,10 +81,14 @@ #define CONCENTRATE_PUMP_CONTROL_DRV_FULL_STEP_71PCT 0x01 ///< Concentrate pump microstep control full step with 71% current. #define CONCENTRATE_PUMP_CONTROL_DRV_FULL_STEP_100PCT 0x00 ///< Concentrate pump microstep control full step with 100% current. -static U32 SUBSTITUTION_PUMP_CONTROL_FORWARD; -static U32 SUBSTITUTION_PUMP_CONTROL_STOP; +#define DRV8434S_CTRL1_DEFAULT 0x00 ///< Full motor current, normal open-load fault behavior. +#define DRV8434S_CTRL2_DEFAULT 0x8F ///< Motor outputs on, 16us off-time, smart auto-tuning current control (quietest/smoothest mode). +#define DRV8434S_CTRL4_DEFAULT 0x30 ///< Registers unlocked/writable, basic over current and over temperature protection settings. +#define DRV8434S_CTRL5_DEFAULT 0x08 ///< Stall detection off by default, but if turned on it will show up as a fault +#define DRV8434S_CTRL6_DEFAULT 0x03 ///< Stall detection sensitivity threshold (low byte). +#define DRV8434S_CTRL7_DEFAULT 0x20 ///< Low current ripple setting, spread-spectrum switching enabled (reduces EMI noise). +#define DRV8434S_CTRL_DEFAULT 0x7F ///< Stop State indicator flag. - /// Enumeration of Substitution pump states. typedef enum SubstituionPumpState { @@ -128,7 +125,9 @@ static SUBSTITUTION_PUMP_T substitutionPumps[ NUM_OF_SUB_PUMPS ]; ///< Array of Substitution pumps' data structure. static OVERRIDE_F32_T pumpTargetRate[ NUM_OF_SUB_PUMPS ]; ///< Target substitution pumps' rate (mL/min). static U32 substitutionPumpPublishTimerCounter; ///< Substitution pump data publication counter. -static U08 Enable_DRV8434S_Stepper_Driver; ///< Enable New Stepper Driver for Substitution Pump. +static U08 Enable_DRV8434S_Stepper_Driver; ///< Enable new stepper driver for Substitution Pump. +static U32 SUBSTITUTION_PUMP_CONTROL_FORWARD; ///< Substitution Pump forward Control. +static U32 SUBSTITUTION_PUMP_CONTROL_STOP; ///< Substitution pump stop state control. // ********** private function prototypes ********** @@ -549,24 +548,27 @@ *************************************************************************/ static void checkSubstitutionPumpControl( void ) { - if ( TRUE == getTestConfigStatus( TEST_CONFIG_DD_ENABLE_DRV8434S_STEPPER_DRIVER ) && (Enable_DRV8434S_Stepper_Driver == FALSE ) ) + 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; + if( Enable_DRV8434S_Stepper_Driver == FALSE ) + { + 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; + 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 ); + setFPGAD92CTRL1Reg( DRV8434S_CTRL1_DEFAULT ); + setFPGAD92CTRL2Reg( DRV8434S_CTRL2_DEFAULT ); + setFPGAD92CTRL4Reg( DRV8434S_CTRL4_DEFAULT ); + setFPGAD92CTRL5Reg( DRV8434S_CTRL5_DEFAULT ); + setFPGAD92CTRL6Reg( DRV8434S_CTRL6_DEFAULT ); + setFPGAD92CTRL7Reg( DRV8434S_CTRL7_DEFAULT ); - Enable_DRV8434S_Stepper_Driver= TRUE; + Enable_DRV8434S_Stepper_Driver= TRUE; + } } else {