Index: firmware/App/Drivers/InternalADC.c =================================================================== diff -u -r0b17c6271cdc3c55697a74ecaadb477d9c8f5687 -r35de566c96433689821b7a21f731df26b40d67ae --- firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision 0b17c6271cdc3c55697a74ecaadb477d9c8f5687) +++ firmware/App/Drivers/InternalADC.c (.../InternalADC.c) (revision 35de566c96433689821b7a21f731df26b40d67ae) @@ -37,12 +37,12 @@ INT_ADC_RO_PUMP_OUTLET_PRESSURE, // 1 INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE, // 2 INT_ADC_DRAIN_PUMP_INLET_PRESSURE, // 3 - INT_ADC_NOT_USED, // 4 + INT_ADC_MAIN_24_VOLTS, // 4 INT_ADC_FPGA_1_8_VOLTS, // 5 INT_ADC_FPGA_1_VOLT, // 6 INT_ADC_SENSORS_3_3_VOLTS, // 7 INT_ADC_PROCESSOR_1_8_VOLTS, // 8 - INT_ADC_SENSORS_6_VOLTS, // 9 + INT_ADC_POWER_SUPPLY_GATE_DRIVER, // 9 INT_ADC_SENSORS_5_VOLTS, // 10 INT_ADC_LOGIC_5_VOLTS, // 11 INT_ADC_3_3_VOLTS, // 12 @@ -59,6 +59,35 @@ INT_ADC_POWER_SUPPLY_2_THERMISTOR, // 23 }; +const F32 ADC_CHANNEL_READ_TO_UNITS[ NUM_OF_INT_ADC_CHANNELS ] = +{ // TODO - get conversion for these channels + 0.0, // - INT_ADC_NOT_USED + 0.06434, // PSIA- INT_ADC_RO_PUMP_INLET_PRESSURE + 0.06434, // PSIA- INT_ADC_RO_PUMP_OUTLET_PRESSURE + 0.06434, // PSIA- INT_ADC_DRAIN_PUMP_OUTLET_PRESSURE + 0.06434, // PSIA- INT_ADC_DRAIN_PUMP_INLET_PRESSURE + 1.0, // ? - INT_ADC_CONCENTRATE_PUMP_1 + 1.0, // ? - INT_ADC_CONCENTRATE_PUMP_2 + 1.0, // V - INT_ADC_PRIMARY_HEATER_24_VOLTS + 1.0, // V - INT_ADC_TRIMMER_HEATER_24_VOLTS + 1.0, // C - INT_ADC_BOARD_THERMISTOR + 1.0, // V - INT_ADC_FPGA_1_8_VOLTS + 1.0, // V - INT_ADC_FPGA_1_VOLT + 1.0, // V - INT_ADC_PROCESSOR_1_8_VOLTS + 1.0, // V - INT_ADC_PROCESSOR_1_2_VOLTS + 1.0, // V - INT_ADC_SENSORS_3_3_VOLTS + 1.0, // V - INT_ADC_SENSORS_5_VOLTS + 1.0, // V - INT_ADC_MAIN_24_VOLTS + 1.0, // V - INT_ADC_LOGIC_5_VOLTS + 1.0, // V - INT_ADC_3_3_VOLTS + 1.0, // V - INT_ADC_REFERENCE_VOLTAGE + 1.0, // V - INT_ADC_REF_IN1 + 1.0, // V - INT_ADC_REF_IN2 + 1.0, // C - INT_ADC_POWER_SUPPLY_1_THERMISTOR + 1.0, // C - INT_ADC_POWER_SUPPLY_2_THERMISTOR + 1.0 // V - INT_ADC_POWER_SUPPLY_GATE_DRIVER +}; + // ********** private data ********** static adcData_t adcRawReadings[ NUM_OF_INT_ADC_CHANNELS ]; ///< Buffer holds latest adc channel readings. @@ -178,4 +207,29 @@ return result; } +/*********************************************************************//** + * @brief + * The getIntADCVoltageConverted function gets the latest average voltage + * (converted per transfer function) for a given channel. + * @details Inputs: adcReadingsAvgs[], ADC_CHANNEL_READ_TO_UNITS[] + * @details Outputs: none + * @param channel adc channel to retrieve a converted voltage for + * @return average converted voltage for the given channel + *************************************************************************/ +F32 getIntADCVoltageConverted( INT_ADC_CHANNEL_T channel ) +{ + F32 result = 0.0; + + if ( channel < NUM_OF_INT_ADC_CHANNELS ) + { + result = (F32)adcReadingsAvgs[ channel ] * ADC_CHANNEL_READ_TO_UNITS[ channel ]; + } + else + { + SET_ALARM_WITH_2_U32_DATA( ALARM_ID_DG_SOFTWARE_FAULT, SW_FAULT_ID_INT_ADC_INVALID_CHANNEL_REQUESTED, channel ) + } + + return result; +} + /**@}*/