
2020_09_07_AD7190_LoRa
AD7190.h@0:0e20215b178e, 2020-08-06 (annotated)
- Committer:
- peng103617
- Date:
- Thu Aug 06 06:52:19 2020 +0000
- Revision:
- 0:0e20215b178e
AD7190_LoRa
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
peng103617 | 0:0e20215b178e | 1 | |
peng103617 | 0:0e20215b178e | 2 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 3 | * @file AD7190.h |
peng103617 | 0:0e20215b178e | 4 | * @brief Header file of AD7190 Driver. |
peng103617 | 0:0e20215b178e | 5 | * @author DNechita (Dan.Nechita@analog.com) |
peng103617 | 0:0e20215b178e | 6 | ******************************************************************************** |
peng103617 | 0:0e20215b178e | 7 | * Copyright 2012(c) Analog Devices, Inc. |
peng103617 | 0:0e20215b178e | 8 | * |
peng103617 | 0:0e20215b178e | 9 | * All rights reserved. |
peng103617 | 0:0e20215b178e | 10 | * |
peng103617 | 0:0e20215b178e | 11 | * Redistribution and use in source and binary forms, with or without |
peng103617 | 0:0e20215b178e | 12 | * modification, are permitted provided that the following conditions are met: |
peng103617 | 0:0e20215b178e | 13 | * - Redistributions of source code must retain the above copyright |
peng103617 | 0:0e20215b178e | 14 | * notice, this list of conditions and the following disclaimer. |
peng103617 | 0:0e20215b178e | 15 | * - Redistributions in binary form must reproduce the above copyright |
peng103617 | 0:0e20215b178e | 16 | * notice, this list of conditions and the following disclaimer in |
peng103617 | 0:0e20215b178e | 17 | * the documentation and/or other materials provided with the |
peng103617 | 0:0e20215b178e | 18 | * distribution. |
peng103617 | 0:0e20215b178e | 19 | * - Neither the name of Analog Devices, Inc. nor the names of its |
peng103617 | 0:0e20215b178e | 20 | * contributors may be used to endorse or promote products derived |
peng103617 | 0:0e20215b178e | 21 | * from this software without specific prior written permission. |
peng103617 | 0:0e20215b178e | 22 | * - The use of this software may or may not infringe the patent rights |
peng103617 | 0:0e20215b178e | 23 | * of one or more patent holders. This license does not release you |
peng103617 | 0:0e20215b178e | 24 | * from the requirement that you obtain separate licenses from these |
peng103617 | 0:0e20215b178e | 25 | * patent holders to use this software. |
peng103617 | 0:0e20215b178e | 26 | * - Use of the software either in source or binary form, must be run |
peng103617 | 0:0e20215b178e | 27 | * on or directly connected to an Analog Devices Inc. component. |
peng103617 | 0:0e20215b178e | 28 | * |
peng103617 | 0:0e20215b178e | 29 | * THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR |
peng103617 | 0:0e20215b178e | 30 | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, |
peng103617 | 0:0e20215b178e | 31 | * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
peng103617 | 0:0e20215b178e | 32 | * IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, |
peng103617 | 0:0e20215b178e | 33 | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
peng103617 | 0:0e20215b178e | 34 | * LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR |
peng103617 | 0:0e20215b178e | 35 | * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
peng103617 | 0:0e20215b178e | 36 | * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
peng103617 | 0:0e20215b178e | 37 | * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
peng103617 | 0:0e20215b178e | 38 | * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
peng103617 | 0:0e20215b178e | 39 | * |
peng103617 | 0:0e20215b178e | 40 | ******************************************************************************** |
peng103617 | 0:0e20215b178e | 41 | * SVN Revision: 903 |
peng103617 | 0:0e20215b178e | 42 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 43 | |
peng103617 | 0:0e20215b178e | 44 | #ifndef __AD7190_H__ |
peng103617 | 0:0e20215b178e | 45 | #define __AD7190_H__ |
peng103617 | 0:0e20215b178e | 46 | |
peng103617 | 0:0e20215b178e | 47 | /******************************************************************************/ |
peng103617 | 0:0e20215b178e | 48 | /***************************** Include Files **********************************/ |
peng103617 | 0:0e20215b178e | 49 | /******************************************************************************/ |
peng103617 | 0:0e20215b178e | 50 | |
peng103617 | 0:0e20215b178e | 51 | |
peng103617 | 0:0e20215b178e | 52 | |
peng103617 | 0:0e20215b178e | 53 | #include "Communication.h" |
peng103617 | 0:0e20215b178e | 54 | #include "mbed.h" |
peng103617 | 0:0e20215b178e | 55 | |
peng103617 | 0:0e20215b178e | 56 | |
peng103617 | 0:0e20215b178e | 57 | extern DigitalOut cs; |
peng103617 | 0:0e20215b178e | 58 | extern DigitalIn ad_rdy; |
peng103617 | 0:0e20215b178e | 59 | /******************************************************************************/ |
peng103617 | 0:0e20215b178e | 60 | /******************************** AD7190 **************************************/ |
peng103617 | 0:0e20215b178e | 61 | /******************************************************************************/ |
peng103617 | 0:0e20215b178e | 62 | |
peng103617 | 0:0e20215b178e | 63 | |
peng103617 | 0:0e20215b178e | 64 | /* AD7190 Register Map */ |
peng103617 | 0:0e20215b178e | 65 | #define AD7190_REG_COMM 0 // Communications Register (WO, 8-bit) |
peng103617 | 0:0e20215b178e | 66 | #define AD7190_REG_STAT 0 // Status Register (RO, 8-bit) |
peng103617 | 0:0e20215b178e | 67 | #define AD7190_REG_MODE 1 // Mode Register (RW, 24-bit |
peng103617 | 0:0e20215b178e | 68 | #define AD7190_REG_CONF 2 // Configuration Register (RW, 24-bit) |
peng103617 | 0:0e20215b178e | 69 | #define AD7190_REG_DATA 3 // Data Register (RO, 24/32-bit) |
peng103617 | 0:0e20215b178e | 70 | #define AD7190_REG_ID 4 // ID Register (RO, 8-bit) |
peng103617 | 0:0e20215b178e | 71 | #define AD7190_REG_GPOCON 5 // GPOCON Register (RW, 8-bit) |
peng103617 | 0:0e20215b178e | 72 | #define AD7190_REG_OFFSET 6 // Offset Register (RW, 24-bit |
peng103617 | 0:0e20215b178e | 73 | #define AD7190_REG_FULLSCALE 7 // Full-Scale Register (RW, 24-bit) |
peng103617 | 0:0e20215b178e | 74 | |
peng103617 | 0:0e20215b178e | 75 | /* Communications Register Bit Designations (AD7190_REG_COMM) */ |
peng103617 | 0:0e20215b178e | 76 | #define AD7190_COMM_WEN (1 << 7) // Write Enable. |
peng103617 | 0:0e20215b178e | 77 | #define AD7190_COMM_WRITE (0 << 6) // Write Operation. |
peng103617 | 0:0e20215b178e | 78 | #define AD7190_COMM_READ (1 << 6) // Read Operation. |
peng103617 | 0:0e20215b178e | 79 | #define AD7190_COMM_ADDR(x) (((x) & 0x7) << 3) // Register Address. |
peng103617 | 0:0e20215b178e | 80 | #define AD7190_COMM_CREAD (1 << 2) // Continuous Read of Data Register. |
peng103617 | 0:0e20215b178e | 81 | |
peng103617 | 0:0e20215b178e | 82 | /* Status Register Bit Designations (AD7190_REG_STAT) */ |
peng103617 | 0:0e20215b178e | 83 | #define AD7190_STAT_RDY (1 << 7) // Ready. |
peng103617 | 0:0e20215b178e | 84 | #define AD7190_STAT_ERR (1 << 6) // ADC error bit. |
peng103617 | 0:0e20215b178e | 85 | #define AD7190_STAT_NOREF (1 << 5) // Error no external reference. |
peng103617 | 0:0e20215b178e | 86 | #define AD7190_STAT_PARITY (1 << 4) // Parity check of the data register. |
peng103617 | 0:0e20215b178e | 87 | #define AD7190_STAT_CH2 (1 << 2) // Channel 2. |
peng103617 | 0:0e20215b178e | 88 | #define AD7190_STAT_CH1 (1 << 1) // Channel 1. |
peng103617 | 0:0e20215b178e | 89 | #define AD7190_STAT_CH0 (1 << 0) // Channel 0. |
peng103617 | 0:0e20215b178e | 90 | |
peng103617 | 0:0e20215b178e | 91 | /* Mode Register Bit Designations (AD7190_REG_MODE) */ |
peng103617 | 0:0e20215b178e | 92 | #define AD7190_MODE_SEL(x) (((x) & 0x7) << 21) // Operation Mode Select. |
peng103617 | 0:0e20215b178e | 93 | #define AD7190_MODE_DAT_STA (1 << 20) // Status Register transmission. |
peng103617 | 0:0e20215b178e | 94 | #define AD7190_MODE_CLKSRC(x) (((x) & 0x3) << 18) // Clock Source Select. |
peng103617 | 0:0e20215b178e | 95 | #define AD7190_MODE_SINC3 (1 << 15) // SINC3 Filter Select. |
peng103617 | 0:0e20215b178e | 96 | #define AD7190_MODE_ENPAR (1 << 13) // Parity Enable. |
peng103617 | 0:0e20215b178e | 97 | #define AD7190_MODE_SCYCLE (1 << 11) // Single cycle conversion. |
peng103617 | 0:0e20215b178e | 98 | #define AD7190_MODE_REJ60 (1 << 10) // 50/60Hz notch filter. |
peng103617 | 0:0e20215b178e | 99 | #define AD7190_MODE_RATE(x) ((x) & 0x3FF) // Filter Update Rate Select. |
peng103617 | 0:0e20215b178e | 100 | |
peng103617 | 0:0e20215b178e | 101 | /* Mode Register: AD7190_MODE_SEL(x) options */ |
peng103617 | 0:0e20215b178e | 102 | #define AD7190_MODE_CONT 0 // Continuous Conversion Mode. |
peng103617 | 0:0e20215b178e | 103 | #define AD7190_MODE_SINGLE 1 // Single Conversion Mode. |
peng103617 | 0:0e20215b178e | 104 | #define AD7190_MODE_IDLE 2 // Idle Mode. |
peng103617 | 0:0e20215b178e | 105 | #define AD7190_MODE_PWRDN 3 // Power-Down Mode. |
peng103617 | 0:0e20215b178e | 106 | #define AD7190_MODE_CAL_INT_ZERO 4 // Internal Zero-Scale Calibration. |
peng103617 | 0:0e20215b178e | 107 | #define AD7190_MODE_CAL_INT_FULL 5 // Internal Full-Scale Calibration. |
peng103617 | 0:0e20215b178e | 108 | #define AD7190_MODE_CAL_SYS_ZERO 6 // System Zero-Scale Calibration. |
peng103617 | 0:0e20215b178e | 109 | #define AD7190_MODE_CAL_SYS_FULL 7 // System Full-Scale Calibration. |
peng103617 | 0:0e20215b178e | 110 | |
peng103617 | 0:0e20215b178e | 111 | /* Mode Register: AD7190_MODE_CLKSRC(x) options */ |
peng103617 | 0:0e20215b178e | 112 | #define AD7190_CLK_EXT_MCLK1_2 0 // External crystal. The external crystal |
peng103617 | 0:0e20215b178e | 113 | // is connected from MCLK1 to MCLK2. |
peng103617 | 0:0e20215b178e | 114 | #define AD7190_CLK_EXT_MCLK2 1 // External Clock applied to MCLK2 |
peng103617 | 0:0e20215b178e | 115 | #define AD7190_CLK_INT 2 // Internal 4.92 MHz clock. |
peng103617 | 0:0e20215b178e | 116 | // Pin MCLK2 is tristated. |
peng103617 | 0:0e20215b178e | 117 | #define AD7190_CLK_INT_CO 3 // Internal 4.92 MHz clock. The internal |
peng103617 | 0:0e20215b178e | 118 | // clock is available on MCLK2. |
peng103617 | 0:0e20215b178e | 119 | |
peng103617 | 0:0e20215b178e | 120 | /* Configuration Register Bit Designations (AD7190_REG_CONF) */ |
peng103617 | 0:0e20215b178e | 121 | #define AD7190_CONF_CHOP (1 << 23) // CHOP enable. |
peng103617 | 0:0e20215b178e | 122 | #define AD7190_CONF_REFSEL (1 << 20) // REFIN1/REFIN2 Reference Select. |
peng103617 | 0:0e20215b178e | 123 | #define AD7190_CONF_CHAN(x) (((x) & 0xFF) << 8) // Channel select. |
peng103617 | 0:0e20215b178e | 124 | #define AD7190_CONF_BURN (1 << 7) // Burnout current enable. |
peng103617 | 0:0e20215b178e | 125 | #define AD7190_CONF_REFDET (1 << 6) // Reference detect enable. |
peng103617 | 0:0e20215b178e | 126 | #define AD7190_CONF_BUF (1 << 4) // Buffered Mode Enable. |
peng103617 | 0:0e20215b178e | 127 | #define AD7190_CONF_UNIPOLAR (1 << 3) // Unipolar/Bipolar Enable. |
peng103617 | 0:0e20215b178e | 128 | #define AD7190_CONF_GAIN(x) ((x) & 0x7) // Gain Select. |
peng103617 | 0:0e20215b178e | 129 | |
peng103617 | 0:0e20215b178e | 130 | /* Configuration Register: AD7190_CONF_CHAN(x) options */ |
peng103617 | 0:0e20215b178e | 131 | #define AD7190_CH_AIN1P_AIN2M 0 // AIN1(+) - AIN2(-) |
peng103617 | 0:0e20215b178e | 132 | #define AD7190_CH_AIN3P_AIN4M 1 // AIN3(+) - AIN4(-) |
peng103617 | 0:0e20215b178e | 133 | #define AD7190_CH_TEMP_SENSOR 2 // Temperature sensor |
peng103617 | 0:0e20215b178e | 134 | #define AD7190_CH_AIN2P_AIN2M 3 // AIN2(+) - AIN2(-) |
peng103617 | 0:0e20215b178e | 135 | #define AD7190_CH_AIN1P_AINCOM 4 // AIN1(+) - AINCOM |
peng103617 | 0:0e20215b178e | 136 | #define AD7190_CH_AIN2P_AINCOM 5 // AIN2(+) - AINCOM |
peng103617 | 0:0e20215b178e | 137 | #define AD7190_CH_AIN3P_AINCOM 6 // AIN3(+) - AINCOM |
peng103617 | 0:0e20215b178e | 138 | #define AD7190_CH_AIN4P_AINCOM 7 // AIN4(+) - AINCOM |
peng103617 | 0:0e20215b178e | 139 | |
peng103617 | 0:0e20215b178e | 140 | /* Configuration Register: AD7190_CONF_GAIN(x) options */ |
peng103617 | 0:0e20215b178e | 141 | // ADC Input Range (5 V Reference) |
peng103617 | 0:0e20215b178e | 142 | #define AD7190_CONF_GAIN_1 0 // Gain 1 +-5 V |
peng103617 | 0:0e20215b178e | 143 | #define AD7190_CONF_GAIN_8 3 // Gain 8 +-625 mV |
peng103617 | 0:0e20215b178e | 144 | #define AD7190_CONF_GAIN_16 4 // Gain 16 +-312.5 mV |
peng103617 | 0:0e20215b178e | 145 | #define AD7190_CONF_GAIN_32 5 // Gain 32 +-156.2 mV |
peng103617 | 0:0e20215b178e | 146 | #define AD7190_CONF_GAIN_64 6 // Gain 64 +-78.125 mV |
peng103617 | 0:0e20215b178e | 147 | #define AD7190_CONF_GAIN_128 7 // Gain 128 +-39.06 mV |
peng103617 | 0:0e20215b178e | 148 | |
peng103617 | 0:0e20215b178e | 149 | /* ID Register Bit Designations (AD7190_REG_ID) */ |
peng103617 | 0:0e20215b178e | 150 | #define ID_AD7190 0x4 |
peng103617 | 0:0e20215b178e | 151 | #define AD7190_ID_MASK 0x0F |
peng103617 | 0:0e20215b178e | 152 | |
peng103617 | 0:0e20215b178e | 153 | /* GPOCON Register Bit Designations (AD7190_REG_GPOCON) */ |
peng103617 | 0:0e20215b178e | 154 | #define AD7190_GPOCON_BPDSW (1 << 6) // Bridge power-down switch enable |
peng103617 | 0:0e20215b178e | 155 | #define AD7190_GPOCON_GP32EN (1 << 5) // Digital Output P3 and P2 enable |
peng103617 | 0:0e20215b178e | 156 | #define AD7190_GPOCON_GP10EN (1 << 4) // Digital Output P1 and P0 enable |
peng103617 | 0:0e20215b178e | 157 | #define AD7190_GPOCON_P3DAT (1 << 3) // P3 state |
peng103617 | 0:0e20215b178e | 158 | #define AD7190_GPOCON_P2DAT (1 << 2) // P2 state |
peng103617 | 0:0e20215b178e | 159 | #define AD7190_GPOCON_P1DAT (1 << 1) // P1 state |
peng103617 | 0:0e20215b178e | 160 | #define AD7190_GPOCON_P0DAT (1 << 0) // P0 state |
peng103617 | 0:0e20215b178e | 161 | |
peng103617 | 0:0e20215b178e | 162 | |
peng103617 | 0:0e20215b178e | 163 | |
peng103617 | 0:0e20215b178e | 164 | /******************************************************************************/ |
peng103617 | 0:0e20215b178e | 165 | /*********************** Functions Declarations *******************************/ |
peng103617 | 0:0e20215b178e | 166 | /******************************************************************************/ |
peng103617 | 0:0e20215b178e | 167 | /* Read-buffer in order to use mbed-api */ |
peng103617 | 0:0e20215b178e | 168 | |
peng103617 | 0:0e20215b178e | 169 | |
peng103617 | 0:0e20215b178e | 170 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 171 | * @brief Writes data into a register. |
peng103617 | 0:0e20215b178e | 172 | * |
peng103617 | 0:0e20215b178e | 173 | * @param registerAddress - Address of the register. |
peng103617 | 0:0e20215b178e | 174 | * @param registerValue - Data value to write. |
peng103617 | 0:0e20215b178e | 175 | * @param bytesNumber - Number of bytes to be written. |
peng103617 | 0:0e20215b178e | 176 | * |
peng103617 | 0:0e20215b178e | 177 | * @return none. |
peng103617 | 0:0e20215b178e | 178 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 179 | void AD7190_SetRegisterValue(unsigned char registerAddress, |
peng103617 | 0:0e20215b178e | 180 | unsigned long registerValue, |
peng103617 | 0:0e20215b178e | 181 | unsigned char bytesNumber); |
peng103617 | 0:0e20215b178e | 182 | |
peng103617 | 0:0e20215b178e | 183 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 184 | * @brief Reads the value of a register. |
peng103617 | 0:0e20215b178e | 185 | * |
peng103617 | 0:0e20215b178e | 186 | * @param registerAddress - Address of the register. |
peng103617 | 0:0e20215b178e | 187 | * @param bytesNumber - Number of bytes that will be read. |
peng103617 | 0:0e20215b178e | 188 | * |
peng103617 | 0:0e20215b178e | 189 | * @return buffer - Value of the register. |
peng103617 | 0:0e20215b178e | 190 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 191 | unsigned long AD7190_GetRegisterValue(unsigned char registerAddress, |
peng103617 | 0:0e20215b178e | 192 | unsigned char bytesNumber); |
peng103617 | 0:0e20215b178e | 193 | |
peng103617 | 0:0e20215b178e | 194 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 195 | * @brief Checks if the AD7190 part is present. |
peng103617 | 0:0e20215b178e | 196 | * |
peng103617 | 0:0e20215b178e | 197 | * @return status - Indicates if the part is present or not. 1 for ok , 0 for error |
peng103617 | 0:0e20215b178e | 198 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 199 | unsigned char AD7190_Init(unsigned int speed); |
peng103617 | 0:0e20215b178e | 200 | |
peng103617 | 0:0e20215b178e | 201 | |
peng103617 | 0:0e20215b178e | 202 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 203 | * @brief Resets the device. |
peng103617 | 0:0e20215b178e | 204 | * |
peng103617 | 0:0e20215b178e | 205 | * @return none. |
peng103617 | 0:0e20215b178e | 206 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 207 | void AD7190_Reset(void); |
peng103617 | 0:0e20215b178e | 208 | |
peng103617 | 0:0e20215b178e | 209 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 210 | * @brief Set device to idle or power-down. |
peng103617 | 0:0e20215b178e | 211 | * |
peng103617 | 0:0e20215b178e | 212 | * @param pwrMode - Selects idle mode or power-down mode. |
peng103617 | 0:0e20215b178e | 213 | * Example: 0 - power-down |
peng103617 | 0:0e20215b178e | 214 | * 1 - idle |
peng103617 | 0:0e20215b178e | 215 | * |
peng103617 | 0:0e20215b178e | 216 | * @return none. |
peng103617 | 0:0e20215b178e | 217 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 218 | void AD7190_SetPower(unsigned char pwrMode); |
peng103617 | 0:0e20215b178e | 219 | |
peng103617 | 0:0e20215b178e | 220 | |
peng103617 | 0:0e20215b178e | 221 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 222 | * @brief Waits for RDY pin to go low. |
peng103617 | 0:0e20215b178e | 223 | * @comment timeOutCnt related to CPU clock |
peng103617 | 0:0e20215b178e | 224 | * @return none. |
peng103617 | 0:0e20215b178e | 225 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 226 | void AD7190_WaitRdyGoLow(void); |
peng103617 | 0:0e20215b178e | 227 | |
peng103617 | 0:0e20215b178e | 228 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 229 | * @brief Selects the channel to be enabled. |
peng103617 | 0:0e20215b178e | 230 | * |
peng103617 | 0:0e20215b178e | 231 | * @param channel - Selects a channel. |
peng103617 | 0:0e20215b178e | 232 | * |
peng103617 | 0:0e20215b178e | 233 | * @return none. |
peng103617 | 0:0e20215b178e | 234 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 235 | void AD7190_ChannelSelect(unsigned short channel); |
peng103617 | 0:0e20215b178e | 236 | |
peng103617 | 0:0e20215b178e | 237 | |
peng103617 | 0:0e20215b178e | 238 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 239 | * @brief Performs the given calibration to the specified channel. |
peng103617 | 0:0e20215b178e | 240 | * |
peng103617 | 0:0e20215b178e | 241 | * @param mode - Calibration type. |
peng103617 | 0:0e20215b178e | 242 | * @param channel - Channel to be calibrated. |
peng103617 | 0:0e20215b178e | 243 | * |
peng103617 | 0:0e20215b178e | 244 | * @return none. |
peng103617 | 0:0e20215b178e | 245 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 246 | void AD7190_Calibrate(unsigned char mode, unsigned char channel); |
peng103617 | 0:0e20215b178e | 247 | |
peng103617 | 0:0e20215b178e | 248 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 249 | * @brief Selects the polarity of the conversion and the ADC input range. |
peng103617 | 0:0e20215b178e | 250 | * |
peng103617 | 0:0e20215b178e | 251 | * @param polarity - Polarity select bit. |
peng103617 | 0:0e20215b178e | 252 | Example: 0 - bipolar operation is selected. |
peng103617 | 0:0e20215b178e | 253 | 1 - unipolar operation is selected. |
peng103617 | 0:0e20215b178e | 254 | * @param range - Gain select bits. These bits are written by the user to select |
peng103617 | 0:0e20215b178e | 255 | the ADC input range. |
peng103617 | 0:0e20215b178e | 256 | * |
peng103617 | 0:0e20215b178e | 257 | * @return none. |
peng103617 | 0:0e20215b178e | 258 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 259 | void AD7190_RangeSetup(unsigned char polarity, unsigned char range); |
peng103617 | 0:0e20215b178e | 260 | |
peng103617 | 0:0e20215b178e | 261 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 262 | * @brief Returns the result of a single conversion. |
peng103617 | 0:0e20215b178e | 263 | * |
peng103617 | 0:0e20215b178e | 264 | * @return regData - Result of a single analog-to-digital conversion. |
peng103617 | 0:0e20215b178e | 265 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 266 | unsigned long AD7190_SingleConversion(void); |
peng103617 | 0:0e20215b178e | 267 | |
peng103617 | 0:0e20215b178e | 268 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 269 | * @brief Returns the average of several conversion results. |
peng103617 | 0:0e20215b178e | 270 | * |
peng103617 | 0:0e20215b178e | 271 | * @return samplesAverage - The average of the conversion results. |
peng103617 | 0:0e20215b178e | 272 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 273 | unsigned long AD7190_ContinuousReadAvg(unsigned char sampleNumber); |
peng103617 | 0:0e20215b178e | 274 | |
peng103617 | 0:0e20215b178e | 275 | /***************************************************************************//** |
peng103617 | 0:0e20215b178e | 276 | * @brief Read data from temperature sensor and converts it to Celsius degrees. |
peng103617 | 0:0e20215b178e | 277 | * |
peng103617 | 0:0e20215b178e | 278 | * @return temperature - Celsius degrees. |
peng103617 | 0:0e20215b178e | 279 | *******************************************************************************/ |
peng103617 | 0:0e20215b178e | 280 | unsigned long AD7190_TemperatureRead(void); |
peng103617 | 0:0e20215b178e | 281 | |
peng103617 | 0:0e20215b178e | 282 | |
peng103617 | 0:0e20215b178e | 283 | extern Serial pc; |
peng103617 | 0:0e20215b178e | 284 | #endif /* __AD7190_H__ */ |