Index: firmware/App/Controllers/DialysatePumps.c =================================================================== diff -u -rb4e581d847579ffd65e15822b67def7f64212481 -rc400845083cc6fc90f70f308ae953e05b45acbf8 --- firmware/App/Controllers/DialysatePumps.c (.../DialysatePumps.c) (revision b4e581d847579ffd65e15822b67def7f64212481) +++ firmware/App/Controllers/DialysatePumps.c (.../DialysatePumps.c) (revision c400845083cc6fc90f70f308ae953e05b45acbf8) @@ -66,7 +66,7 @@ #define SPENT_DIAL_OPEN_LOOP_SPEED_RPM 2500.0F ///< spent dialysate pump open loop speed to meet target pressure. #define DIALYSATE_PUMP_SPEED_ZERO_RPM 0 ///< Dialysate pump zero RPM speed. #define SPEED_COUNT_ZERO 0 ///< Measured speed count zero check. -#define SPEED_CONV_FACTOR 1500000 ///< Measured speed count conversion to RPM +#define SPEED_CONV_FACTOR 1500000 ///< Measured speed count conversion to RPM ( in 10us resolution ). #define D12_PUMP_P_COEFFICIENT 20.0F ///< P term for fresh dialysate pump delta pressure control. #define D12_PUMP_I_COEFFICIENT 60.0F ///< I term for fresh dialysate pump delta pressure control. Index: firmware/App/DDCommon.h =================================================================== diff -u -r445cfa2348b9fa0610e35475d63a1f008e2d6750 -rc400845083cc6fc90f70f308ae953e05b45acbf8 --- firmware/App/DDCommon.h (.../DDCommon.h) (revision 445cfa2348b9fa0610e35475d63a1f008e2d6750) +++ firmware/App/DDCommon.h (.../DDCommon.h) (revision c400845083cc6fc90f70f308ae953e05b45acbf8) @@ -51,6 +51,9 @@ //Uncomment below for bicarb chamber filling //#define __BICARB_CHAMBER_FILL__ 1 +//Uncomment below for Maxon controller speed change +#define __MAXON_SPEED_UPDATE__ 1 + //Uncomment below to disable heaters debug message #define __HEATERS_DEBUG__ 1 Index: firmware/App/Modes/ModeGenDialysate.c =================================================================== diff -u -rb4e581d847579ffd65e15822b67def7f64212481 -rc400845083cc6fc90f70f308ae953e05b45acbf8 --- firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision b4e581d847579ffd65e15822b67def7f64212481) +++ firmware/App/Modes/ModeGenDialysate.c (.../ModeGenDialysate.c) (revision c400845083cc6fc90f70f308ae953e05b45acbf8) @@ -60,7 +60,7 @@ #define LINEAR_SLOPE_FACTOR -0.0029F ///< Slope factor used in adjusted dialysate temperature linear calculation for high Qds #define LINEAR_INTERCEPT_FACTOR 3.47F ///< Intercept factor used in adjusted dialysate temperature linear calculation for high Qds #define LOW_DIAL_FLOW_RATE 150.0F ///< Dialysate flow rate lesser than 150 considered to be low Qds. -#define SPENT_CHAMBER_FILL_MAX_COUNT 15 ///< Total number of spent chamber fill allowed. +#define SPENT_CHAMBER_FILL_MAX_COUNT 10 ///< Total number of spent chamber fill allowed. #define BICARB_CHAMBER_FILL_TIMEOUT ( 1 * MS_PER_SECOND ) ///< Bicarb chamber fill timeout. //Testing #define DELAY_BC_SWITCHING_AT_START_UP ( 10 * MS_PER_SECOND ) ///< Provide a balancing chamber switching start up delay to stabilize pump speed etc., Index: firmware/App/Modes/ModeGenDialysate.h =================================================================== diff -u -rb4e581d847579ffd65e15822b67def7f64212481 -rc400845083cc6fc90f70f308ae953e05b45acbf8 --- firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision b4e581d847579ffd65e15822b67def7f64212481) +++ firmware/App/Modes/ModeGenDialysate.h (.../ModeGenDialysate.h) (revision c400845083cc6fc90f70f308ae953e05b45acbf8) @@ -33,7 +33,7 @@ #define FRESH_DIAL_PUMP_INITIAL_RPM 2500 ///< Nominal RPM target for fresh dialysate pump to maintain required pressure. #define SPENT_DIAL_PUMP_INITIAL_RPM 2300 ///< Nominal RPM target for spent dialysate pump to maintain required pressure. -#define SPENT_DIAL_PUMP_FILL_RPM 350 ///< Nominal RPM target for spent chamber fill operations. +#define SPENT_DIAL_PUMP_FILL_RPM 200 ///< Nominal RPM target for spent chamber fill operations. /// Generate dialysate mode data structure typedef struct Index: firmware/App/Services/FpgaDD.c =================================================================== diff -u -r812ad8c00b6e976736cc3af210adeaa125f5478d -rc400845083cc6fc90f70f308ae953e05b45acbf8 --- firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision 812ad8c00b6e976736cc3af210adeaa125f5478d) +++ firmware/App/Services/FpgaDD.c (.../FpgaDD.c) (revision c400845083cc6fc90f70f308ae953e05b45acbf8) @@ -102,6 +102,10 @@ #define FPGA_D5_HEATER_CNTRL_BIT 0x01 ///< FPGA GIO D5 heater control bit mask #define FPGA_D5_HEATER_PWM_ENABLE_BIT 0x02 ///< FPGA D5 PWM based heater control bit mask +#define MAX_PUMP_SPEED 3000.0F ///< Maxon controller pump maximum speed +#define PUMP_SPEED_OFFSET 168.7F ///< Speed Scale adjustment intercept factor +#define PUMP_SPEED_FULL_SCALE 3187.0F ///< Speed scale adjustment slope factor + /// FPGA size of V3 read bytes. #define FPGA_SIZE_OF_V3_READ_BYTES ( FPGA_READ_V3_END_BYTE_NUM - FPGA_READ_V3_START_BYTE_NUM ) @@ -568,7 +572,16 @@ *************************************************************************/ void setFPGAD48PumpSpeed( U16 speed ) { - fpgaActuatorSetPoints.fpgaD48PumpSpeed = speed; +#ifdef __MAXON_SPEED_UPDATE__ + { + U16 currentSpeed =(U16)( ( ( speed + PUMP_SPEED_OFFSET ) / PUMP_SPEED_FULL_SCALE ) * MAX_PUMP_SPEED ); + fpgaActuatorSetPoints.fpgaD48PumpSpeed = currentSpeed; + } +#else + { + fpgaActuatorSetPoints.fpgaD48PumpSpeed = speed; + } +#endif } /*********************************************************************//** @@ -582,7 +595,16 @@ *************************************************************************/ void setFPGAD12PumpSpeed( U16 speed ) { - fpgaActuatorSetPoints.fpgaD12PumpSpeed = speed; +#ifdef __MAXON_SPEED_UPDATE__ + { + U16 currentSpeed =(U16)( ( ( speed + PUMP_SPEED_OFFSET ) / PUMP_SPEED_FULL_SCALE ) * MAX_PUMP_SPEED ); + fpgaActuatorSetPoints.fpgaD12PumpSpeed = currentSpeed; + } +#else + { + fpgaActuatorSetPoints.fpgaD12PumpSpeed = speed; + } +#endif } /*********************************************************************//**