Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r0c296cef29037819be204c45a23d4d38a52b2718 -r589df03bef5f0c74dfbbf5732da28dded250471e --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 0c296cef29037819be204c45a23d4d38a52b2718) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 589df03bef5f0c74dfbbf5732da28dded250471e) @@ -7,8 +7,8 @@ * * @file Pressures.c * -* @author (last) Dara Navaei -* @date (last) 09-Oct-2022 +* @author (last) Michael Garthwaite +* @date (last) 19-Oct-2022 * * @author (original) Sean * @date (original) 04-Apr-2020 @@ -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;