Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r0c296cef29037819be204c45a23d4d38a52b2718 -r984bfc66d6fe07456671a1039472356871f0161c --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 0c296cef29037819be204c45a23d4d38a52b2718) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 984bfc66d6fe07456671a1039472356871f0161c) @@ -37,12 +37,14 @@ // ********** private definitions ********** -#define PUMP_PRESSURE_ZERO 777 ///< ADC counts equivalent to 0 PSI for pump in/out pressure sensors. -#define PUMP_PRESSURE_PSIA_PER_COUNT 0.06434F ///< PSIA per ADC count conversion factor for pump in/out pressure sensors. +#define PUMP_PRESSURE_ZERO 759 ///< ADC counts equivalent to 0 PSI for pump in/out pressure sensors. +#define PUMP_PRESSURE_PSIA_PER_COUNT 0.06583F ///< PSIA per ADC count conversion factor for pump in/out pressure sensors. +#define PUMP_V3_PRESSURE_ZERO 782 ///< Beta ADC counts equivalent to 0 psi for pump in/out pressure sensors. +#define PUMP_V3_PRESSURE_PSIA_PER_COUNT 0.065359F ///< Beta PSIA ADC count conversion factor for pump in/out pressure sensors. #define PUMP_PRESSURE_PSIA_TO_PSI_OFFSET 14.7F ///< Subtract this offset to convert PSIA to PSI. #define ONE_BAR_TO_PSI_CONVERSION 14.5F ///< 1 bar to PSI conversion. -#define ONE_BAR_TO_MILLI_BAR 1000 ///< 1 bar to milli bar conversion. -#define COUNTS_TO_MILLI_BAR 100 ///< Counts to milli bar conversion. +#define ONE_BAR_TO_MILLI_BAR 1000 ///< 1 bar to milli-bar conversion. +#define COUNTS_TO_MILLI_BAR 100 ///< Counts to milli-bar conversion. #define PRESSURE_SAMPLES_TO_AVERAGE ( 200 / TASK_PRIORITY_INTERVAL ) ///< Averaging pressure data over the reporting interval. #define PRESSURE_AVERAGE_MULTIPLIER ( 1.0F / (F32)PRESSURE_SAMPLES_TO_AVERAGE ) ///< Optimization - multiplying is faster than dividing. @@ -301,15 +303,28 @@ static PRESSURE_STATE_T handlePressuresContReadState( void ) { PRESSURE_STATE_T result = PRESSURE_CONTINUOUS_READ_STATE; + U32 zeroPressureOffset = PUMP_PRESSURE_ZERO; + F32 count2PressureConv = PUMP_PRESSURE_PSIA_PER_COUNT; U08 sensorId; F32 pressureReading; BOOL isPressureOutOfRange; +#ifndef _RELEASE_ + if ( SW_CONFIG_ENABLE_VALUE == getSoftwareConfigStatus( SW_CONFIG_ENABLE_V3_SYSTEM ) ) + { + if ( getCurrentOperationMode() != DG_MODE_INIT ) + { + zeroPressureOffset = PUMP_V3_PRESSURE_ZERO; + count2PressureConv = PUMP_V3_PRESSURE_PSIA_PER_COUNT; + } + } +#endif + // Update sums for pressure average calculations - msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] += (S32)getIntADCReading( INT_ADC_RO_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] += (S32)getIntADCReading( INT_ADC_RO_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] += (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] += (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; + msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] += (S32)getIntADCReading( INT_ADC_RO_PUMP_INLET_PRESSURE ) - zeroPressureOffset; + msrdPressureSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] += (S32)getIntADCReading( INT_ADC_RO_PUMP_OUTLET_PRESSURE ) - zeroPressureOffset; + msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] += (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_INLET_PRESSURE ) - zeroPressureOffset; + msrdPressureSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] += (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ) - zeroPressureOffset; msrdPressureSum[ PRESSURE_SENSOR_BAROMETRIC ] += (S32)( getFPGABaroPressure() & MASK_OFF_U32_MSB ); // Check if a new calibration is available @@ -337,7 +352,7 @@ case PRESSURE_SENSOR_RO_PUMP_OUTLET: case PRESSURE_SENSOR_DRAIN_PUMP_OUTLET: case PRESSURE_SENSOR_DRAIN_PUMP_INLET: - pressureBeforeCal = ( adcSum * PUMP_PRESSURE_PSIA_PER_COUNT ) - baroPressure; + pressureBeforeCal = ( adcSum * count2PressureConv ) - baroPressure; pressures[ sensorId ].data = getCalibrationAppliedPressure( sensorId, pressureBeforeCal ); msrdPressureSum[ sensorId ] = 0; break;