Index: firmware/App/Controllers/AirPump.c =================================================================== diff -u -re7525696d18a5a7c7481fc6a920e95d227a6e72f -r74fb4e00de266776cfc5d92163592ee895c23ed0 --- firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision e7525696d18a5a7c7481fc6a920e95d227a6e72f) +++ firmware/App/Controllers/AirPump.c (.../AirPump.c) (revision 74fb4e00de266776cfc5d92163592ee895c23ed0) @@ -93,6 +93,8 @@ BOOL setAirPumpState( AIR_PUMP_STATE_T state, F32 power ) { BOOL result = FALSE; + + //There is a limitation on the TD circuit to be able to run the pump at the low speed. change planned in next version of the board. right now limiting the pump duty cycle below 24% //BOOL validInput = ( power == AIR_PUMP_DUTY_CYCLE_MIN) || ( power >= AIR_PUMP_DUTY_CYCLE_LIMIT && power <= AIR_PUMP_DUTY_CYCLE_MAX); BOOL validInput = ( ( ( power >= AIR_PUMP_DUTY_CYCLE_MIN ) && ( power <= AIR_PUMP_DUTY_CYCLE_MAX ) ) && ( FALSE == ( ( power > AIR_PUMP_DUTY_CYCLE_MIN ) && ( power < AIR_PUMP_DUTY_CYCLE_LIMIT ) ) ) ); // need to pass the result immediately to user when user enter invalid range @@ -142,6 +144,7 @@ *************************************************************************/ void execAirPumpController( void ) { + // update the speed every tick currentAirPumpRPM = getAirPumpMotorRPM(); switch( currentAirPumpState ) @@ -240,7 +243,7 @@ data.h12Power = currentAirPumpPowerLevel; data.h12Rpm = (U32)currentAirPumpRPM; //TODO:remove after validating pump speed - data.fpgah12Rpm = getH12AirPumpMotorRPM(); + data.fpgah12Rpm = getAirPumpMotorFPGARPM(); //TODO:remove after validating pump speed data.scalarPower = getAirPumpMotorScalarPower(); Index: firmware/App/Controllers/AirTrap.c =================================================================== diff -u -re7525696d18a5a7c7481fc6a920e95d227a6e72f -r74fb4e00de266776cfc5d92163592ee895c23ed0 --- firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision e7525696d18a5a7c7481fc6a920e95d227a6e72f) +++ firmware/App/Controllers/AirTrap.c (.../AirTrap.c) (revision 74fb4e00de266776cfc5d92163592ee895c23ed0) @@ -55,7 +55,7 @@ /// LDT-2384 test formula for air trap lower events for air pump duty cycle based on venous pressure /// air pump lowering duty cycle (% PWM) = 0.0005x^2 + 0.2313x + 63.667, where x is long filtered (60 sec) H14 venous pressure in mmHg before air pump lower event #define QUADRATIC_COEFFICIENT 0.0005F ///< X2 quadratic coefficient -#define LINEAR_COEFFICIENT 00.2313 ///< X linear coefficient +#define LINEAR_COEFFICIENT 0.2313F ///< X linear coefficient #define CONSTANT_TERM 63.667F ///< Constant term /// Defined states for the air trap controller state machine. Index: firmware/App/Drivers/GLXferPump.c =================================================================== diff -u -r1e806f55dd70e314a8bbb70c5233443dc807998a -r74fb4e00de266776cfc5d92163592ee895c23ed0 --- firmware/App/Drivers/GLXferPump.c (.../GLXferPump.c) (revision 1e806f55dd70e314a8bbb70c5233443dc807998a) +++ firmware/App/Drivers/GLXferPump.c (.../GLXferPump.c) (revision 74fb4e00de266776cfc5d92163592ee895c23ed0) @@ -110,6 +110,21 @@ /*********************************************************************//** * @brief +* The getAirPumpMotorFPGARPM function reads the air pump RPM from FPGA. +* minimum RPM that reports is 400 rpm and anything slower considered 0 (0xFFFF) +* @details \b Inputs: none +* @details \b Outputs: none +* @return air pump motor FPGA_RPM value. +*************************************************************************/ +U16 getAirPumpMotorFPGARPM( void ) +{ + U16 fpgaRPM = getH12AirPumpMotorRPM(); + + return fpgaRPM; +} + +/*********************************************************************//** +* @brief * The getAirPumpMotorRPM function reads the air pump RPM from FPGA. * minimum RPM that reports is 400 rpm and anything slower considered 0 (0xFFFF) * to convert the real RPM, use the formula rpm = (60.0 / ( getH12AirPumpMotorRPM() * 10 * 1E-6 ) Index: firmware/App/Drivers/GLXferPump.h =================================================================== diff -u -re7525696d18a5a7c7481fc6a920e95d227a6e72f -r74fb4e00de266776cfc5d92163592ee895c23ed0 --- firmware/App/Drivers/GLXferPump.h (.../GLXferPump.h) (revision e7525696d18a5a7c7481fc6a920e95d227a6e72f) +++ firmware/App/Drivers/GLXferPump.h (.../GLXferPump.h) (revision 74fb4e00de266776cfc5d92163592ee895c23ed0) @@ -46,6 +46,8 @@ F32 getAirPumpMotorPower( void ); U16 getAirPumpMotorRPM( void ); // TODO:remove after testing +U16 getAirPumpMotorFPGARPM( void ); +// TODO:remove after testing F32 getAirPumpMotorScalarPower( void ); BOOL testSetAirPump( MESSAGE_T *message );