Index: firmware/App/Controllers/Pressures.c =================================================================== diff -u -r0831cb6bf766fe461340b711f2ff14c3d797e10d -rebd11d01f826a08806d2f4984bd57e829371b687 --- firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision 0831cb6bf766fe461340b711f2ff14c3d797e10d) +++ firmware/App/Controllers/Pressures.c (.../Pressures.c) (revision ebd11d01f826a08806d2f4984bd57e829371b687) @@ -171,23 +171,23 @@ PRESSURE_STATE_T result = PRESSURE_CONTINUOUS_READ_STATE; // get latest raw pressure readings - measuredPressureReadingsRaw[ INT_ADC_RO_PUMP_INLET_PRESSURE ] = (S32)getIntADCReading( INT_ADC_RO_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - measuredPressureReadingsRaw[ INT_ADC_RO_PUMP_OUTLET_PRESSURE ] = (S32)getIntADCReading( INT_ADC_RO_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - measuredPressureReadingsRaw[ INT_ADC_DRAIN_PUMP_INLET_PRESSURE ] = (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; - measuredPressureReadingsRaw[ INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ] = (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; + measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_INLET ] = (S32)getIntADCReading( INT_ADC_RO_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; + measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] = (S32)getIntADCReading( INT_ADC_RO_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; + measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] = (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_INLET_PRESSURE ) - PUMP_PRESSURE_ZERO; + measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] = (S32)getIntADCReading( INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ) - PUMP_PRESSURE_ZERO; // update sums for pressure average calculations - measuredPressureReadingsSum[ INT_ADC_RO_PUMP_INLET_PRESSURE ] += measuredPressureReadingsRaw[ INT_ADC_RO_PUMP_INLET_PRESSURE ]; - measuredPressureReadingsSum[ INT_ADC_RO_PUMP_OUTLET_PRESSURE ] += measuredPressureReadingsRaw[ INT_ADC_RO_PUMP_OUTLET_PRESSURE ]; - measuredPressureReadingsSum[ INT_ADC_DRAIN_PUMP_INLET_PRESSURE ] += measuredPressureReadingsRaw[ INT_ADC_DRAIN_PUMP_INLET_PRESSURE ]; - measuredPressureReadingsSum[ INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ] += measuredPressureReadingsRaw[ INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ]; + measuredPressureReadingsSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_INLET ]; + measuredPressureReadingsSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_RO_PUMP_OUTLET ]; + measuredPressureReadingsSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ]; + measuredPressureReadingsSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] += measuredPressureReadingsRaw[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ]; // filter every 200ms if ( ++pressureFilterCounter >= PRESSURE_SAMPLES_TO_AVERAGE ) { // calculate average pressures - F32 avgRoIn = (F32)measuredPressureReadingsSum[ INT_ADC_RO_PUMP_INLET_PRESSURE ] * PRESSURE_AVERAGE_MULTIPLIER; - F32 avgRoOut = (F32)measuredPressureReadingsSum[ INT_ADC_RO_PUMP_OUTLET_PRESSURE ] * PRESSURE_AVERAGE_MULTIPLIER; - F32 avgDrnIn = (F32)measuredPressureReadingsSum[ INT_ADC_DRAIN_PUMP_INLET_PRESSURE ] * PRESSURE_AVERAGE_MULTIPLIER; - F32 avgDrnOut = (F32)measuredPressureReadingsSum[ INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE ] * PRESSURE_AVERAGE_MULTIPLIER; + F32 avgRoIn = (F32)measuredPressureReadingsSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] * PRESSURE_AVERAGE_MULTIPLIER; + F32 avgRoOut = (F32)measuredPressureReadingsSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] * PRESSURE_AVERAGE_MULTIPLIER; + F32 avgDrnIn = (F32)measuredPressureReadingsSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] * PRESSURE_AVERAGE_MULTIPLIER; + F32 avgDrnOut = (F32)measuredPressureReadingsSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] * PRESSURE_AVERAGE_MULTIPLIER; // reset average counter pressureFilterCounter = 0; @@ -199,7 +199,7 @@ pressures[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ].data = avgDrnOut * PUMP_PRESSURE_PSIA_PER_COUNT - PUMP_PRESSURE_PSIA_TO_PSI_OFFSET; // reset sums for next averaging - measuredPressureReadingsSum[ INT_ADC_RO_PUMP_INLET_PRESSURE ] = 0; + measuredPressureReadingsSum[ PRESSURE_SENSOR_RO_PUMP_INLET ] = 0; measuredPressureReadingsSum[ PRESSURE_SENSOR_RO_PUMP_OUTLET ] = 0; measuredPressureReadingsSum[ PRESSURE_SENSOR_DRAIN_PUMP_INLET ] = 0; measuredPressureReadingsSum[ PRESSURE_SENSOR_DRAIN_PUMP_OUTLET ] = 0; Index: firmware/App/Drivers/InternalADC.c =================================================================== diff -u -ra49bd0780d97bb4ce04a9d7b128a6e3c2df044e1 -rebd11d01f826a08806d2f4984bd57e829371b687 --- firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision a49bd0780d97bb4ce04a9d7b128a6e3c2df044e1) +++ firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision ebd11d01f826a08806d2f4984bd57e829371b687) @@ -18,12 +18,18 @@ #include "InternalADC.h" +/** + * @addtogroup InternalADC + * @{ + */ + // ********** private definitions ********** -#define MAX_ADC_CHANNELS 24 // ADC supports up to 24 channels -#define SIZE_OF_ROLLING_AVG 16 // samples in rolling average calculations -#define ROLLING_AVG_SHIFT_DIVIDER 4 // rolling average shift divider +#define MAX_ADC_CHANNELS 24 ///< DG internal ADC supports up to 24 channels. +#define SIZE_OF_ROLLING_AVG 16 ///< Number of DG internal ADC samples in rolling average calculations for each channel. +#define ROLLING_AVG_SHIFT_DIVIDER 4 ///< Rolling average shift divider for DG internal ADC readings. +/// ADC channel # to ADC channel ID (enumeration) look-up table. const INT_ADC_CHANNEL_T adcChannelNum2ChannelId[ MAX_ADC_CHANNELS ] = { INT_ADC_RO_PUMP_INLET_PRESSURE, // 0 @@ -54,13 +60,13 @@ // ********** private data ********** -static adcData_t adcRawReadings[ NUM_OF_INT_ADC_CHANNELS ]; // buffer holds latest adc channel readings -static U32 adcRawReadingsCount = 0; // readings count for raw readings buffer +static adcData_t adcRawReadings[ NUM_OF_INT_ADC_CHANNELS ]; ///< buffer holds latest adc channel readings. +static U32 adcRawReadingsCount = 0; ///< readings count for raw readings buffer. -static U16 adcReadings[ NUM_OF_INT_ADC_CHANNELS ][ SIZE_OF_ROLLING_AVG ]; // holds samples for each channel for a rolling average -static U32 adcReadingsIdx[ NUM_OF_INT_ADC_CHANNELS ]; // index for next reading in each rolling average array -static U32 adcReadingsTotals[ NUM_OF_INT_ADC_CHANNELS ]; // rolling total for each channel - used to calc average -static U32 adcReadingsAvgs[ NUM_OF_INT_ADC_CHANNELS ]; // rolling average for each channel +static U16 adcReadings[ NUM_OF_INT_ADC_CHANNELS ][ SIZE_OF_ROLLING_AVG ]; ///< buffer holds samples for each channel for a rolling average. +static U32 adcReadingsIdx[ NUM_OF_INT_ADC_CHANNELS ]; ///< index for next reading in each rolling average buffer. +static U32 adcReadingsTotals[ NUM_OF_INT_ADC_CHANNELS ]; ///< rolling sum for each ADC channel - used to calc average. +static U32 adcReadingsAvgs[ NUM_OF_INT_ADC_CHANNELS ]; ///< rolling average for each ADC channel. // ********** private function prototypes ********** @@ -181,3 +187,4 @@ return result; } +/**@}*/ Index: firmware/App/Drivers/InternalADC.h =================================================================== diff -u -ra49bd0780d97bb4ce04a9d7b128a6e3c2df044e1 -rebd11d01f826a08806d2f4984bd57e829371b687 --- firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision a49bd0780d97bb4ce04a9d7b128a6e3c2df044e1) +++ firmware/App/Drivers/InternalADC.h (.../InternalADC.h) (revision ebd11d01f826a08806d2f4984bd57e829371b687) @@ -19,41 +19,46 @@ #include "DGCommon.h" +/** + * @defgroup InternalADC InternalADC + * @brief DG internal ADC module. + * + * @addtogroup InternalADC + * @{ + */ + // ********** public definitions ********** -#define INT_ADC_BITS_PER_CHANNEL 12 -#define INT_ADC_FULL_SCALE_BITS 4096 -#ifndef BREADBOARD_TARGET - #define INT_ADC_REF_V 3.0 -#else - #define INT_ADC_REF_V 3.3 -#endif +#define INT_ADC_BITS_PER_CHANNEL 12 ///< DG internal ADC bits per channel. +#define INT_ADC_FULL_SCALE_BITS 4096 ///< DG internal ADC full scale range. +#define INT_ADC_REF_V 3.0 ///< DG internal ADC reference voltage. +/// Enumeration of DG internal ADC channels. typedef enum Int_ADC_Channels { - INT_ADC_NOT_USED = 0, - INT_ADC_RO_PUMP_INLET_PRESSURE, - INT_ADC_RO_PUMP_OUTLET_PRESSURE, - INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE, - INT_ADC_DRAIN_PUMP_INLET_PRESSURE, - INT_ADC_CONCENTRATE_PUMP_1, - INT_ADC_CONCENTRATE_PUMP_2, - INT_ADC_PRIMARY_HEATER_24_VOLTS, - INT_ADC_TRIMMER_HEATER_24_VOLTS, - INT_ADC_BOARD_THERMISTOR, - INT_ADC_FPGA_1_8_VOLTS, - INT_ADC_FPGA_1_VOLT, - INT_ADC_PROCESSOR_1_8_VOLTS, - INT_ADC_PROCESSOR_1_2_VOLTS, - INT_ADC_SENSORS_3_3_VOLTS, - INT_ADC_SENSORS_5_VOLTS, - INT_ADC_SENSORS_6_VOLTS, - INT_ADC_LOGIC_5_VOLTS, - INT_ADC_3_3_VOLTS, - INT_ADC_REFERENCE_VOLTAGE, - INT_ADC_REF_IN1, - INT_ADC_REF_IN2, - NUM_OF_INT_ADC_CHANNELS + INT_ADC_NOT_USED = 0, ///< DG internal ADC channel not used. + INT_ADC_RO_PUMP_INLET_PRESSURE, ///< DG internal ADC RO pump inlet pressure channel. + INT_ADC_RO_PUMP_OUTLET_PRESSURE, ///< DG internal ADC RO pump outlet pressure channel. + INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE, ///< DG internal ADC drain pump outlet pressure channel. + INT_ADC_DRAIN_PUMP_INLET_PRESSURE, ///< DG internal ADC drain pump inlet pressure channel. + INT_ADC_CONCENTRATE_PUMP_1, ///< DG internal ADC concentrate pump #1 channel. + INT_ADC_CONCENTRATE_PUMP_2, ///< DG internal ADC concentrate pump #2 channel. + INT_ADC_PRIMARY_HEATER_24_VOLTS, ///< DG internal ADC primary heater 24 volt supply channel. + INT_ADC_TRIMMER_HEATER_24_VOLTS, ///< DG internal ADC trimmer heater 24 volt supply channel. + INT_ADC_BOARD_THERMISTOR, ///< DG internal ADC DG board thermistor channel. + INT_ADC_FPGA_1_8_VOLTS, ///< DG internal ADC DG FPGA 1.8 volt supply channel. + INT_ADC_FPGA_1_VOLT, ///< DG internal ADC DG FPGA 1 volt supply channel. + INT_ADC_PROCESSOR_1_8_VOLTS, ///< DG internal ADC DG processor 1.8 volt supply channel. + INT_ADC_PROCESSOR_1_2_VOLTS, ///< DG internal ADC DG processor 1.2 volt supply channel. + INT_ADC_SENSORS_3_3_VOLTS, ///< DG internal ADC DG sensors 3.3 volt supply channel. + INT_ADC_SENSORS_5_VOLTS, ///< DG internal ADC DG sensors 5 volt supply channel. + INT_ADC_SENSORS_6_VOLTS, ///< DG internal ADC DG sensors 6 volt supply channel. + INT_ADC_LOGIC_5_VOLTS, ///< DG internal ADC DG logic 5 volt supply channel. + INT_ADC_3_3_VOLTS, ///< DG internal ADC DG 3.3 volt supply channel. + INT_ADC_REFERENCE_VOLTAGE, ///< DG internal ADC reference voltage channel. + INT_ADC_REF_IN1, ///< DG internal ADC ??? channel. TODO + INT_ADC_REF_IN2, ///< DG internal ADC ??? channel. TODO + NUM_OF_INT_ADC_CHANNELS ///< Number of DG internal ADC channels } INT_ADC_CHANNEL_T; // ********** public function prototypes ********** @@ -62,4 +67,6 @@ void execInternalADC( void ); U16 getIntADCReading( INT_ADC_CHANNEL_T channel ); +/**@}*/ + #endif