/************************************************************************** * * Copyright (c) 2024-2024 Diality Inc. - All Rights Reserved. * * THIS CODE MAY NOT BE COPIED OR REPRODUCED IN ANY FORM, IN PART OR IN * WHOLE, WITHOUT THE EXPLICIT PERMISSION OF THE COPYRIGHT OWNER. * * @file InternalADC.h * * @author (last) Vinayakam Mani * @date (last) 14-Aug-2024 * * @author (original) Vinayakam Mani * @date (original) 13-Aug-2024 * ***************************************************************************/ #ifndef __INT_ADC_H__ #define __INT_ADC_H__ #include "DDCommon.h" /** * @defgroup InternalADC InternalADC * @brief DD internal ADC unit. This unit converts all analog channel (DD * different voltage rails, pressure, temperature) into digital value for further * processing ( monitoring and controls). * * @addtogroup InternalADC * @{ */ // ********** public definitions ********** #define INT_ADC_BITS_PER_CHANNEL 12 ///< DD internal ADC bits per channel. #define INT_ADC_FULL_SCALE_BITS 4095 ///< DD internal ADC full scale range. #define INT_ADC_REF_V 3.0F ///< DD internal ADC reference voltage. /// Enumeration of internal ADC channels that are used. typedef enum Int_ADC_Channels { INT_ADC_NOT_USED = 0, ///< Not used INT_ADC_PRIMARY_ALARM_CURRENT_HG, ///< Internal ADC channel for primary alarm audio current high gain INT_ADC_PRIMARY_ALARM_CURRENT_LG, ///< Internal ADC channel for primary alarm audio current low gain INT_ADC_5V_LOGIC, ///< Internal ADC channel for 5V to logic INT_ADC_3_3V, ///< Internal ADC channel for 3.3V INT_ADC_1_2V_PROCESSOR, ///< Internal ADC channel for 1.2V to processor INT_ADC_1_8V_XADC, ///< Internal ADC channel for 1.8V external ADC INT_ADC_1V_FPGA, ///< Internal ADC channel for 1.0V FPGA INT_ADC_1_8V_FPGA, ///< Internal ADC channel for 1.8V FPGA INT_ADC_BOARD_THERMISTOR, ///< Internal ADC channel for PCB temperature INT_ADC_ADC_REF, ///< Internal ADC channel for ADC reference voltage INT_ADC_BACKUP_V, ///< Internal ADC channel for VBackup INT_ADC_24V_ACTUATORS_1, ///< Internal ADC channel for 24V to actuators (1) INT_ADC_24V_ACTUATORS_2, ///< Internal ADC channel for 24V to actuators (2) INT_ADC_DUMMY, ///< Internal ADC channel - not used, needed to get even number of channels NUM_OF_INT_ADC_CHANNELS ///< Number of used internal ADC channels. } INT_ADC_CHANNEL_T; // ********** public function prototypes ********** void initInternalADC( void ); void execInternalADC( void ); U16 getIntADCReading( INT_ADC_CHANNEL_T channel ); F32 getIntADCVoltageConverted( INT_ADC_CHANNEL_T channel ); /**@}*/ #endif