Mahesh Phalke / Mbed OS ad7124_mbed_temperature-measure-example

Dependencies:   platform_drivers AD7124_no_OS adi_console_menu tempsensors_prv

Committer:
mahphalke
Date:
Wed Mar 24 12:33:55 2021 +0530
Revision:
7:ef6fffc246a6
Parent:
5:90166c496b01
Bug fixes w.r.t RTD calibration measurement

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mahphalke 0:08ba94bc5a30 1 /***************************************************************************//*
mahphalke 0:08ba94bc5a30 2 * @file ad7124_reg_app_config.h
mahphalke 0:08ba94bc5a30 3 * @brief Register configurations global defines
mahphalke 0:08ba94bc5a30 4 * @details
mahphalke 0:08ba94bc5a30 5 ******************************************************************************
mahphalke 0:08ba94bc5a30 6 * Copyright (c) 2021 Analog Devices, Inc. All Rights Reserved.
mahphalke 0:08ba94bc5a30 7 *
mahphalke 0:08ba94bc5a30 8 * This software is proprietary to Analog Devices, Inc. and its licensors.
mahphalke 0:08ba94bc5a30 9 * By using this software you agree to the terms of the associated
mahphalke 0:08ba94bc5a30 10 * Analog Devices Software License Agreement.
mahphalke 0:08ba94bc5a30 11 ******************************************************************************/
mahphalke 0:08ba94bc5a30 12
mahphalke 0:08ba94bc5a30 13 #ifndef AD7124_REGS_CONFIGS_H_
mahphalke 0:08ba94bc5a30 14 #define AD7124_REGS_CONFIGS_H_
mahphalke 0:08ba94bc5a30 15
mahphalke 0:08ba94bc5a30 16 /******************************************************************************/
mahphalke 0:08ba94bc5a30 17 /***************************** Include Files **********************************/
mahphalke 0:08ba94bc5a30 18 /******************************************************************************/
mahphalke 0:08ba94bc5a30 19
mahphalke 0:08ba94bc5a30 20 #include "app_config.h"
mahphalke 0:08ba94bc5a30 21 #include "ad7124.h"
mahphalke 0:08ba94bc5a30 22
mahphalke 0:08ba94bc5a30 23 /******************************************************************************/
mahphalke 0:08ba94bc5a30 24 /********************* Macros and Constants Definitions ***********************/
mahphalke 0:08ba94bc5a30 25 /******************************************************************************/
mahphalke 0:08ba94bc5a30 26
mahphalke 0:08ba94bc5a30 27 /* 2-wire RTD configurations */
mahphalke 0:08ba94bc5a30 28 #define RTD1_2WIRE_IOUT0 0 // AIN0
mahphalke 0:08ba94bc5a30 29 #define RTD2_2WIRE_IOUT0 1 // AIN1
mahphalke 0:08ba94bc5a30 30 #define RTD3_2WIRE_IOUT0 8 // AIN8
mahphalke 0:08ba94bc5a30 31 #define RTD4_2WIRE_IOUT0 11 // AIN11
mahphalke 0:08ba94bc5a30 32 #define RTD5_2WIRE_IOUT0 14 // AIN14
mahphalke 0:08ba94bc5a30 33
mahphalke 0:08ba94bc5a30 34 #define RTD1_2WIRE_AINP 2 // AIN2
mahphalke 0:08ba94bc5a30 35 #define RTD2_2WIRE_AINP 4 // AIN4
mahphalke 0:08ba94bc5a30 36 #define RTD3_2WIRE_AINP 6 // AIN6
mahphalke 0:08ba94bc5a30 37 #define RTD4_2WIRE_AINP 9 // AIN9
mahphalke 0:08ba94bc5a30 38 #define RTD5_2WIRE_AINP 12 // AIN12
mahphalke 0:08ba94bc5a30 39
mahphalke 0:08ba94bc5a30 40 #define RTD1_2WIRE_AINM 3 // AIN3
mahphalke 0:08ba94bc5a30 41 #define RTD2_2WIRE_AINM 5 // AIN5
mahphalke 0:08ba94bc5a30 42 #define RTD3_2WIRE_AINM 7 // AIN7
mahphalke 0:08ba94bc5a30 43 #define RTD4_2WIRE_AINM 10 // AIN10
mahphalke 0:08ba94bc5a30 44 #define RTD5_2WIRE_AINM 13 // AIN13
mahphalke 0:08ba94bc5a30 45
mahphalke 5:90166c496b01 46 #define RTD_2WIRE_GAIN_VALUE 4 // Gain=16
mahphalke 5:90166c496b01 47
mahphalke 0:08ba94bc5a30 48 /* 3-wire RTD configurations */
mahphalke 0:08ba94bc5a30 49 #define RTD1_3WIRE_IOUT0 0 // AIN0
mahphalke 0:08ba94bc5a30 50 #define RTD2_3WIRE_IOUT0 6 // AIN6
mahphalke 0:08ba94bc5a30 51 #define RTD3_3WIRE_IOUT0 10 // AIN10
mahphalke 0:08ba94bc5a30 52 #define RTD4_3WIRE_IOUT0 14 // AIN14
mahphalke 0:08ba94bc5a30 53
mahphalke 0:08ba94bc5a30 54 #define RTD1_3WIRE_IOUT1 1 // AIN1
mahphalke 0:08ba94bc5a30 55 #define RTD2_3WIRE_IOUT1 7 // AIN7
mahphalke 0:08ba94bc5a30 56 #define RTD3_3WIRE_IOUT1 11 // AIN11
mahphalke 0:08ba94bc5a30 57 #define RTD4_3WIRE_IOUT1 15 // AIN15
mahphalke 0:08ba94bc5a30 58
mahphalke 0:08ba94bc5a30 59 #define RTD1_3WIRE_AINP 2 // AIN2
mahphalke 0:08ba94bc5a30 60 #define RTD2_3WIRE_AINP 4 // AIN4
mahphalke 0:08ba94bc5a30 61 #define RTD3_3WIRE_AINP 8 // AIN8
mahphalke 0:08ba94bc5a30 62 #define RTD4_3WIRE_AINP 12 // AIN12
mahphalke 0:08ba94bc5a30 63
mahphalke 0:08ba94bc5a30 64 #define RTD1_3WIRE_AINM 3 // AIN3
mahphalke 0:08ba94bc5a30 65 #define RTD2_3WIRE_AINM 5 // AIN5
mahphalke 0:08ba94bc5a30 66 #define RTD3_3WIRE_AINM 9 // AIN9
mahphalke 0:08ba94bc5a30 67 #define RTD4_3WIRE_AINM 13 // AIN13
mahphalke 0:08ba94bc5a30 68
mahphalke 5:90166c496b01 69 #define SINGLE_3WIRE_RTD_GAIN 4 // Gain=16
mahphalke 5:90166c496b01 70 #define MULTI_3WIRE_RTD_GAIN 5 // Gain=32
mahphalke 7:ef6fffc246a6 71 #define RTD_3WIRE_EXC_MEASURE_GAIN 0 // Gain=1
mahphalke 0:08ba94bc5a30 72
mahphalke 0:08ba94bc5a30 73 /* 3-wire RTD excitation current measurement inputs (for calibration) */
mahphalke 0:08ba94bc5a30 74 #if defined(AD7124_8)
mahphalke 0:08ba94bc5a30 75 #define RTD_3WIRE_EXC_MEASURE_AINP 14 // AIN14
mahphalke 0:08ba94bc5a30 76 #define RTD_3WIRE_EXC_MEASURE_AINM 15 // AIN15
mahphalke 0:08ba94bc5a30 77 #else
mahphalke 0:08ba94bc5a30 78 #define RTD_3WIRE_EXC_MEASURE_AINP 6 // AIN6
mahphalke 0:08ba94bc5a30 79 #define RTD_3WIRE_EXC_MEASURE_AINM 7 // AIN7
mahphalke 0:08ba94bc5a30 80 #endif
mahphalke 0:08ba94bc5a30 81
mahphalke 0:08ba94bc5a30 82 /* 4-wire RTD configurations */
mahphalke 0:08ba94bc5a30 83 #define RTD1_4WIRE_IOUT0 0 // AIN0
mahphalke 0:08ba94bc5a30 84 #define RTD2_4WIRE_IOUT0 1 // AIN1
mahphalke 0:08ba94bc5a30 85 #define RTD3_4WIRE_IOUT0 8 // AIN8
mahphalke 0:08ba94bc5a30 86 #define RTD4_4WIRE_IOUT0 11 // AIN11
mahphalke 0:08ba94bc5a30 87 #define RTD5_4WIRE_IOUT0 14 // AIN14
mahphalke 0:08ba94bc5a30 88
mahphalke 0:08ba94bc5a30 89 #define RTD1_4WIRE_AINP 2 // AIN2
mahphalke 0:08ba94bc5a30 90 #define RTD2_4WIRE_AINP 4 // AIN4
mahphalke 0:08ba94bc5a30 91 #define RTD3_4WIRE_AINP 6 // AIN6
mahphalke 0:08ba94bc5a30 92 #define RTD4_4WIRE_AINP 9 // AIN9
mahphalke 0:08ba94bc5a30 93 #define RTD5_4WIRE_AINP 12 // AIN12
mahphalke 0:08ba94bc5a30 94
mahphalke 0:08ba94bc5a30 95 #define RTD1_4WIRE_AINM 3 // AIN3
mahphalke 0:08ba94bc5a30 96 #define RTD2_4WIRE_AINM 5 // AIN5
mahphalke 0:08ba94bc5a30 97 #define RTD3_4WIRE_AINM 7 // AIN7
mahphalke 0:08ba94bc5a30 98 #define RTD4_4WIRE_AINM 10 // AIN10
mahphalke 0:08ba94bc5a30 99 #define RTD5_4WIRE_AINM 13 // AIN13
mahphalke 0:08ba94bc5a30 100
mahphalke 5:90166c496b01 101 #define RTD_4WIRE_GAIN_VALUE 4 // Gain=16
mahphalke 5:90166c496b01 102
mahphalke 0:08ba94bc5a30 103 /* RTD common configurations */
mahphalke 0:08ba94bc5a30 104 #define RTD_IOUT0_500UA_EXC 4 // 500uA IOUT0 excitation current
mahphalke 0:08ba94bc5a30 105 #define RTD_IOUT1_500UA_EXC 4 // 500uA IOUT1 excitation current
mahphalke 0:08ba94bc5a30 106 #define RTD_IOUT0_250UA_EXC 3 // 250uA IOUT0 excitation current
mahphalke 0:08ba94bc5a30 107 #define RTD_IOUT1_250UA_EXC 3 // 250uA IOUT1 excitation current
mahphalke 0:08ba94bc5a30 108 #define RTD_IOUT_EXC_OFF 0 // Excitation current is off
mahphalke 0:08ba94bc5a30 109
mahphalke 0:08ba94bc5a30 110
mahphalke 0:08ba94bc5a30 111 /* NTC Thermistor configurations */
mahphalke 0:08ba94bc5a30 112 #define NTC1_THERMISTOR_AINP 0 // AIN0
mahphalke 0:08ba94bc5a30 113 #define NTC2_THERMISTOR_AINP 2 // AIN2
mahphalke 0:08ba94bc5a30 114 #define NTC3_THERMISTOR_AINP 4 // AIN4
mahphalke 0:08ba94bc5a30 115 #define NTC4_THERMISTOR_AINP 6 // AIN6
mahphalke 0:08ba94bc5a30 116 #define NTC5_THERMISTOR_AINP 8 // AIN8
mahphalke 0:08ba94bc5a30 117 #define NTC6_THERMISTOR_AINP 10 // AIN10
mahphalke 0:08ba94bc5a30 118 #define NTC7_THERMISTOR_AINP 12 // AIN12
mahphalke 0:08ba94bc5a30 119 #define NTC8_THERMISTOR_AINP 14 // AIN14
mahphalke 0:08ba94bc5a30 120
mahphalke 0:08ba94bc5a30 121 #define NTC1_THERMISTOR_AINM 1 // AIN1
mahphalke 0:08ba94bc5a30 122 #define NTC2_THERMISTOR_AINM 3 // AIN3
mahphalke 0:08ba94bc5a30 123 #define NTC3_THERMISTOR_AINM 5 // AIN5
mahphalke 0:08ba94bc5a30 124 #define NTC4_THERMISTOR_AINM 7 // AIN7
mahphalke 0:08ba94bc5a30 125 #define NTC5_THERMISTOR_AINM 9 // AIN9
mahphalke 0:08ba94bc5a30 126 #define NTC6_THERMISTOR_AINM 11 // AIN11
mahphalke 0:08ba94bc5a30 127 #define NTC7_THERMISTOR_AINM 13 // AIN13
mahphalke 0:08ba94bc5a30 128 #define NTC8_THERMISTOR_AINM 15 // AIN15
mahphalke 0:08ba94bc5a30 129
mahphalke 0:08ba94bc5a30 130 /* NTC Thermistor common configurations */
mahphalke 0:08ba94bc5a30 131 #define THERMISTOR_GAIN_VALUE 0 // Gain=1
mahphalke 0:08ba94bc5a30 132
mahphalke 0:08ba94bc5a30 133
mahphalke 0:08ba94bc5a30 134 /* Thermocouple configurations */
mahphalke 0:08ba94bc5a30 135 #define THERMOCOUPLE1_AINP 2 // AIN2
mahphalke 0:08ba94bc5a30 136 #define THERMOCOUPLE2_AINP 6 // AIN6
mahphalke 0:08ba94bc5a30 137 #define THERMOCOUPLE3_AINP 8 // AIN8
mahphalke 0:08ba94bc5a30 138 #define THERMOCOUPLE4_AINP 10 // AIN10
mahphalke 0:08ba94bc5a30 139 #define THERMOCOUPLE5_AINP 12 // AIN12
mahphalke 0:08ba94bc5a30 140 #define THERMOCOUPLE6_AINP 14 // AIN14
mahphalke 0:08ba94bc5a30 141
mahphalke 0:08ba94bc5a30 142 #define THERMOCOUPLE1_AINM 3 // AIN3
mahphalke 0:08ba94bc5a30 143 #define THERMOCOUPLE2_AINM 7 // AIN7
mahphalke 0:08ba94bc5a30 144 #define THERMOCOUPLE3_AINM 9 // AIN9
mahphalke 0:08ba94bc5a30 145 #define THERMOCOUPLE4_AINM 11 // AIN11
mahphalke 0:08ba94bc5a30 146 #define THERMOCOUPLE5_AINM 13 // AIN13
mahphalke 0:08ba94bc5a30 147 #define THERMOCOUPLE6_AINM 15 // AIN15
mahphalke 0:08ba94bc5a30 148
mahphalke 0:08ba94bc5a30 149 /* Thermocouple common configurations */
mahphalke 0:08ba94bc5a30 150 #define THERMOCOUPLE_GAIN_VALUE 7 // Gain=128
mahphalke 0:08ba94bc5a30 151
mahphalke 0:08ba94bc5a30 152 /* Cold Junction configurations for thermocouple compensation */
mahphalke 5:90166c496b01 153 /* Note: RTD to be used is either 2-wire or 4-wire */
mahphalke 5:90166c496b01 154 #define CJC_RTD_AINP 4 // AIN4
mahphalke 5:90166c496b01 155 #define CJC_RTD_AINM 5 // AIN5
mahphalke 5:90166c496b01 156 #define CJC_RTD_IOUT0 1 // AIN1
mahphalke 5:90166c496b01 157 #define CJC_RTD_IOUT0_EXC RTD_IOUT0_500UA_EXC // 500uA
mahphalke 0:08ba94bc5a30 158
mahphalke 0:08ba94bc5a30 159 #define CJC_PTC_THERMISTOR_AINP 4 // AIN4
mahphalke 0:08ba94bc5a30 160 #define CJC_PTC_THERMISTOR_AINM 5 // AIN5
mahphalke 0:08ba94bc5a30 161 #define CJC_PTC_THERMISTOR_IOUT0 1 // AIN1
mahphalke 0:08ba94bc5a30 162 #define CJC_PTC_THERMISTOR_IOUT0_EXC 4 // 500uA
mahphalke 0:08ba94bc5a30 163
mahphalke 5:90166c496b01 164 #define RTD_PT1000_GAIN_VALUE 0 // Gain=1
mahphalke 5:90166c496b01 165
mahphalke 5:90166c496b01 166
mahphalke 0:08ba94bc5a30 167 /* ADC internal calibration configurations */
mahphalke 0:08ba94bc5a30 168 #define ADC_CALIBRATION_GAIN 1 // Gain = 2
mahphalke 0:08ba94bc5a30 169 #define ADC_CALIBRATION_PWR_MODE 0 // Low power mode
mahphalke 0:08ba94bc5a30 170 #define ADC_CALIBRATION_REF_SRC 2 // Internal Vref
mahphalke 0:08ba94bc5a30 171
mahphalke 0:08ba94bc5a30 172 /* CJC sensor types supported for thermocouple measurement */
mahphalke 0:08ba94bc5a30 173 typedef enum {
mahphalke 0:08ba94bc5a30 174 PT100_4WIRE_RTD,
mahphalke 0:08ba94bc5a30 175 THERMISTOR_PTC_KY81_110,
mahphalke 5:90166c496b01 176 PT1000_2WIRE_RTD,
mahphalke 0:08ba94bc5a30 177 NUM_OF_CJC_SENSORS
mahphalke 0:08ba94bc5a30 178 } cjc_sensor_type;
mahphalke 0:08ba94bc5a30 179
mahphalke 0:08ba94bc5a30 180 /******************************************************************************/
mahphalke 0:08ba94bc5a30 181 /********************** Public/Extern Declarations ****************************/
mahphalke 0:08ba94bc5a30 182 /******************************************************************************/
mahphalke 0:08ba94bc5a30 183
mahphalke 0:08ba94bc5a30 184 /*
mahphalke 0:08ba94bc5a30 185 * Arrays holding the info for the AD7124 registers - address, initial value,
mahphalke 0:08ba94bc5a30 186 * size and access type.
mahphalke 0:08ba94bc5a30 187 */
mahphalke 0:08ba94bc5a30 188 extern const struct ad7124_st_reg ad7124_regs_config_2wire_rtd[AD7124_REG_NO];
mahphalke 0:08ba94bc5a30 189 extern const struct ad7124_st_reg ad7124_regs_config_3wire_rtd[AD7124_REG_NO];
mahphalke 0:08ba94bc5a30 190 extern const struct ad7124_st_reg ad7124_regs_config_4wire_rtd[AD7124_REG_NO];
mahphalke 0:08ba94bc5a30 191 extern const struct ad7124_st_reg ad7124_regs_config_thermistor[AD7124_REG_NO];
mahphalke 0:08ba94bc5a30 192 extern const struct ad7124_st_reg
mahphalke 0:08ba94bc5a30 193 ad7124_regs_config_thermocouple[AD7124_REG_NO];
mahphalke 0:08ba94bc5a30 194
mahphalke 0:08ba94bc5a30 195 #endif /* AD7124_REGS_CONFIGS_H_ */