Index: firmware/App/Services/FpgaTD.c =================================================================== diff -u -r961784c895cb8f551a2623cd02dcbfe42d04b7c2 -r285b5d82539c96524c93703d52a66fff76fb64fc --- firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 961784c895cb8f551a2623cd02dcbfe42d04b7c2) +++ firmware/App/Services/FpgaTD.c (.../FpgaTD.c) (revision 285b5d82539c96524c93703d52a66fff76fb64fc) @@ -50,6 +50,7 @@ #define FPGA_H4_HOME_BIT_MASK 0x04 ///< Bit mask for requesting a blood pump home operation. #define FPGA_H13_OPEN_BIT_MASK 0x01 ///< Bit mask for setting H13 valve position to open. +#define FPGA_H20_OPEN_BIT_MASK 0x02 ///< Bit mask for setting H20 valve position to open. #define FPGA_INPUT_VOLTAGE_SCALE 3.0F ///< FPGA source and aux voltage. #define FPGA_PVN_VOLTAGE_SCALE 1.0F ///< FPGA pvn voltage. @@ -143,8 +144,8 @@ typedef struct { U16 fpgaGenWrRd; ///< Reg 04. FPGA general write/read-back register (mirrored to a general read register in read page at addr 256). - U08 h13Control; ///< Reg 06. H13 valve control register. - U08 h13PWMEnable; ///< Reg 07. H13 valve PWM enable register. + U08 airTrapControl; ///< Reg 06. Air trap valve control register. + U08 airTrapPWMEnable; ///< Reg 07. Air trap valve PWM enable register. U16 h13PWMLowPeriod; ///< Reg 08. H13 PWM low signal period register. U16 h13PWMPeriod; ///< Reg 10. H13 PWM period register. U16 h13PWMPUllInTime; ///< Reg 12. H13 PWM pull in time register. @@ -700,20 +701,55 @@ * @param state : The valve state to command H13 valve to * @return none *************************************************************************/ -void setH13ValveState( OPN_CLS_STATE_T state ) +void setH13ValveState( VALVE_3WAY_STATE_T state ) { - if ( STATE_OPEN == state ) + if ( VALVE_3WAY_COMMON_TO_OPEN_STATE == state ) { - fpgaActuatorSetPoints.h13Control |= FPGA_H13_OPEN_BIT_MASK; + fpgaActuatorSetPoints.airTrapControl |= FPGA_H13_OPEN_BIT_MASK; } else { - fpgaActuatorSetPoints.h13Control &= ~((U08)FPGA_H13_OPEN_BIT_MASK); + fpgaActuatorSetPoints.airTrapControl &= ~((U08)FPGA_H13_OPEN_BIT_MASK); } } /*********************************************************************//** * @brief + * The setH20ValveState function sets the command position for H20 valve. + * @note VBTControl register bit 0 will drive state of H13 valve (0=closed, 1=open). + * @details \b Inputs: fpgaActuatorSetPoints + * @details \b Outputs: fpgaActuatorSetPoints + * @param state : The valve state to command H13 valve to + * @return none + *************************************************************************/ +void setH20ValveState( VALVE_3WAY_STATE_T state ) +{ + if ( VALVE_3WAY_COMMON_TO_OPEN_STATE == state ) + { + fpgaActuatorSetPoints.airTrapControl |= FPGA_H20_OPEN_BIT_MASK; + } + else + { + fpgaActuatorSetPoints.airTrapControl &= ~((U08)FPGA_H20_OPEN_BIT_MASK); + } +} + +/*********************************************************************//** + * @brief + * The setAirPumpMotorPowerLevel function sets the air pump motor power level + * to 0 to turn pump off or 1..255 for varying power levels. + * @details \b Inputs: fpgaActuatorSetPoints.h12Control + * @details \b Outputs: fpgaActuatorSetPoints.h12Control + * @param power : The set power level to set the H12 air pump to. + * @return none + *************************************************************************/ +void setAirPumpMotorPowerLevel( U08 power ) +{ + fpgaActuatorSetPoints.h12Control = power; +} + +/*********************************************************************//** + * @brief * The H18BubbleDetected function determines whether H18 bubble detector * sensor is currently detecting a bubble. * @details \b Inputs: fpgaSensorReadings