Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -rd38ccb51f7ee97a6cba54b24c900df6d9c1b42e6 -r841991c3676107d8ae45d967c28e656d6b111506 --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision d38ccb51f7ee97a6cba54b24c900df6d9c1b42e6) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 841991c3676107d8ae45d967c28e656d6b111506) @@ -41,7 +41,10 @@ #define PRESSURE_AVERAGE_MULTIPLIER ( 1.0 / (F32)PRESSURE_SAMPLES_TO_AVERAGE ) ///< Optimization - multiplying is faster than dividing. #define MIN_VALID_PRESSURE_RANGE 0.0 ///< Minimum valid range on pressure reading. -#define MAX_VALID_PRESSURE_RANGE 200.0 ///< Maximum valid range on pressure reading. +#define MAX_VALID_PRESSURE_RANGE 200.0 ///< Maximum valid range on pressure reading. +#define MIN_VALID_ADC_COUNT_RANGE 273 ///< Minimum valid adc count range. +#define MAX_VALID_ADC_COUNT_RANGE 3685 ///< Maximum valid adc count range. + #define MIN_INLET_WATER_PRESSURE 25 ///< Minimum water input pressure. #define INLET_WATER_PRESSURE_PERSISTENCE_PERIOD ( 5 * MS_PER_SECOND ) ///< Persistence period for pressure out of range error. #define PRESSURES_DATA_PUB_INTERVAL ( MS_PER_SECOND / TASK_PRIORITY_INTERVAL ) ///< Interval (ms/task time) at which the pressures data is published on the CAN bus. @@ -213,7 +216,8 @@ for ( sensorID = 0; sensorID < NUM_OF_PRESSURE_SENSORS; sensorID++ ) { pressureReading = getMeasuredDGPressure( sensorID ); - if ( ( pressureReading < MIN_VALID_PRESSURE_RANGE ) && ( pressureReading > MAX_VALID_PRESSURE_RANGE ) ) + if ( ( pressureReading < MIN_VALID_PRESSURE_RANGE ) || ( pressureReading > MAX_VALID_PRESSURE_RANGE ) || + ( measuredPressureReadingsRaw < MIN_VALID_ADC_COUNT_RANGE ) || ( measuredPressureReadingsRaw > MAX_VALID_ADC_COUNT_RANGE ) ) { SET_ALARM_WITH_2_F32_DATA( ALARM_ID_PRESSURE_SENSOR_FAULT, sensorID, pressureReading ); } Index: firmware/App/Controllers/Voltages.c =================================================================== diff -u -r5156a859330f51537606ffdab32ea63d8fac9cac -r841991c3676107d8ae45d967c28e656d6b111506 --- firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision 5156a859330f51537606ffdab32ea63d8fac9cac) +++ firmware/App/Controllers/Voltages.c (.../Voltages.c) (revision 841991c3676107d8ae45d967c28e656d6b111506) @@ -56,6 +56,8 @@ 3.3, // MONITORED_LINE_EXT_ADC_1_REF_V 3.3, // MONITORED_LINE_EXT_ADC_2_REF_V 5.5, // MONITORED_LINE_PS_GATE_DRIVER_V + 11.11, // MONITORED_LINE_VM_CP1 + 11.11, // MONITORED_LINE_VM_CP2 26.4, // MONITORED_LINE_24V_PRIM_HTR_V 26.4 // MONITORED_LINE_24V_TRIM_HTR_V }; @@ -75,6 +77,8 @@ 2.7, // MONITORED_LINE_EXT_ADC_1_REF_V 2.7, // MONITORED_LINE_EXT_ADC_2_REF_V 4.5, // MONITORED_LINE_PS_GATE_DRIVER_V + 9.09, // MONITORED_LINE_VM_CP1 + 9.09, // MONITORED_LINE_VM_CP2 0.0, // MONITORED_LINE_24V_PRIM_HTR_V 0.0 // MONITORED_LINE_24V_TRIM_HTR_V }; @@ -192,6 +196,8 @@ voltages[ MONITORED_LINE_EXT_ADC_1_REF_V ].data = getIntADCVoltageConverted( INT_ADC_REF_IN1 ); voltages[ MONITORED_LINE_EXT_ADC_2_REF_V ].data = getIntADCVoltageConverted( INT_ADC_REF_IN2 ); voltages[ MONITORED_LINE_PS_GATE_DRIVER_V ].data = getIntADCVoltageConverted( INT_ADC_POWER_SUPPLY_GATE_DRIVER ); + voltages[ MONITORED_LINE_VM_CP1 ].data = getIntADCVoltageConverted( INT_ADC_CONCENTRATE_PUMP_1 ); + voltages[ MONITORED_LINE_VM_CP1 ].data = getIntADCVoltageConverted( INT_ADC_CONCENTRATE_PUMP_1 ); voltages[ MONITORED_LINE_24V_PRIM_HTR_V ].data = getIntADCVoltageConverted( INT_ADC_PRIMARY_HEATER_24_VOLTS ); voltages[ MONITORED_LINE_24V_TRIM_HTR_V ].data = getIntADCVoltageConverted( INT_ADC_TRIMMER_HEATER_24_VOLTS ); Index: firmware/App/Controllers/Voltages.h =================================================================== diff -u -r5156a859330f51537606ffdab32ea63d8fac9cac -r841991c3676107d8ae45d967c28e656d6b111506 --- firmware/App/Controllers/Voltages.h (.../Voltages.h) (revision 5156a859330f51537606ffdab32ea63d8fac9cac) +++ firmware/App/Controllers/Voltages.h (.../Voltages.h) (revision 841991c3676107d8ae45d967c28e656d6b111506) @@ -34,23 +34,25 @@ /// Enumeration of voltages monitored by this module. typedef enum Voltages { - MONITORED_LINE_24V_MAIN = 0, ///< Main voltage (24V) - MONITORED_LINE_1_8V_FPGA, ///< FPGA logic voltage (1.8V) - MONITORED_LINE_1V_FPGA, ///< FPGA reference voltage (1V) - MONITORED_LINE_3_3V_SENSORS, ///< Sensors voltage (3.3V) - MONITORED_LINE_1_8V_PROC, ///< Processor voltage (1.8V) - MONITORED_LINE_5V_SENSORS, ///< Sensors voltage (5V) - MONITORED_LINE_5V_LOGIC, ///< Logic voltage (5V) - MONITORED_LINE_3_3V, ///< Logic voltage (3.3V) - MONITORED_LINE_1_2V_PROC, ///< Processor voltage (1.2V) - MONITORED_LINE_V_REF, ///< Reference voltage (3V) - MONITORED_LINE_EXT_ADC_1_REF_V, ///< External ADC 1 reference voltage (3V) - MONITORED_LINE_EXT_ADC_2_REF_V, ///< External ADC 2 reference voltage (3V) - MONITORED_LINE_PS_GATE_DRIVER_V, ///< INT_ADC_POWER_SUPPLY_GATE_DRIVER - MONITORED_LINE_LAST_RANGE_CHECKED_LINE = MONITORED_LINE_PS_GATE_DRIVER_V, ///< The last monitored line that is checked per fixed range. - MONITORED_LINE_24V_PRIM_HTR_V, ///< Primary heater voltage (24V) - MONITORED_LINE_24V_TRIM_HTR_V, ///< Trimmer heater voltage (24V) - NUM_OF_MONITORED_LINES ///< Number of monitored voltages + MONITORED_LINE_24V_MAIN = 0, ///< Main voltage (24V) + MONITORED_LINE_1_8V_FPGA, ///< FPGA logic voltage (1.8V) + MONITORED_LINE_1V_FPGA, ///< FPGA reference voltage (1V) + MONITORED_LINE_3_3V_SENSORS, ///< Sensors voltage (3.3V) + MONITORED_LINE_1_8V_PROC, ///< Processor voltage (1.8V) + MONITORED_LINE_5V_SENSORS, ///< Sensors voltage (5V) + MONITORED_LINE_5V_LOGIC, ///< Logic voltage (5V) + MONITORED_LINE_3_3V, ///< Logic voltage (3.3V) + MONITORED_LINE_1_2V_PROC, ///< Processor voltage (1.2V) + MONITORED_LINE_V_REF, ///< Reference voltage (3V) + MONITORED_LINE_EXT_ADC_1_REF_V, ///< External ADC 1 reference voltage (3V) + MONITORED_LINE_EXT_ADC_2_REF_V, ///< External ADC 2 reference voltage (3V) + MONITORED_LINE_PS_GATE_DRIVER_V, ///< P/S gate driver voltage (5V) + MONITORED_LINE_VM_CP1, ///< Concentrate pump CP1 voltage (10.1V) + MONITORED_LINE_VM_CP2, ///< Concentrate pump CP2 voltage (10.1V) + MONITORED_LINE_LAST_RANGE_CHECKED_LINE = MONITORED_LINE_VM_CP2, ///< The last monitored line that is checked per fixed range. + MONITORED_LINE_24V_PRIM_HTR_V, ///< Primary heater voltage (24V) + MONITORED_LINE_24V_TRIM_HTR_V, ///< Trimmer heater voltage (24V) + NUM_OF_MONITORED_LINES ///< Number of monitored voltages } MONITORED_VOLTAGES_T; /// Payload record structure for the voltages data message. @@ -68,6 +70,8 @@ F32 adc5VLogic; ///< Internal ADC channel for 5V to logic F32 adc5VSensors; ///< Internal ADC channel for 5V to sensors F32 adc5VPSGateDriver; ///< Internal ADC channel for 5V P/S gate driver + F32 adcVMCP1; ///< Internal ADC channel for concentrate pump CP1 + F32 adcVMCP2; ///< Internal ADC channel for concentrate pump CP2 F32 adc24V; ///< Internal ADC channel for 24V F32 adc24VPrimaryHtr; ///< Internal ADC channel for 24V to primary heater F32 adc24VTrimmerHtr; ///< Internal ADC channel for 24V to trimmer heater