Minor changes to support ADMW FWv1.17.75

Committer:
Vkadaba
Date:
Wed Jun 05 05:39:15 2019 +0000
Revision:
5:0728bde67bdb
Child:
6:9d393a9677f4
Replaced all references to ADISense/ADISENSE1000/adi_sense with ADMW/ADMW1001/admw and the prject builds.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Vkadaba 5:0728bde67bdb 1 /*
Vkadaba 5:0728bde67bdb 2 Copyright 2018 (c) Analog Devices, Inc.
Vkadaba 5:0728bde67bdb 3
Vkadaba 5:0728bde67bdb 4 All rights reserved.
Vkadaba 5:0728bde67bdb 5
Vkadaba 5:0728bde67bdb 6 Redistribution and use in source and binary forms, with or without
Vkadaba 5:0728bde67bdb 7 modification, are permitted provided that the following conditions are met:
Vkadaba 5:0728bde67bdb 8 - Redistributions of source code must retain the above copyright
Vkadaba 5:0728bde67bdb 9 notice, this list of conditions and the following disclaimer.
Vkadaba 5:0728bde67bdb 10 - Redistributions in binary form must reproduce the above copyright
Vkadaba 5:0728bde67bdb 11 notice, this list of conditions and the following disclaimer in
Vkadaba 5:0728bde67bdb 12 the documentation and/or other materials provided with the
Vkadaba 5:0728bde67bdb 13 distribution.
Vkadaba 5:0728bde67bdb 14 - Neither the name of Analog Devices, Inc. nor the names of its
Vkadaba 5:0728bde67bdb 15 contributors may be used to endorse or promote products derived
Vkadaba 5:0728bde67bdb 16 from this software without specific prior written permission.
Vkadaba 5:0728bde67bdb 17 - The use of this software may or may not infringe the patent rights
Vkadaba 5:0728bde67bdb 18 of one or more patent holders. This license does not release you
Vkadaba 5:0728bde67bdb 19 from the requirement that you obtain separate licenses from these
Vkadaba 5:0728bde67bdb 20 patent holders to use this software.
Vkadaba 5:0728bde67bdb 21 - Use of the software either in source or binary form, must be run
Vkadaba 5:0728bde67bdb 22 on or directly connected to an Analog Devices Inc. component.
Vkadaba 5:0728bde67bdb 23
Vkadaba 5:0728bde67bdb 24 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
Vkadaba 5:0728bde67bdb 25 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
Vkadaba 5:0728bde67bdb 26 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
Vkadaba 5:0728bde67bdb 27 IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
Vkadaba 5:0728bde67bdb 28 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Vkadaba 5:0728bde67bdb 29 LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
Vkadaba 5:0728bde67bdb 30 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
Vkadaba 5:0728bde67bdb 31 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
Vkadaba 5:0728bde67bdb 32 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Vkadaba 5:0728bde67bdb 33 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Vkadaba 5:0728bde67bdb 34 */
Vkadaba 5:0728bde67bdb 35
Vkadaba 5:0728bde67bdb 36 /*
Vkadaba 5:0728bde67bdb 37 Copyright (c) 2017 Analog Devices, Inc.
Vkadaba 5:0728bde67bdb 38
Vkadaba 5:0728bde67bdb 39 All rights reserved.
Vkadaba 5:0728bde67bdb 40
Vkadaba 5:0728bde67bdb 41 Redistribution and use in source and binary forms, with or without modification,
Vkadaba 5:0728bde67bdb 42 are permitted provided that the following conditions are met:
Vkadaba 5:0728bde67bdb 43 - Redistributions of source code must retain the above copyright notice,
Vkadaba 5:0728bde67bdb 44 this list of conditions and the following disclaimer.
Vkadaba 5:0728bde67bdb 45 - Redistributions in binary form must reproduce the above copyright notice,
Vkadaba 5:0728bde67bdb 46 this list of conditions and the following disclaimer in the documentation
Vkadaba 5:0728bde67bdb 47 and/or other materials provided with the distribution.
Vkadaba 5:0728bde67bdb 48 - Modified versions of the software must be conspicuously marked as such.
Vkadaba 5:0728bde67bdb 49 - This software is licensed solely and exclusively for use with processors
Vkadaba 5:0728bde67bdb 50 manufactured by or for Analog Devices, Inc.
Vkadaba 5:0728bde67bdb 51 - This software may not be combined or merged with other code in any manner
Vkadaba 5:0728bde67bdb 52 that would cause the software to become subject to terms and conditions
Vkadaba 5:0728bde67bdb 53 which differ from those listed here.
Vkadaba 5:0728bde67bdb 54 - Neither the name of Analog Devices, Inc. nor the names of its
Vkadaba 5:0728bde67bdb 55 contributors may be used to endorse or promote products derived
Vkadaba 5:0728bde67bdb 56 from this software without specific prior written permission.
Vkadaba 5:0728bde67bdb 57 - The use of this software may or may not infringe the patent rights of one
Vkadaba 5:0728bde67bdb 58 or more patent holders. This license does not release you from the
Vkadaba 5:0728bde67bdb 59 requirement that you obtain separate licenses from these patent holders
Vkadaba 5:0728bde67bdb 60 to use this software.
Vkadaba 5:0728bde67bdb 61
Vkadaba 5:0728bde67bdb 62 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND ANY
Vkadaba 5:0728bde67bdb 63 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
Vkadaba 5:0728bde67bdb 64 TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
Vkadaba 5:0728bde67bdb 65 NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
Vkadaba 5:0728bde67bdb 66 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES
Vkadaba 5:0728bde67bdb 67 (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL
Vkadaba 5:0728bde67bdb 68 PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
Vkadaba 5:0728bde67bdb 69 OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Vkadaba 5:0728bde67bdb 70 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
Vkadaba 5:0728bde67bdb 71 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
Vkadaba 5:0728bde67bdb 72 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Vkadaba 5:0728bde67bdb 73 */
Vkadaba 5:0728bde67bdb 74
Vkadaba 5:0728bde67bdb 75 /*!
Vkadaba 5:0728bde67bdb 76 ******************************************************************************
Vkadaba 5:0728bde67bdb 77 * @file: admw1001_config.h
Vkadaba 5:0728bde67bdb 78 * @brief: Configuration type definitions for ADMW1001.
Vkadaba 5:0728bde67bdb 79 *-----------------------------------------------------------------------------
Vkadaba 5:0728bde67bdb 80 */
Vkadaba 5:0728bde67bdb 81
Vkadaba 5:0728bde67bdb 82 #ifndef __ADMW1001_CONFIG_H__
Vkadaba 5:0728bde67bdb 83 #define __ADMW1001_CONFIG_H__
Vkadaba 5:0728bde67bdb 84
Vkadaba 5:0728bde67bdb 85 #include "admw_platform.h"
Vkadaba 5:0728bde67bdb 86 #include "admw1001_sensor_types.h"
Vkadaba 5:0728bde67bdb 87
Vkadaba 5:0728bde67bdb 88 /* Undefine for versions prior to V2.3. */
Vkadaba 5:0728bde67bdb 89 #undef __V2_3_CFG_FMT__
Vkadaba 5:0728bde67bdb 90
Vkadaba 5:0728bde67bdb 91
Vkadaba 5:0728bde67bdb 92 /*! @addtogroup ADMW1001_Api
Vkadaba 5:0728bde67bdb 93 * @{
Vkadaba 5:0728bde67bdb 94 */
Vkadaba 5:0728bde67bdb 95
Vkadaba 5:0728bde67bdb 96 #ifdef __cplusplus
Vkadaba 5:0728bde67bdb 97 extern "C" {
Vkadaba 5:0728bde67bdb 98 #endif
Vkadaba 5:0728bde67bdb 99
Vkadaba 5:0728bde67bdb 100 /*! Maximum length allowed for a digital sensor command */
Vkadaba 5:0728bde67bdb 101 #define ADMW1001_SENSOR_COMMAND_MAX_LENGTH 7
Vkadaba 5:0728bde67bdb 102
Vkadaba 5:0728bde67bdb 103 /*! ADMW1001 channel priority options */
Vkadaba 5:0728bde67bdb 104 typedef enum {
Vkadaba 5:0728bde67bdb 105 ADMW1001_CHANNEL_PRIORITY_0 = 0,
Vkadaba 5:0728bde67bdb 106 ADMW1001_CHANNEL_PRIORITY_1,
Vkadaba 5:0728bde67bdb 107 ADMW1001_CHANNEL_PRIORITY_2,
Vkadaba 5:0728bde67bdb 108 ADMW1001_CHANNEL_PRIORITY_3,
Vkadaba 5:0728bde67bdb 109 ADMW1001_CHANNEL_PRIORITY_4,
Vkadaba 5:0728bde67bdb 110 ADMW1001_CHANNEL_PRIORITY_5,
Vkadaba 5:0728bde67bdb 111 ADMW1001_CHANNEL_PRIORITY_6,
Vkadaba 5:0728bde67bdb 112 ADMW1001_CHANNEL_PRIORITY_7,
Vkadaba 5:0728bde67bdb 113 ADMW1001_CHANNEL_PRIORITY_8,
Vkadaba 5:0728bde67bdb 114 ADMW1001_CHANNEL_PRIORITY_9,
Vkadaba 5:0728bde67bdb 115 ADMW1001_CHANNEL_PRIORITY_10,
Vkadaba 5:0728bde67bdb 116 ADMW1001_CHANNEL_PRIORITY_11,
Vkadaba 5:0728bde67bdb 117 ADMW1001_CHANNEL_PRIORITY_12,
Vkadaba 5:0728bde67bdb 118 ADMW1001_CHANNEL_PRIORITY_13,
Vkadaba 5:0728bde67bdb 119 ADMW1001_CHANNEL_PRIORITY_14,
Vkadaba 5:0728bde67bdb 120 ADMW1001_CHANNEL_PRIORITY_15,
Vkadaba 5:0728bde67bdb 121
Vkadaba 5:0728bde67bdb 122 ADMW1001_CHANNEL_PRIORITY_HIGHEST = ADMW1001_CHANNEL_PRIORITY_0,
Vkadaba 5:0728bde67bdb 123 ADMW1001_CHANNEL_PRIORITY_LOWEST = ADMW1001_CHANNEL_PRIORITY_15,
Vkadaba 5:0728bde67bdb 124 } ADMW1001_CHANNEL_PRIORITY;
Vkadaba 5:0728bde67bdb 125
Vkadaba 5:0728bde67bdb 126 /*! ADMW1001 operating mode options */
Vkadaba 5:0728bde67bdb 127 typedef enum {
Vkadaba 5:0728bde67bdb 128 ADMW1001_OPERATING_MODE_SINGLECYCLE = 0,
Vkadaba 5:0728bde67bdb 129 /*!< Executes a single measurement cycle and stops */
Vkadaba 5:0728bde67bdb 130 ADMW1001_OPERATING_MODE_CONTINUOUS,
Vkadaba 5:0728bde67bdb 131 /*!< Continuously executes measurement cycles */
Vkadaba 5:0728bde67bdb 132 ADMW1001_OPERATING_MODE_MULTICYCLE,
Vkadaba 5:0728bde67bdb 133 /*!< Executes a burst of measurement cycles, repeated at defined intervals */
Vkadaba 5:0728bde67bdb 134 } ADMW1001_OPERATING_MODE;
Vkadaba 5:0728bde67bdb 135
Vkadaba 5:0728bde67bdb 136 /*! ADMW1001 data ready mode options */
Vkadaba 5:0728bde67bdb 137 typedef enum {
Vkadaba 5:0728bde67bdb 138 ADMW1001_DATAREADY_PER_CONVERSION = 0,
Vkadaba 5:0728bde67bdb 139 /*!< The DATAREADY signal is asserted after completion of each conversion
Vkadaba 5:0728bde67bdb 140 * - a single data sample only from the latest completed conversion is
Vkadaba 5:0728bde67bdb 141 * stored in this mode
Vkadaba 5:0728bde67bdb 142 */
Vkadaba 5:0728bde67bdb 143 ADMW1001_DATAREADY_PER_CYCLE,
Vkadaba 5:0728bde67bdb 144 /*!< The DATAREADY signal is asserted after completion of each measurement
Vkadaba 5:0728bde67bdb 145 * cycle
Vkadaba 5:0728bde67bdb 146 * - data samples only from the lastest completed measurement cycle are
Vkadaba 5:0728bde67bdb 147 * stored in this mode
Vkadaba 5:0728bde67bdb 148 */
Vkadaba 5:0728bde67bdb 149 ADMW1001_DATAREADY_PER_MULTICYCLE_BURST,
Vkadaba 5:0728bde67bdb 150 /*!< The DATAREADY signal is asserted after completion of each burst of
Vkadaba 5:0728bde67bdb 151 * measurement cycles
Vkadaba 5:0728bde67bdb 152 * - applicable only when @ref ADMW1001_OPERATING_MODE_MULTICYCLE
Vkadaba 5:0728bde67bdb 153 * is also selected
Vkadaba 5:0728bde67bdb 154 * - data samples only from the lastest completed burst of measurement
Vkadaba 5:0728bde67bdb 155 * cycles are stored in this mode
Vkadaba 5:0728bde67bdb 156 */
Vkadaba 5:0728bde67bdb 157 } ADMW1001_DATAREADY_MODE;
Vkadaba 5:0728bde67bdb 158
Vkadaba 5:0728bde67bdb 159 /*! ADMW1001 calibration mode options */
Vkadaba 5:0728bde67bdb 160 typedef enum {
Vkadaba 5:0728bde67bdb 161 ADMW1001_NO_CALIBRATION = 0,
Vkadaba 5:0728bde67bdb 162 /*!< No full scale ADC calibration is performed after a latch command is sent.
Vkadaba 5:0728bde67bdb 163 */
Vkadaba 5:0728bde67bdb 164 ADMW1001_DO_CALIBRATION,
Vkadaba 5:0728bde67bdb 165 /*!< Full scale ADC Calibration is performed after a latch command is sent.
Vkadaba 5:0728bde67bdb 166 */
Vkadaba 5:0728bde67bdb 167 } ADMW1001_CALIBRATION_MODE;
Vkadaba 5:0728bde67bdb 168
Vkadaba 5:0728bde67bdb 169 /*! ADMW1001 power mode options */
Vkadaba 5:0728bde67bdb 170 typedef enum {
Vkadaba 5:0728bde67bdb 171 ADMW1001_POWER_MODE_LOW = 1,
Vkadaba 5:0728bde67bdb 172 /*!< Lowest ADC power consumption mode, with lowest conversion rate */
Vkadaba 5:0728bde67bdb 173 ADMW1001_POWER_MODE_MID,
Vkadaba 5:0728bde67bdb 174 /*!< Medium ADC power consumption mode, with medium conversion rate */
Vkadaba 5:0728bde67bdb 175 ADMW1001_POWER_MODE_FULL,
Vkadaba 5:0728bde67bdb 176 /*!< Highest ADC power consumption mode, with highest conversion rate */
Vkadaba 5:0728bde67bdb 177 } ADMW1001_POWER_MODE;
Vkadaba 5:0728bde67bdb 178
Vkadaba 5:0728bde67bdb 179 /*! ADMW1001 measurement cycle types */
Vkadaba 5:0728bde67bdb 180 typedef enum
Vkadaba 5:0728bde67bdb 181 {
Vkadaba 5:0728bde67bdb 182 ADMW1001_CYCLE_TYPE_SWITCH = 0,
Vkadaba 5:0728bde67bdb 183 /*!< Switch channels after every conversion */
Vkadaba 5:0728bde67bdb 184 ADMW1001_CYCLE_TYPE_FULL = 1
Vkadaba 5:0728bde67bdb 185 /*!< Perform full number of requested conversions on a channel
Vkadaba 5:0728bde67bdb 186 * consecutively before switching to the next channel */
Vkadaba 5:0728bde67bdb 187 } ADMW1001_CYCLE_TYPE;
Vkadaba 5:0728bde67bdb 188
Vkadaba 5:0728bde67bdb 189 #ifdef __V2_3_CFG_FMT__
Vkadaba 5:0728bde67bdb 190 /*! ADMW1001 measurement analog filter settling options */
Vkadaba 5:0728bde67bdb 191 typedef enum
Vkadaba 5:0728bde67bdb 192 {
Vkadaba 5:0728bde67bdb 193 ADMW1001_FILTER_SETTLING_ALWAYS = 0,
Vkadaba 5:0728bde67bdb 194 /*!< Allow full settling time to elapse between every measurement from an analog sensor */
Vkadaba 5:0728bde67bdb 195 ADMW1001_FILTER_SETTLING_FAST = 1
Vkadaba 5:0728bde67bdb 196 /*!< Skip settling time between consecutive measurements from an analog sensor */
Vkadaba 5:0728bde67bdb 197 } ADMW1001_FILTER_SETTLING;
Vkadaba 5:0728bde67bdb 198 #endif
Vkadaba 5:0728bde67bdb 199
Vkadaba 5:0728bde67bdb 200 /*! ADMW1001 measurement unit options
Vkadaba 5:0728bde67bdb 201 *
Vkadaba 5:0728bde67bdb 202 * Optionally select a measurement unit for final conversion results.
Vkadaba 5:0728bde67bdb 203 * Currently applicable only to specific temperature sensor types.
Vkadaba 5:0728bde67bdb 204 */
Vkadaba 5:0728bde67bdb 205 typedef enum {
Vkadaba 5:0728bde67bdb 206 ADMW1001_MEASUREMENT_UNIT_UNSPECIFIED = 0,
Vkadaba 5:0728bde67bdb 207 /*!< No measurement unit specified */
Vkadaba 5:0728bde67bdb 208 ADMW1001_MEASUREMENT_UNIT_CELSIUS,
Vkadaba 5:0728bde67bdb 209 /*!< Celsius temperature unit - applicable to temperature sensors only */
Vkadaba 5:0728bde67bdb 210 ADMW1001_MEASUREMENT_UNIT_FAHRENHEIT,
Vkadaba 5:0728bde67bdb 211 /*!< Fahrenheit temperature unit - applicable to temperature sensors only */
Vkadaba 5:0728bde67bdb 212 } ADMW1001_MEASUREMENT_UNIT;
Vkadaba 5:0728bde67bdb 213
Vkadaba 5:0728bde67bdb 214 /*! ADMW1001 Open-Sensor Diagnostics frequency
Vkadaba 5:0728bde67bdb 215 *
Vkadaba 5:0728bde67bdb 216 * Select the per-cycle frequency at which open-sensor diagnostic
Vkadaba 5:0728bde67bdb 217 * checks should be performed. Open-sensor diagnostic checks typically require
Vkadaba 5:0728bde67bdb 218 * specific or time-consuming processing which cannot be executed while a
Vkadaba 5:0728bde67bdb 219 * measurement cycle is running.
Vkadaba 5:0728bde67bdb 220 *
Vkadaba 5:0728bde67bdb 221 * @note Open-sensor diagnostic checks, when performed, will add a delay to the
Vkadaba 5:0728bde67bdb 222 * start of the next measurement cycle.
Vkadaba 5:0728bde67bdb 223 */
Vkadaba 5:0728bde67bdb 224 typedef enum {
Vkadaba 5:0728bde67bdb 225 ADMW1001_OPEN_SENSOR_DIAGNOSTICS_DISABLED = 0,
Vkadaba 5:0728bde67bdb 226 /*!< No Open-Sensor Detection is performed */
Vkadaba 5:0728bde67bdb 227 ADMW1001_OPEN_SENSOR_DIAGNOSTICS_PER_CYCLE,
Vkadaba 5:0728bde67bdb 228 /*!< No Open-Sensor Detection is performed prior to each cycle */
Vkadaba 5:0728bde67bdb 229 ADMW1001_OPEN_SENSOR_DIAGNOSTICS_PER_100_CYCLES,
Vkadaba 5:0728bde67bdb 230 /*!< No Open-Sensor Detection is performed at intervals of 100 cycles */
Vkadaba 5:0728bde67bdb 231 ADMW1001_OPEN_SENSOR_DIAGNOSTICS_PER_1000_CYCLES,
Vkadaba 5:0728bde67bdb 232 /*!< No Open-Sensor Detection is performed at intervals of 1000 cycles */
Vkadaba 5:0728bde67bdb 233 } ADMW1001_OPEN_SENSOR_DIAGNOSTICS;
Vkadaba 5:0728bde67bdb 234
Vkadaba 5:0728bde67bdb 235 /*! ADMW1001 analog input signal amplification gain options
Vkadaba 5:0728bde67bdb 236 *
Vkadaba 5:0728bde67bdb 237 * @note applicable only to ADC analog sensor channels
Vkadaba 5:0728bde67bdb 238 */
Vkadaba 5:0728bde67bdb 239 typedef enum {
Vkadaba 5:0728bde67bdb 240 ADMW1001_ADC_GAIN_1X = 0,
Vkadaba 5:0728bde67bdb 241 /*!< no amplification gain */
Vkadaba 5:0728bde67bdb 242 ADMW1001_ADC_GAIN_2X,
Vkadaba 5:0728bde67bdb 243 /*!< x2 amplification gain */
Vkadaba 5:0728bde67bdb 244 ADMW1001_ADC_GAIN_4X,
Vkadaba 5:0728bde67bdb 245 /*!< x4 amplification gain */
Vkadaba 5:0728bde67bdb 246 ADMW1001_ADC_GAIN_8X,
Vkadaba 5:0728bde67bdb 247 /*!< x8 amplification gain */
Vkadaba 5:0728bde67bdb 248 ADMW1001_ADC_GAIN_16X,
Vkadaba 5:0728bde67bdb 249 /*!< x16 amplification gain */
Vkadaba 5:0728bde67bdb 250 ADMW1001_ADC_GAIN_32X,
Vkadaba 5:0728bde67bdb 251 /*!< x32 amplification gain */
Vkadaba 5:0728bde67bdb 252 ADMW1001_ADC_GAIN_64X,
Vkadaba 5:0728bde67bdb 253 /*!< x64 amplification gain */
Vkadaba 5:0728bde67bdb 254 ADMW1001_ADC_GAIN_128X,
Vkadaba 5:0728bde67bdb 255 /*!< x128 amplification gain */
Vkadaba 5:0728bde67bdb 256 } ADMW1001_ADC_GAIN;
Vkadaba 5:0728bde67bdb 257
Vkadaba 5:0728bde67bdb 258 /*! ADMW1001 analog sensor excitation current output level options
Vkadaba 5:0728bde67bdb 259 *
Vkadaba 5:0728bde67bdb 260 * @note applicable only to ADC analog sensor channels, and
Vkadaba 5:0728bde67bdb 261 * specific sensor types
Vkadaba 5:0728bde67bdb 262 */
Vkadaba 5:0728bde67bdb 263 typedef enum {
Vkadaba 5:0728bde67bdb 264 ADMW1001_ADC_EXC_CURRENT_NONE = 0,
Vkadaba 5:0728bde67bdb 265 /*!< Excitation current disabled */
Vkadaba 5:0728bde67bdb 266 ADMW1001_ADC_EXC_CURRENT_50uA,
Vkadaba 5:0728bde67bdb 267 /*!< 50uA excitation current enabled */
Vkadaba 5:0728bde67bdb 268 ADMW1001_ADC_EXC_CURRENT_100uA,
Vkadaba 5:0728bde67bdb 269 /*!< 100uA excitation current */
Vkadaba 5:0728bde67bdb 270 ADMW1001_ADC_EXC_CURRENT_250uA,
Vkadaba 5:0728bde67bdb 271 /*!< 250uA excitation current enabled */
Vkadaba 5:0728bde67bdb 272 ADMW1001_ADC_EXC_CURRENT_500uA,
Vkadaba 5:0728bde67bdb 273 /*!< 500uA excitation current enabled */
Vkadaba 5:0728bde67bdb 274 ADMW1001_ADC_EXC_CURRENT_750uA,
Vkadaba 5:0728bde67bdb 275 /*!< 750uA excitation current enabled */
Vkadaba 5:0728bde67bdb 276 ADMW1001_ADC_EXC_CURRENT_1000uA,
Vkadaba 5:0728bde67bdb 277 /*!< 1mA excitation current enabled */
Vkadaba 5:0728bde67bdb 278 } ADMW1001_ADC_EXC_CURRENT;
Vkadaba 5:0728bde67bdb 279
Vkadaba 5:0728bde67bdb 280 /*! ADMW1001 analog sensor excitation current ratios used for diode sensor
Vkadaba 5:0728bde67bdb 281 *
Vkadaba 5:0728bde67bdb 282 * @note applicable only to a diode sensor
Vkadaba 5:0728bde67bdb 283 */
Vkadaba 5:0728bde67bdb 284 typedef enum {
Vkadaba 5:0728bde67bdb 285 ADMW1001_ADC_EXC_CURRENT_IOUT_DIODE_DEFAULT = 0,
Vkadaba 5:0728bde67bdb 286 ADMW1001_ADC_EXC_CURRENT_IOUT_DIODE_MAX,
Vkadaba 5:0728bde67bdb 287 } ADMW1001_ADC_EXC_CURRENT_DIODE_RATIO;
Vkadaba 5:0728bde67bdb 288
Vkadaba 5:0728bde67bdb 289 /*! ADMW1001 analog reference selection options
Vkadaba 5:0728bde67bdb 290 *
Vkadaba 5:0728bde67bdb 291 * @note applicable only to ADC analog sensor channels, and
Vkadaba 5:0728bde67bdb 292 * specific sensor types
Vkadaba 5:0728bde67bdb 293 */
Vkadaba 5:0728bde67bdb 294 typedef enum {
Vkadaba 5:0728bde67bdb 295 ADMW1001_ADC_REFERENCE_NONE = 0,
Vkadaba 5:0728bde67bdb 296 /*!< No reference is selected */
Vkadaba 5:0728bde67bdb 297
Vkadaba 5:0728bde67bdb 298 ADMW1001_ADC_REFERENCE_RESISTOR_INTERNAL_1,
Vkadaba 5:0728bde67bdb 299 /*!< Internal reference resistor #1 (4320 ohms) is selected */
Vkadaba 5:0728bde67bdb 300 ADMW1001_ADC_REFERENCE_RESISTOR_INTERNAL_2,
Vkadaba 5:0728bde67bdb 301 /*!< Internal reference resistor #2 (10000 ohms) is selected */
Vkadaba 5:0728bde67bdb 302 ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
Vkadaba 5:0728bde67bdb 303 /*!< Internal ADC voltage reference (2.5V) is selected */
Vkadaba 5:0728bde67bdb 304 ADMW1001_ADC_REFERENCE_VOLTAGE_AVDD,
Vkadaba 5:0728bde67bdb 305 /*!< Analag Supply Voltage AVDD reference (typically 3.3V) is selected */
Vkadaba 5:0728bde67bdb 306
Vkadaba 5:0728bde67bdb 307 ADMW1001_ADC_REFERENCE_RESISTOR_EXTERNAL_1,
Vkadaba 5:0728bde67bdb 308 /*!< External user-supplied reference resistor #1 is selected
Vkadaba 5:0728bde67bdb 309 *
Vkadaba 5:0728bde67bdb 310 * @note reference resistor value externalRef1Value must be specified
Vkadaba 5:0728bde67bdb 311 * (see @ref ADMW1001_MEASUREMENT_CONFIG) */
Vkadaba 5:0728bde67bdb 312 ADMW1001_ADC_REFERENCE_RESISTOR_EXTERNAL_2,
Vkadaba 5:0728bde67bdb 313 /*!< External user-supplied reference resistor #2 is selected
Vkadaba 5:0728bde67bdb 314 *
Vkadaba 5:0728bde67bdb 315 * @note reference resistor value externalRef2Value must be specified
Vkadaba 5:0728bde67bdb 316 * (see @ref ADMW1001_MEASUREMENT_CONFIG) */
Vkadaba 5:0728bde67bdb 317 ADMW1001_ADC_REFERENCE_VOLTAGE_EXTERNAL_1,
Vkadaba 5:0728bde67bdb 318 /*!< External user-supplied reference voltage #1 is selected
Vkadaba 5:0728bde67bdb 319 *
Vkadaba 5:0728bde67bdb 320 * @note reference voltage value externalRef1Value must be specified
Vkadaba 5:0728bde67bdb 321 * (see @ref ADMW1001_MEASUREMENT_CONFIG) */
Vkadaba 5:0728bde67bdb 322 ADMW1001_ADC_REFERENCE_VOLTAGE_EXTERNAL_2,
Vkadaba 5:0728bde67bdb 323 /*!< External user-supplied reference voltage #2 is selected
Vkadaba 5:0728bde67bdb 324 *
Vkadaba 5:0728bde67bdb 325 * @note reference voltage value externalRef2Value must be specified
Vkadaba 5:0728bde67bdb 326 * (see @ref ADMW1001_MEASUREMENT_CONFIG) */
Vkadaba 5:0728bde67bdb 327 ADMW1001_ADC_REFERENCE_BRIDGE_EXCITATION,
Vkadaba 5:0728bde67bdb 328 /*!< Bridge Excition Voltage is selected as reference
Vkadaba 5:0728bde67bdb 329 *
Vkadaba 5:0728bde67bdb 330 * @note this reference MUST be selected for 4/6-wire bridge sensor types
Vkadaba 5:0728bde67bdb 331 * (see @ref ADMW1001_ADC_SENSOR_TYPE) */
Vkadaba 5:0728bde67bdb 332 } ADMW1001_ADC_REFERENCE_TYPE;
Vkadaba 5:0728bde67bdb 333
Vkadaba 5:0728bde67bdb 334 /*! ADMW1001 analog filter selection options
Vkadaba 5:0728bde67bdb 335 *
Vkadaba 5:0728bde67bdb 336 * @note applicable only to ADC analog sensor channels
Vkadaba 5:0728bde67bdb 337 */
Vkadaba 5:0728bde67bdb 338 typedef enum {
Vkadaba 5:0728bde67bdb 339 ADMW1001_ADC_FILTER_SINC4 = 1,
Vkadaba 5:0728bde67bdb 340 /*!< SINC4 filter
Vkadaba 5:0728bde67bdb 341 *
Vkadaba 5:0728bde67bdb 342 * @note The number of input samples to be averaged by the filter
Vkadaba 5:0728bde67bdb 343 * must be specified by fs (see @ref ADMW1001_ADC_FILTER_CONFIG).
Vkadaba 5:0728bde67bdb 344 * The fs value affects the output sample rate and settling times
Vkadaba 5:0728bde67bdb 345 * of the ADC */
Vkadaba 5:0728bde67bdb 346 ADMW1001_ADC_FILTER_FIR_20SPS,
Vkadaba 5:0728bde67bdb 347 /*!< FIR post filter, producing a 20sps output sample rate */
Vkadaba 5:0728bde67bdb 348 ADMW1001_ADC_FILTER_FIR_25SPS,
Vkadaba 5:0728bde67bdb 349 /*!< FIR post filter, producing a 25sps output sample rate */
Vkadaba 5:0728bde67bdb 350 } ADMW1001_ADC_FILTER_TYPE;
Vkadaba 5:0728bde67bdb 351
Vkadaba 5:0728bde67bdb 352 /*! ADMW1001 FFT sequence mode options
Vkadaba 5:0728bde67bdb 353 *
Vkadaba 5:0728bde67bdb 354 * @note applicable only for FFT measurement modes
Vkadaba 5:0728bde67bdb 355 */
Vkadaba 5:0728bde67bdb 356 typedef enum {
Vkadaba 5:0728bde67bdb 357 ADMW1001_FFT_MODE_SINGLE = 0,
Vkadaba 5:0728bde67bdb 358 /*!< Performs a single sequence of FFTs on selected channels and stops */
Vkadaba 5:0728bde67bdb 359 ADMW1001_FFT_MODE_CONTINUOUS,
Vkadaba 5:0728bde67bdb 360 /*!< Performs continuous sequences of FFTs on selected channels */
Vkadaba 5:0728bde67bdb 361 } ADMW1001_FFT_MODE;
Vkadaba 5:0728bde67bdb 362
Vkadaba 5:0728bde67bdb 363 /*! ADMW1001 FFT size options (number of bins)
Vkadaba 5:0728bde67bdb 364 *
Vkadaba 5:0728bde67bdb 365 * @note applicable only for FFT measurement modes
Vkadaba 5:0728bde67bdb 366 */
Vkadaba 5:0728bde67bdb 367 typedef enum {
Vkadaba 5:0728bde67bdb 368 ADMW1001_FFT_SIZE_256 = 0,
Vkadaba 5:0728bde67bdb 369 /*!< 256 bins */
Vkadaba 5:0728bde67bdb 370 ADMW1001_FFT_SIZE_512,
Vkadaba 5:0728bde67bdb 371 /*!< 512 bins */
Vkadaba 5:0728bde67bdb 372 ADMW1001_FFT_SIZE_1024,
Vkadaba 5:0728bde67bdb 373 /*!< 1024 bins */
Vkadaba 5:0728bde67bdb 374 ADMW1001_FFT_SIZE_2048,
Vkadaba 5:0728bde67bdb 375 /*!< 2048 bins */
Vkadaba 5:0728bde67bdb 376 } ADMW1001_FFT_SIZE;
Vkadaba 5:0728bde67bdb 377
Vkadaba 5:0728bde67bdb 378 /*! ADMW1001 FFT window type options
Vkadaba 5:0728bde67bdb 379 *
Vkadaba 5:0728bde67bdb 380 * @note applicable only for FFT measurement modes
Vkadaba 5:0728bde67bdb 381 */
Vkadaba 5:0728bde67bdb 382 typedef enum {
Vkadaba 5:0728bde67bdb 383 ADMW1001_FFT_WINDOW_NONE = 0,
Vkadaba 5:0728bde67bdb 384 /*!< No Window */
Vkadaba 5:0728bde67bdb 385 ADMW1001_FFT_WINDOW_HANN,
Vkadaba 5:0728bde67bdb 386 /*!< Hann Window */
Vkadaba 5:0728bde67bdb 387 ADMW1001_FFT_WINDOW_BLACKMAN_HARRIS,
Vkadaba 5:0728bde67bdb 388 /*!< Blackman-Harris Window */
Vkadaba 5:0728bde67bdb 389 } ADMW1001_FFT_WINDOW;
Vkadaba 5:0728bde67bdb 390
Vkadaba 5:0728bde67bdb 391 /*! ADMW1001 FFT output format options
Vkadaba 5:0728bde67bdb 392 *
Vkadaba 5:0728bde67bdb 393 * @note applicable only for FFT measurement modes
Vkadaba 5:0728bde67bdb 394 */
Vkadaba 5:0728bde67bdb 395 typedef enum {
Vkadaba 5:0728bde67bdb 396 ADMW1001_FFT_OUTPUT_FULL = 0,
Vkadaba 5:0728bde67bdb 397 /*!< N/2-Term Amplitude Response */
Vkadaba 5:0728bde67bdb 398 ADMW1001_FFT_OUTPUT_FULL_WITH_RAW,
Vkadaba 5:0728bde67bdb 399 /**< N/2-Term Amplitude Response Plus N Raw ADC Samples */
Vkadaba 5:0728bde67bdb 400 ADMW1001_FFT_OUTPUT_MAX16,
Vkadaba 5:0728bde67bdb 401 /*!< Bin-Number and Amplitude of 16 Highest Peaks of Amplitude Response */
Vkadaba 5:0728bde67bdb 402 } ADMW1001_FFT_OUTPUT;
Vkadaba 5:0728bde67bdb 403
Vkadaba 5:0728bde67bdb 404 /*! ADMW1001 I2C clock speed options
Vkadaba 5:0728bde67bdb 405 *
Vkadaba 5:0728bde67bdb 406 * @note applicable only for I2C sensors
Vkadaba 5:0728bde67bdb 407 */
Vkadaba 5:0728bde67bdb 408 typedef enum
Vkadaba 5:0728bde67bdb 409 {
Vkadaba 5:0728bde67bdb 410 ADMW1001_DIGITAL_SENSOR_COMMS_I2C_CLOCK_SPEED_100K = 0,
Vkadaba 5:0728bde67bdb 411 /*!< 100kHz I2C clock speed */
Vkadaba 5:0728bde67bdb 412 ADMW1001_DIGITAL_SENSOR_COMMS_I2C_CLOCK_SPEED_400K,
Vkadaba 5:0728bde67bdb 413 /*!< 400kHz I2C clock speed */
Vkadaba 5:0728bde67bdb 414 } ADMW1001_DIGITAL_SENSOR_COMMS_I2C_CLOCK_SPEED;
Vkadaba 5:0728bde67bdb 415
Vkadaba 5:0728bde67bdb 416 /*! ADMW1001 UART baud rate options
Vkadaba 5:0728bde67bdb 417 *
Vkadaba 5:0728bde67bdb 418 * @note applicable only for UART sensors
Vkadaba 5:0728bde67bdb 419 */
Vkadaba 5:0728bde67bdb 420 typedef enum
Vkadaba 5:0728bde67bdb 421 {
Vkadaba 5:0728bde67bdb 422 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_115200 = 0,
Vkadaba 5:0728bde67bdb 423 /*!< 115200 UART baud rate */
Vkadaba 5:0728bde67bdb 424 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_57600,
Vkadaba 5:0728bde67bdb 425 /*!< 57600 UART baud rate */
Vkadaba 5:0728bde67bdb 426 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_38400,
Vkadaba 5:0728bde67bdb 427 /*!< 38400 UART baud rate */
Vkadaba 5:0728bde67bdb 428 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_19200,
Vkadaba 5:0728bde67bdb 429 /*!< 19200 UART baud rate */
Vkadaba 5:0728bde67bdb 430 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_9600,
Vkadaba 5:0728bde67bdb 431 /*!< 9600 UART baud rate */
Vkadaba 5:0728bde67bdb 432 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_4800,
Vkadaba 5:0728bde67bdb 433 /*!< 4800 UART baud rate */
Vkadaba 5:0728bde67bdb 434 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_2400,
Vkadaba 5:0728bde67bdb 435 /*!< 2400 UART baud rate */
Vkadaba 5:0728bde67bdb 436 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE_1200,
Vkadaba 5:0728bde67bdb 437 /*!< 1200 UART baud rate */
Vkadaba 5:0728bde67bdb 438 } ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE;
Vkadaba 5:0728bde67bdb 439
Vkadaba 5:0728bde67bdb 440 /*! ADMW1001 UART line config options
Vkadaba 5:0728bde67bdb 441 *
Vkadaba 5:0728bde67bdb 442 * @note applicable only for UART sensors
Vkadaba 5:0728bde67bdb 443 */
Vkadaba 5:0728bde67bdb 444 typedef enum
Vkadaba 5:0728bde67bdb 445 {
Vkadaba 5:0728bde67bdb 446 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8N1 = 0,
Vkadaba 5:0728bde67bdb 447 /*!< UART line control 8 data bits / no parity / 1 stop bit */
Vkadaba 5:0728bde67bdb 448 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8N2,
Vkadaba 5:0728bde67bdb 449 /*!< UART line control 8 data bits / no parity / 2 stop bits */
Vkadaba 5:0728bde67bdb 450 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8N3,
Vkadaba 5:0728bde67bdb 451 /*!< UART line control 8 data bits / no parity / 3 stop bits */
Vkadaba 5:0728bde67bdb 452 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8E1,
Vkadaba 5:0728bde67bdb 453 /*!< UART line control 8 data bits / even parity / 1 stop bit */
Vkadaba 5:0728bde67bdb 454 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8E2,
Vkadaba 5:0728bde67bdb 455 /*!< UART line control 8 data bits / even parity / 2 stop bits */
Vkadaba 5:0728bde67bdb 456 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8E3,
Vkadaba 5:0728bde67bdb 457 /*!< UART line control 8 data bits / even parity / 3 stop bits */
Vkadaba 5:0728bde67bdb 458 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8O1,
Vkadaba 5:0728bde67bdb 459 /*!< UART line control 8 data bits / odd parity / 1 stop bit */
Vkadaba 5:0728bde67bdb 460 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8O2,
Vkadaba 5:0728bde67bdb 461 /*!< UART line control 8 data bits / odd parity / 2 stop bits */
Vkadaba 5:0728bde67bdb 462 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG_8O3,
Vkadaba 5:0728bde67bdb 463 /*!< UART line control 8 data bits / odd parity / 3 stop bits */
Vkadaba 5:0728bde67bdb 464 } ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG;
Vkadaba 5:0728bde67bdb 465
Vkadaba 5:0728bde67bdb 466 /*! ADMW1001 SPI mode options
Vkadaba 5:0728bde67bdb 467 *
Vkadaba 5:0728bde67bdb 468 * @note applicable only for SPI sensors
Vkadaba 5:0728bde67bdb 469 */
Vkadaba 5:0728bde67bdb 470 typedef enum
Vkadaba 5:0728bde67bdb 471 {
Vkadaba 5:0728bde67bdb 472 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_MODE_0 = 0,
Vkadaba 5:0728bde67bdb 473 /*!< SPI mode 0 Clock Polarity = 0 Clock Phase = 0 */
Vkadaba 5:0728bde67bdb 474 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_MODE_1,
Vkadaba 5:0728bde67bdb 475 /*!< SPI mode 0 Clock Polarity = 0 Clock Phase = 1 */
Vkadaba 5:0728bde67bdb 476 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_MODE_2,
Vkadaba 5:0728bde67bdb 477 /*!< SPI mode 0 Clock Polarity = 1 Clock Phase = 0 */
Vkadaba 5:0728bde67bdb 478 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_MODE_3,
Vkadaba 5:0728bde67bdb 479 /*!< SPI mode 0 Clock Polarity = 1 Clock Phase = 1 */
Vkadaba 5:0728bde67bdb 480 } ADMW1001_DIGITAL_SENSOR_COMMS_SPI_MODE;
Vkadaba 5:0728bde67bdb 481
Vkadaba 5:0728bde67bdb 482 /*! ADMW1001 SPI clock speed options
Vkadaba 5:0728bde67bdb 483 *
Vkadaba 5:0728bde67bdb 484 * @note applicable only for SPI sensors
Vkadaba 5:0728bde67bdb 485 */
Vkadaba 5:0728bde67bdb 486 typedef enum
Vkadaba 5:0728bde67bdb 487 {
Vkadaba 5:0728bde67bdb 488 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_13MHZ = 0,
Vkadaba 5:0728bde67bdb 489 /*!< SPI Clock Speed configured to 13MHz */
Vkadaba 5:0728bde67bdb 490 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_6_5MHZ,
Vkadaba 5:0728bde67bdb 491 /*!< SPI Clock Speed configured to 6.5MHz */
Vkadaba 5:0728bde67bdb 492 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_3_25MHZ,
Vkadaba 5:0728bde67bdb 493 /*!< SPI Clock Speed configured to 3.25MHz */
Vkadaba 5:0728bde67bdb 494 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_1_625MHZ,
Vkadaba 5:0728bde67bdb 495 /*!< SPI Clock Speed configured to 1.625MHz */
Vkadaba 5:0728bde67bdb 496 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_812KHZ,
Vkadaba 5:0728bde67bdb 497 /*!< SPI Clock Speed configured to 812kHz */
Vkadaba 5:0728bde67bdb 498 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_406KHZ,
Vkadaba 5:0728bde67bdb 499 /*!< SPI Clock Speed configured to 406kHz */
Vkadaba 5:0728bde67bdb 500 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_203KHZ,
Vkadaba 5:0728bde67bdb 501 /*!< SPI Clock Speed configured to 203kHz */
Vkadaba 5:0728bde67bdb 502 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_101KHZ,
Vkadaba 5:0728bde67bdb 503 /*!< SPI Clock Speed configured to 101kHz */
Vkadaba 5:0728bde67bdb 504 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_50KHZ,
Vkadaba 5:0728bde67bdb 505 /*!< SPI Clock Speed configured to 50kHz */
Vkadaba 5:0728bde67bdb 506 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_25KHZ,
Vkadaba 5:0728bde67bdb 507 /*!< SPI Clock Speed configured to 25kHz */
Vkadaba 5:0728bde67bdb 508 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_12KHZ,
Vkadaba 5:0728bde67bdb 509 /*!< SPI Clock Speed configured to 12kHz */
Vkadaba 5:0728bde67bdb 510 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_6KHZ,
Vkadaba 5:0728bde67bdb 511 /*!< SPI Clock Speed configured to 6kHz */
Vkadaba 5:0728bde67bdb 512 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_3KHZ,
Vkadaba 5:0728bde67bdb 513 /*!< SPI Clock Speed configured to 3kHz */
Vkadaba 5:0728bde67bdb 514 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_1_5KHZ,
Vkadaba 5:0728bde67bdb 515 /*!< SPI Clock Speed configured to 1.5kHz */
Vkadaba 5:0728bde67bdb 516 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_793HZ,
Vkadaba 5:0728bde67bdb 517 /*!< SPI Clock Speed configured to 793hz */
Vkadaba 5:0728bde67bdb 518 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK_396HZ,
Vkadaba 5:0728bde67bdb 519 /*!< SPI Clock Speed configured to 396hz */
Vkadaba 5:0728bde67bdb 520 } ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK;
Vkadaba 5:0728bde67bdb 521
Vkadaba 5:0728bde67bdb 522 /*! ADMW1001 Power Configuration options */
Vkadaba 5:0728bde67bdb 523 typedef struct {
Vkadaba 5:0728bde67bdb 524 ADMW1001_POWER_MODE powerMode;
Vkadaba 5:0728bde67bdb 525 /*!< Power mode selection */
Vkadaba 5:0728bde67bdb 526 } ADMW1001_POWER_CONFIG;
Vkadaba 5:0728bde67bdb 527
Vkadaba 5:0728bde67bdb 528 /*! ADMW1001 Multi-Cycle Configuration options
Vkadaba 5:0728bde67bdb 529 *
Vkadaba 5:0728bde67bdb 530 * @note required only when ADMW1001_OPERATING_MODE_MULTICYCLE is selected
Vkadaba 5:0728bde67bdb 531 * as the operatingMode (@ref ADMW1001_MEASUREMENT_CONFIG)
Vkadaba 5:0728bde67bdb 532 */
Vkadaba 5:0728bde67bdb 533 typedef struct {
Vkadaba 5:0728bde67bdb 534 uint32_t cyclesPerBurst;
Vkadaba 5:0728bde67bdb 535 /*!< Number of cycles to complete for a single burst */
Vkadaba 5:0728bde67bdb 536 uint32_t burstInterval;
Vkadaba 5:0728bde67bdb 537 /*!< Interval, in seconds, between each successive burst of cycles */
Vkadaba 5:0728bde67bdb 538 } ADMW1001_MULTICYCLE_CONFIG;
Vkadaba 5:0728bde67bdb 539
Vkadaba 5:0728bde67bdb 540 /*! ADMW1001 Measurement Configuration options */
Vkadaba 5:0728bde67bdb 541 typedef struct {
Vkadaba 5:0728bde67bdb 542 ADMW1001_OPERATING_MODE operatingMode;
Vkadaba 5:0728bde67bdb 543 /*!< Operating mode - specifies how measurement cycles are scheduled */
Vkadaba 5:0728bde67bdb 544 ADMW1001_DATAREADY_MODE dataReadyMode;
Vkadaba 5:0728bde67bdb 545 /*!< Data read mode - specifies how output samples are stored for reading */
Vkadaba 5:0728bde67bdb 546 ADMW1001_CALIBRATION_MODE calibrationMode;
Vkadaba 5:0728bde67bdb 547 /*!< Calibration mode - specifies if adc calibration is performed after a latch command */
Vkadaba 5:0728bde67bdb 548 ADMW1001_MULTICYCLE_CONFIG multiCycleConfig;
Vkadaba 5:0728bde67bdb 549 /*!< Multi-Cycle configuration - specifies how bursts of measurement cycles
Vkadaba 5:0728bde67bdb 550 * are scheduled. Applicable only when operatingMode is
Vkadaba 5:0728bde67bdb 551 * ADMW1001_OPERATING_MODE_MULTICYCLE
Vkadaba 5:0728bde67bdb 552 */
Vkadaba 5:0728bde67bdb 553 uint32_t cycleInterval;
Vkadaba 5:0728bde67bdb 554 /*!< Cycle interval - specifies the time interval between the start of each
Vkadaba 5:0728bde67bdb 555 * successive measurement cycle. Applicable only when operatingMode is
Vkadaba 5:0728bde67bdb 556 * not ADMW1001_OPERATING_MODE_SINGLECYCLE
Vkadaba 5:0728bde67bdb 557 */
Vkadaba 5:0728bde67bdb 558 ADMW1001_CYCLE_TYPE cycleType;
Vkadaba 5:0728bde67bdb 559 /*!< Cycle type - specifies how the channel list is traversed with each
Vkadaba 5:0728bde67bdb 560 * conversion during the cycle.
Vkadaba 5:0728bde67bdb 561 */
Vkadaba 5:0728bde67bdb 562 #ifdef __V2_3_CFG_FMT__
Vkadaba 5:0728bde67bdb 563 ADMW1001_FILTER_SETTLING filterSettling;
Vkadaba 5:0728bde67bdb 564 /*!< Analog filter settling - specifies the policy for settling time
Vkadaba 5:0728bde67bdb 565 * between consecutive measurements from an analog channel in a multi-
Vkadaba 5:0728bde67bdb 566 * channel configuration. Note that, in single analog channel
Vkadaba 5:0728bde67bdb 567 * configurations, settling time is always skipped between consecutive
Vkadaba 5:0728bde67bdb 568 * measurements in a measurement cycle.
Vkadaba 5:0728bde67bdb 569 */
Vkadaba 5:0728bde67bdb 570 #endif
Vkadaba 5:0728bde67bdb 571 float32_t externalRef1Value;
Vkadaba 5:0728bde67bdb 572 /*!< Resistance/voltage value connected to external reference input #1.
Vkadaba 5:0728bde67bdb 573 * Applicable only if the selected reference type is
Vkadaba 5:0728bde67bdb 574 * ADMW1001_ADC_REFERENCE_RESISTOR_EXTERNAL_1 or
Vkadaba 5:0728bde67bdb 575 * ADMW1001_ADC_REFERENCE_VOLTAGE_EXTERNAL_1
Vkadaba 5:0728bde67bdb 576 * (see @ref ADMW1001_ADC_REFERENCE_TYPE)
Vkadaba 5:0728bde67bdb 577 */
Vkadaba 5:0728bde67bdb 578 float32_t externalRef2Value;
Vkadaba 5:0728bde67bdb 579 /*!< Resistance/voltage value connected to external reference input #2.
Vkadaba 5:0728bde67bdb 580 * Applicable only if the selected reference type is
Vkadaba 5:0728bde67bdb 581 * ADMW1001_ADC_REFERENCE_RESISTOR_EXTERNAL_2 or
Vkadaba 5:0728bde67bdb 582 * ADMW1001_ADC_REFERENCE_VOLTAGE_EXTERNAL_2
Vkadaba 5:0728bde67bdb 583 * (see @ref ADMW1001_ADC_REFERENCE_TYPE)
Vkadaba 5:0728bde67bdb 584 */
Vkadaba 5:0728bde67bdb 585 bool enableExternalFlash;
Vkadaba 5:0728bde67bdb 586 /*!< Enable the use of external flash memory for storage of samples.
Vkadaba 5:0728bde67bdb 587 */
Vkadaba 5:0728bde67bdb 588 } ADMW1001_MEASUREMENT_CONFIG;
Vkadaba 5:0728bde67bdb 589
Vkadaba 5:0728bde67bdb 590 /*! ADMW1001 ADC Excitation Current output configuration
Vkadaba 5:0728bde67bdb 591 *
Vkadaba 5:0728bde67bdb 592 * @note applicable only to ADC analog sensor channels, and
Vkadaba 5:0728bde67bdb 593 * specific sensor types
Vkadaba 5:0728bde67bdb 594 */
Vkadaba 5:0728bde67bdb 595 typedef struct {
Vkadaba 5:0728bde67bdb 596 ADMW1001_ADC_EXC_CURRENT outputLevel;
Vkadaba 5:0728bde67bdb 597 /*!< Excitation current output level */
Vkadaba 5:0728bde67bdb 598 ADMW1001_ADC_EXC_CURRENT_DIODE_RATIO diodeRatio;
Vkadaba 5:0728bde67bdb 599 /*!< Excitation current output diode ratio */
Vkadaba 5:0728bde67bdb 600 } ADMW1001_ADC_EXC_CURRENT_CONFIG;
Vkadaba 5:0728bde67bdb 601
Vkadaba 5:0728bde67bdb 602 /*! ADMW1001 ADC Filter configuration
Vkadaba 5:0728bde67bdb 603 *
Vkadaba 5:0728bde67bdb 604 * @note applicable only to ADC analog sensor channels
Vkadaba 5:0728bde67bdb 605 */
Vkadaba 5:0728bde67bdb 606 typedef struct {
Vkadaba 5:0728bde67bdb 607 ADMW1001_ADC_FILTER_TYPE type;
Vkadaba 5:0728bde67bdb 608 /*!< Filter type selection */
Vkadaba 5:0728bde67bdb 609 uint32_t fs;
Vkadaba 5:0728bde67bdb 610 /*!< Number of input samples to accumulate and average in the filter.
Vkadaba 5:0728bde67bdb 611 * Applicable only when type is ADMW1001_ADC_FILTER_SINC4 */
Vkadaba 5:0728bde67bdb 612 } ADMW1001_ADC_FILTER_CONFIG;
Vkadaba 5:0728bde67bdb 613
Vkadaba 5:0728bde67bdb 614 /*! ADMW1001 ADC Referemce configuration
Vkadaba 5:0728bde67bdb 615 *
Vkadaba 5:0728bde67bdb 616 * @note applicable only to ADC analog sensor channels
Vkadaba 5:0728bde67bdb 617 */
Vkadaba 5:0728bde67bdb 618 typedef struct {
Vkadaba 5:0728bde67bdb 619 ADMW1001_ADC_REFERENCE_TYPE type;
Vkadaba 5:0728bde67bdb 620 /*!< Filter type selection */
Vkadaba 5:0728bde67bdb 621 bool disableBuffer;
Vkadaba 5:0728bde67bdb 622 /*!< Option to disable internal ADC reference buffer */
Vkadaba 5:0728bde67bdb 623 } ADMW1001_ADC_REFERENCE_CONFIG;
Vkadaba 5:0728bde67bdb 624
Vkadaba 5:0728bde67bdb 625 /*! ADMW1001 ADC analog channel configuration details
Vkadaba 5:0728bde67bdb 626 *
Vkadaba 5:0728bde67bdb 627 * @note applicable only to ADC analog sensor channels
Vkadaba 5:0728bde67bdb 628 */
Vkadaba 5:0728bde67bdb 629 typedef struct {
Vkadaba 5:0728bde67bdb 630 ADMW1001_ADC_SENSOR_TYPE sensor;
Vkadaba 5:0728bde67bdb 631 /*!< Sensor type selection */
Vkadaba 5:0728bde67bdb 632 ADMW1001_ADC_GAIN gain;
Vkadaba 5:0728bde67bdb 633 /*!< ADC Gain selection */
Vkadaba 5:0728bde67bdb 634 ADMW1001_ADC_EXC_CURRENT_CONFIG current;
Vkadaba 5:0728bde67bdb 635 /*!< ADC Excitation Current configuration */
Vkadaba 5:0728bde67bdb 636 ADMW1001_ADC_FILTER_CONFIG filter;
Vkadaba 5:0728bde67bdb 637 /*!< ADC Filter configuration */
Vkadaba 5:0728bde67bdb 638 ADMW1001_ADC_REFERENCE_CONFIG reference;
Vkadaba 5:0728bde67bdb 639 /*!< ADC Reference configuration */
Vkadaba 5:0728bde67bdb 640 bool enableVbias;
Vkadaba 5:0728bde67bdb 641 /*!< Option to enable internal ADC voltage bias */
Vkadaba 5:0728bde67bdb 642 } ADMW1001_ADC_CHANNEL_CONFIG;
Vkadaba 5:0728bde67bdb 643
Vkadaba 5:0728bde67bdb 644 /*! ADMW1001 digital sensor data encoding
Vkadaba 5:0728bde67bdb 645 *
Vkadaba 5:0728bde67bdb 646 * @note applicable only to SPI and I2C digital sensor channels
Vkadaba 5:0728bde67bdb 647 */
Vkadaba 5:0728bde67bdb 648 typedef enum
Vkadaba 5:0728bde67bdb 649 {
Vkadaba 5:0728bde67bdb 650 ADMW1001_DIGITAL_SENSOR_DATA_CODING_NONE,
Vkadaba 5:0728bde67bdb 651 /**< None/Invalid - data format is ignored if coding is set to this value */
Vkadaba 5:0728bde67bdb 652 ADMW1001_DIGITAL_SENSOR_DATA_CODING_UNIPOLAR,
Vkadaba 5:0728bde67bdb 653 /**< Unipolar - unsigned integer values */
Vkadaba 5:0728bde67bdb 654 ADMW1001_DIGITAL_SENSOR_DATA_CODING_TWOS_COMPLEMENT,
Vkadaba 5:0728bde67bdb 655 /**< Twos-complement - signed integer values */
Vkadaba 5:0728bde67bdb 656 ADMW1001_DIGITAL_SENSOR_DATA_CODING_OFFSET_BINARY,
Vkadaba 5:0728bde67bdb 657 /**< Offset Binary - used to represent signed values with unsigned integers,
Vkadaba 5:0728bde67bdb 658 * with the mid-range value representing 0 */
Vkadaba 5:0728bde67bdb 659 } ADMW1001_DIGITAL_SENSOR_DATA_CODING;
Vkadaba 5:0728bde67bdb 660
Vkadaba 5:0728bde67bdb 661 /*! ADMW1001 digital sensor data format configuration
Vkadaba 5:0728bde67bdb 662 *
Vkadaba 5:0728bde67bdb 663 * @note applicable only to SPI and I2C digital sensor channels
Vkadaba 5:0728bde67bdb 664 */
Vkadaba 5:0728bde67bdb 665 typedef struct {
Vkadaba 5:0728bde67bdb 666 ADMW1001_DIGITAL_SENSOR_DATA_CODING coding;
Vkadaba 5:0728bde67bdb 667 /**< Data Encoding of Sensor Result */
Vkadaba 5:0728bde67bdb 668 bool littleEndian;
Vkadaba 5:0728bde67bdb 669 /**< Set as true if data format is little-endian, false otherwise */
Vkadaba 5:0728bde67bdb 670 bool leftJustified;
Vkadaba 5:0728bde67bdb 671 /**< Set as true if data is left-justified in the data frame, false otherwise */
Vkadaba 5:0728bde67bdb 672 uint8_t frameLength;
Vkadaba 5:0728bde67bdb 673 /**< Data frame length (number of bytes to read from the sensor) */
Vkadaba 5:0728bde67bdb 674 uint8_t numDataBits;
Vkadaba 5:0728bde67bdb 675 /**< Number of relevant data bits to extract from the data frame */
Vkadaba 5:0728bde67bdb 676 uint8_t bitOffset;
Vkadaba 5:0728bde67bdb 677 /**< Data bit offset, relative to data alignment within the data frame */
Vkadaba 5:0728bde67bdb 678 } ADMW1001_DIGITAL_SENSOR_DATA_FORMAT;
Vkadaba 5:0728bde67bdb 679
Vkadaba 5:0728bde67bdb 680 /*! ADMW1001 digital sensor command
Vkadaba 5:0728bde67bdb 681 *
Vkadaba 5:0728bde67bdb 682 * @note applicable only to SPI and I2C digital sensor channels
Vkadaba 5:0728bde67bdb 683 */
Vkadaba 5:0728bde67bdb 684 typedef struct {
Vkadaba 5:0728bde67bdb 685 uint8_t command[ADMW1001_SENSOR_COMMAND_MAX_LENGTH];
Vkadaba 5:0728bde67bdb 686 /*!< Optional command bytes to send to the device */
Vkadaba 5:0728bde67bdb 687 uint8_t commandLength;
Vkadaba 5:0728bde67bdb 688 /*!< Number of valid command bytes. Set to 0 if unused */
Vkadaba 5:0728bde67bdb 689 } ADMW1001_DIGITAL_SENSOR_COMMAND;
Vkadaba 5:0728bde67bdb 690
Vkadaba 5:0728bde67bdb 691 /*! ADMW1001 digital sensor calibration param
Vkadaba 5:0728bde67bdb 692 *
Vkadaba 5:0728bde67bdb 693 * @note applicable only to digital sensor channels
Vkadaba 5:0728bde67bdb 694 */
Vkadaba 5:0728bde67bdb 695 typedef struct {
Vkadaba 5:0728bde67bdb 696 uint32_t calibrationParam;
Vkadaba 5:0728bde67bdb 697 /*!< Independently established environmental variable used during calibration
Vkadaba 5:0728bde67bdb 698 * of a digital sensor. Used only if the sensor supports calibration
Vkadaba 5:0728bde67bdb 699 * and expects an environmental parameter
Vkadaba 5:0728bde67bdb 700 */
Vkadaba 5:0728bde67bdb 701 bool enableCalibrationParam;
Vkadaba 5:0728bde67bdb 702 /*!< Allow Calibration_Parameter to be used during calibration of any digital sensor */
Vkadaba 5:0728bde67bdb 703 } ADMW1001_DIGITAL_CALIBRATION_COMMAND;
Vkadaba 5:0728bde67bdb 704
Vkadaba 5:0728bde67bdb 705 /*! ADMW1001 digital sensor communication config
Vkadaba 5:0728bde67bdb 706 *
Vkadaba 5:0728bde67bdb 707 * @note applicable only to digital sensor channels
Vkadaba 5:0728bde67bdb 708 */
Vkadaba 5:0728bde67bdb 709 typedef struct {
Vkadaba 5:0728bde67bdb 710 bool useCustomCommsConfig;
Vkadaba 5:0728bde67bdb 711 /*!< Optional parameter to enable user digital communication settings */
Vkadaba 5:0728bde67bdb 712 ADMW1001_DIGITAL_SENSOR_COMMS_I2C_CLOCK_SPEED i2cClockSpeed;
Vkadaba 5:0728bde67bdb 713 /*!< Optional parameter to configure specific i2c speed for i2c sensor */
Vkadaba 5:0728bde67bdb 714 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_MODE spiMode;
Vkadaba 5:0728bde67bdb 715 /*!< Optional parameter to configure specific spi mode for spi sensor */
Vkadaba 5:0728bde67bdb 716 ADMW1001_DIGITAL_SENSOR_COMMS_SPI_CLOCK spiClock;
Vkadaba 5:0728bde67bdb 717 /*!< Optional parameter to configure specific spi clock for spi sensor */
Vkadaba 5:0728bde67bdb 718 ADMW1001_DIGITAL_SENSOR_COMMS_UART_BAUD_RATE uartBaudRate;
Vkadaba 5:0728bde67bdb 719 /*!< Optional parameter to configure specific uart baud rate for uart sensor */
Vkadaba 5:0728bde67bdb 720 ADMW1001_DIGITAL_SENSOR_COMMS_UART_LINE_CONFIG uartLineConfig;
Vkadaba 5:0728bde67bdb 721 /*!< Optional parameter to configure specific uart line control for uart sensor */
Vkadaba 5:0728bde67bdb 722 } ADMW1001_DIGITAL_SENSOR_COMMS;
Vkadaba 5:0728bde67bdb 723
Vkadaba 5:0728bde67bdb 724 /*! ADMW1001 I2C digital channel configuration details
Vkadaba 5:0728bde67bdb 725 *
Vkadaba 5:0728bde67bdb 726 * @note applicable only to I2C digital sensor channels
Vkadaba 5:0728bde67bdb 727 */
Vkadaba 5:0728bde67bdb 728 typedef struct {
Vkadaba 5:0728bde67bdb 729 ADMW1001_I2C_SENSOR_TYPE sensor;
Vkadaba 5:0728bde67bdb 730 /*!< Sensor type selection */
Vkadaba 5:0728bde67bdb 731 uint32_t deviceAddress;
Vkadaba 5:0728bde67bdb 732 /*!< I2C device address (7-bit) */
Vkadaba 5:0728bde67bdb 733 ADMW1001_DIGITAL_SENSOR_COMMAND configurationCommand;
Vkadaba 5:0728bde67bdb 734 /*!< Optional configuration command to send to the device at start-up.
Vkadaba 5:0728bde67bdb 735 * A default configuration command will be used if this is not specified.
Vkadaba 5:0728bde67bdb 736 * Applicable only to specific I2C sensor types.
Vkadaba 5:0728bde67bdb 737 */
Vkadaba 5:0728bde67bdb 738 ADMW1001_DIGITAL_SENSOR_COMMAND dataRequestCommand;
Vkadaba 5:0728bde67bdb 739 /*!< Optional data request command to send to the device for each sample.
Vkadaba 5:0728bde67bdb 740 * A default data request command will be used if this is not specified.
Vkadaba 5:0728bde67bdb 741 * Applicable only to specific I2C sensor types.
Vkadaba 5:0728bde67bdb 742 */
Vkadaba 5:0728bde67bdb 743 ADMW1001_DIGITAL_SENSOR_DATA_FORMAT dataFormat;
Vkadaba 5:0728bde67bdb 744 /*!< Optional data format configuration to parse/extract data from the device.
Vkadaba 5:0728bde67bdb 745 * A default data format will be used if this is not specified.
Vkadaba 5:0728bde67bdb 746 * Applicable only to specific I2C sensor types
Vkadaba 5:0728bde67bdb 747 */
Vkadaba 5:0728bde67bdb 748 ADMW1001_DIGITAL_CALIBRATION_COMMAND digitalCalibrationParam;
Vkadaba 5:0728bde67bdb 749 /*!< This is used to supply an independently established environmental variable
Vkadaba 5:0728bde67bdb 750 * that must be used during calibration of a [digital] sensor which a)
Vkadaba 5:0728bde67bdb 751 * supports calibration and b) expects an environmental parameter.
Vkadaba 5:0728bde67bdb 752 * An example is a CO2 sensor, which may require the CO2 concentration level
Vkadaba 5:0728bde67bdb 753 * when performing a calibration
Vkadaba 5:0728bde67bdb 754 */
Vkadaba 5:0728bde67bdb 755 ADMW1001_DIGITAL_SENSOR_COMMS configureComms;
Vkadaba 5:0728bde67bdb 756 /*!< Optional configuration to setup a user communication config.
Vkadaba 5:0728bde67bdb 757 * A default configuration will be used if this is not specified.
Vkadaba 5:0728bde67bdb 758 * Applicable only to specific I2C sensor types.
Vkadaba 5:0728bde67bdb 759 */
Vkadaba 5:0728bde67bdb 760 } ADMW1001_I2C_CHANNEL_CONFIG;
Vkadaba 5:0728bde67bdb 761
Vkadaba 5:0728bde67bdb 762 /*! ADMW1001 SPI digital channel configuration details
Vkadaba 5:0728bde67bdb 763 *
Vkadaba 5:0728bde67bdb 764 * @note applicable only to SPI digital sensor channels
Vkadaba 5:0728bde67bdb 765 */
Vkadaba 5:0728bde67bdb 766 typedef struct {
Vkadaba 5:0728bde67bdb 767 ADMW1001_SPI_SENSOR_TYPE sensor;
Vkadaba 5:0728bde67bdb 768 /*!< Sensor type selection */
Vkadaba 5:0728bde67bdb 769 ADMW1001_DIGITAL_SENSOR_COMMAND configurationCommand;
Vkadaba 5:0728bde67bdb 770 /*!< Optional configuration command to send to the device at start-up.
Vkadaba 5:0728bde67bdb 771 * A default configuration command will be used if this is not specified.
Vkadaba 5:0728bde67bdb 772 * Applicable only to specific SPI sensor types.
Vkadaba 5:0728bde67bdb 773 */
Vkadaba 5:0728bde67bdb 774 ADMW1001_DIGITAL_SENSOR_COMMAND dataRequestCommand;
Vkadaba 5:0728bde67bdb 775 /*!< Optional data request command to send to the device for each sample.
Vkadaba 5:0728bde67bdb 776 * A default data request command will be used if this is not specified.
Vkadaba 5:0728bde67bdb 777 * Applicable only to specific SPI sensor types.
Vkadaba 5:0728bde67bdb 778 */
Vkadaba 5:0728bde67bdb 779 ADMW1001_DIGITAL_SENSOR_DATA_FORMAT dataFormat;
Vkadaba 5:0728bde67bdb 780 /*!< Optional data format configuration to parse/extract data from the device.
Vkadaba 5:0728bde67bdb 781 * A default data format will be used if this is not specified.
Vkadaba 5:0728bde67bdb 782 * Applicable only to specific SPI sensor types
Vkadaba 5:0728bde67bdb 783 */
Vkadaba 5:0728bde67bdb 784 ADMW1001_DIGITAL_CALIBRATION_COMMAND digitalCalibrationParam;
Vkadaba 5:0728bde67bdb 785 /*!< This is used to supply an independently established environmental variable
Vkadaba 5:0728bde67bdb 786 * that must be used during calibration of a [digital] sensor which a)
Vkadaba 5:0728bde67bdb 787 * supports calibration and b) expects an environmental parameter.
Vkadaba 5:0728bde67bdb 788 * An example is a CO2 sensor, which may require the CO2 concentration level
Vkadaba 5:0728bde67bdb 789 * when performing a calibration
Vkadaba 5:0728bde67bdb 790 */
Vkadaba 5:0728bde67bdb 791 ADMW1001_DIGITAL_SENSOR_COMMS configureComms;
Vkadaba 5:0728bde67bdb 792 /*!< Optional configuration to setup a user communication config.
Vkadaba 5:0728bde67bdb 793 * A default configuration will be used if this is not specified.
Vkadaba 5:0728bde67bdb 794 * Applicable only to specific SPI sensor types.
Vkadaba 5:0728bde67bdb 795 */
Vkadaba 5:0728bde67bdb 796 } ADMW1001_SPI_CHANNEL_CONFIG;
Vkadaba 5:0728bde67bdb 797
Vkadaba 5:0728bde67bdb 798 /*! ADMW1001 UART digital channel configuration details
Vkadaba 5:0728bde67bdb 799 *
Vkadaba 5:0728bde67bdb 800 * @note applicable only to UART digital sensor channels
Vkadaba 5:0728bde67bdb 801 */
Vkadaba 5:0728bde67bdb 802 typedef struct {
Vkadaba 5:0728bde67bdb 803 ADMW1001_UART_SENSOR_TYPE sensor;
Vkadaba 5:0728bde67bdb 804 /*!< Sensor type selection */
Vkadaba 5:0728bde67bdb 805 ADMW1001_DIGITAL_CALIBRATION_COMMAND digitalCalibrationParam;
Vkadaba 5:0728bde67bdb 806 /*!< This is used to supply an independently established environmental variable
Vkadaba 5:0728bde67bdb 807 * that must be used during calibration of a [digital] sensor which a)
Vkadaba 5:0728bde67bdb 808 * supports calibration and b) expects an environmental parameter.
Vkadaba 5:0728bde67bdb 809 * An example is a CO2 sensor, which may require the CO2 concentration level
Vkadaba 5:0728bde67bdb 810 * when performing a calibration
Vkadaba 5:0728bde67bdb 811 */
Vkadaba 5:0728bde67bdb 812 ADMW1001_DIGITAL_SENSOR_COMMS configureComms;
Vkadaba 5:0728bde67bdb 813 /*!< Optional configuration to setup a user communication config.
Vkadaba 5:0728bde67bdb 814 * A default configuration will be used if this is not specified.
Vkadaba 5:0728bde67bdb 815 * Applicable only to specific UART sensor types.
Vkadaba 5:0728bde67bdb 816 */
Vkadaba 5:0728bde67bdb 817 } ADMW1001_UART_CHANNEL_CONFIG;
Vkadaba 5:0728bde67bdb 818
Vkadaba 5:0728bde67bdb 819 /*! ADMW1001 Measurement Channel configuration details */
Vkadaba 5:0728bde67bdb 820 typedef struct {
Vkadaba 5:0728bde67bdb 821 bool enableChannel;
Vkadaba 5:0728bde67bdb 822 /*!< Option to include this channel in normal measurement cycles */
Vkadaba 5:0728bde67bdb 823 bool enableFFT;
Vkadaba 5:0728bde67bdb 824 /*!< Option to include this channel in FFT measurement cycles */
Vkadaba 5:0728bde67bdb 825 bool disablePublishing;
Vkadaba 5:0728bde67bdb 826 /*!< Option to disable publishing of data samples from this channel. The
Vkadaba 5:0728bde67bdb 827 * channel may still be included in measurement cycles, but data samples
Vkadaba 5:0728bde67bdb 828 * obtained from this channel will not be published. This is typically
Vkadaba 5:0728bde67bdb 829 * used for channels which are required only as a compensation reference
Vkadaba 5:0728bde67bdb 830 * for another channel (e.g. Cold-Junction Compensation channels).
Vkadaba 5:0728bde67bdb 831 */
Vkadaba 5:0728bde67bdb 832 ADMW1001_CHANNEL_ID compensationChannel;
Vkadaba 5:0728bde67bdb 833 /*!< Optional compensation channel. Set to ADMW1001_CHANNEL_ID_NONE if not
Vkadaba 5:0728bde67bdb 834 * required. Typically used for thermocouple sensors that require a
Vkadaba 5:0728bde67bdb 835 * separate measurement of the "cold-junction" temperature, which can be
Vkadaba 5:0728bde67bdb 836 * be provided by an RTD temperature sensor connected on a separate
Vkadaba 5:0728bde67bdb 837 * "compensation channel" */
Vkadaba 5:0728bde67bdb 838 bool enableUnityLut;
Vkadaba 5:0728bde67bdb 839 /*!< Option to choose the LUT for calculations, this implies that the
Vkadaba 5:0728bde67bdb 840 * fundamental measurement for the sensor (typically mV or Ohms)
Vkadaba 5:0728bde67bdb 841 * would be returned as the measurement result.
Vkadaba 5:0728bde67bdb 842 */
Vkadaba 5:0728bde67bdb 843 ADMW1001_MEASUREMENT_UNIT measurementUnit;
Vkadaba 5:0728bde67bdb 844 /*!< Optional measurement unit selection for conversion results. Applicable
Vkadaba 5:0728bde67bdb 845 * only for certain sensor types. Set to
Vkadaba 5:0728bde67bdb 846 * ADMW1001_MEASUREMENT_UNIT_DEFAULT if not applicable.
Vkadaba 5:0728bde67bdb 847 */
Vkadaba 5:0728bde67bdb 848 float32_t lowThreshold;
Vkadaba 5:0728bde67bdb 849 /*!< Optional minimum threshold value for each processed sample, to be
Vkadaba 5:0728bde67bdb 850 * checked prior to publishing. A channel ALERT condition is raised
Vkadaba 5:0728bde67bdb 851 * if the processed value is lower than this threshold. Set to NaN
Vkadaba 5:0728bde67bdb 852 * if not required.
Vkadaba 5:0728bde67bdb 853 */
Vkadaba 5:0728bde67bdb 854 float32_t highThreshold;
Vkadaba 5:0728bde67bdb 855 /*!< Optional maximum threshold value for each processed sample, to be
Vkadaba 5:0728bde67bdb 856 * checked prior to publishing. A channel ALERT condition is raised
Vkadaba 5:0728bde67bdb 857 * if the processed value is higher than this threshold. Set to NaN
Vkadaba 5:0728bde67bdb 858 * if not required.
Vkadaba 5:0728bde67bdb 859 */
Vkadaba 5:0728bde67bdb 860 float32_t offsetAdjustment;
Vkadaba 5:0728bde67bdb 861 /*!< Optional offset adjustment value applied to each processed sample.
Vkadaba 5:0728bde67bdb 862 * Set to NaN or 0.0 if not required.
Vkadaba 5:0728bde67bdb 863 */
Vkadaba 5:0728bde67bdb 864 float32_t gainAdjustment;
Vkadaba 5:0728bde67bdb 865 /*!< Optional gain adjustment value applied to each processed sample.
Vkadaba 5:0728bde67bdb 866 * Set to NaN or 1.0 if not required.
Vkadaba 5:0728bde67bdb 867 */
Vkadaba 5:0728bde67bdb 868 float32_t sensorParameter;
Vkadaba 5:0728bde67bdb 869 /*!< Optional sensor parameter adjustment.
Vkadaba 5:0728bde67bdb 870 * Set to NaN or 0 if not required.
Vkadaba 5:0728bde67bdb 871 */
Vkadaba 5:0728bde67bdb 872 uint32_t measurementsPerCycle;
Vkadaba 5:0728bde67bdb 873 /*!< The number of measurements to obtain from this channel within each
Vkadaba 5:0728bde67bdb 874 * cycle. Each enabled channel is measured in turn, until the number of
Vkadaba 5:0728bde67bdb 875 * measurements requested for the channel has been reached. A different
Vkadaba 5:0728bde67bdb 876 * number of measurements-per-cycle may be specified for each channel.
Vkadaba 5:0728bde67bdb 877 */
Vkadaba 5:0728bde67bdb 878 uint32_t cycleSkipCount;
Vkadaba 5:0728bde67bdb 879 /*!< Optional number of cycles to skip, such that this channel is included
Vkadaba 5:0728bde67bdb 880 * in the sequence in only one of every (cycleSkipCount + 1) cycles that
Vkadaba 5:0728bde67bdb 881 * occur. If set to 0 (default), this channel is included in every cycle;
Vkadaba 5:0728bde67bdb 882 * if set to 1, this channel is included in every 2nd cycle; if set to 2,
Vkadaba 5:0728bde67bdb 883 * this channel is included in every 3rd cycle, and so on.
Vkadaba 5:0728bde67bdb 884 */
Vkadaba 5:0728bde67bdb 885 uint32_t extraSettlingTime;
Vkadaba 5:0728bde67bdb 886 /*!< A minimum settling time is applied internally for each channel, based
Vkadaba 5:0728bde67bdb 887 * on the sensor type. However, additional settling time (microseconds)
Vkadaba 5:0728bde67bdb 888 * can optionally be specified. Set to 0 if not required.
Vkadaba 5:0728bde67bdb 889 */
Vkadaba 5:0728bde67bdb 890 ADMW1001_CHANNEL_PRIORITY priority;
Vkadaba 5:0728bde67bdb 891 /*!< By default, channels are arranged in the measurement sequence based on
Vkadaba 5:0728bde67bdb 892 * ascending order of channel ID. However, a priority-level may be
Vkadaba 5:0728bde67bdb 893 * specified per channel to force a different ordering of the channels,
Vkadaba 5:0728bde67bdb 894 * with higher-priority channels appearing before lower-priority channels.
Vkadaba 5:0728bde67bdb 895 * Channels with equal priority are ordered by ascending order of channel
Vkadaba 5:0728bde67bdb 896 * ID. Lower numbers indicate higher priority, with 0 being the highest.
Vkadaba 5:0728bde67bdb 897 * Set to 0 if not required.
Vkadaba 5:0728bde67bdb 898 */
Vkadaba 5:0728bde67bdb 899 union {
Vkadaba 5:0728bde67bdb 900 ADMW1001_ADC_CHANNEL_CONFIG adcChannelConfig;
Vkadaba 5:0728bde67bdb 901 /*!< ADC channel configuration - applicable only to ADC channels */
Vkadaba 5:0728bde67bdb 902 ADMW1001_I2C_CHANNEL_CONFIG i2cChannelConfig;
Vkadaba 5:0728bde67bdb 903 /*!< I2C channel configuration - applicable only to I2C channels */
Vkadaba 5:0728bde67bdb 904 ADMW1001_SPI_CHANNEL_CONFIG spiChannelConfig;
Vkadaba 5:0728bde67bdb 905 /*!< SPI channel configuration - applicable only to SPI channels */
Vkadaba 5:0728bde67bdb 906 ADMW1001_UART_CHANNEL_CONFIG uartChannelConfig;
Vkadaba 5:0728bde67bdb 907 /*!< UART channel configuration - applicable only to UART channels */
Vkadaba 5:0728bde67bdb 908 };
Vkadaba 5:0728bde67bdb 909 /*!< Only one of adcChannelConfig, i2cChannelConfig, spiChannelConfig or
Vkadaba 5:0728bde67bdb 910 * uartChannelConfig is required, depending on the channel designation
Vkadaba 5:0728bde67bdb 911 * (analog, I2C, SPI or UART)
Vkadaba 5:0728bde67bdb 912 */
Vkadaba 5:0728bde67bdb 913 } ADMW1001_CHANNEL_CONFIG;
Vkadaba 5:0728bde67bdb 914
Vkadaba 5:0728bde67bdb 915 /*! ADMW1001 Diagnostics configuration details */
Vkadaba 5:0728bde67bdb 916 typedef struct {
Vkadaba 5:0728bde67bdb 917 bool disableGlobalDiag;
Vkadaba 5:0728bde67bdb 918 /*!< Option to disable the following diagnostic checks on the ADC:
Vkadaba 5:0728bde67bdb 919 * - Reference Detection errors
Vkadaba 5:0728bde67bdb 920 * - Input under-/over-voltage errors
Vkadaba 5:0728bde67bdb 921 * - Calibration, Conversion and Saturation errors
Vkadaba 5:0728bde67bdb 922 */
Vkadaba 5:0728bde67bdb 923 bool disableMeasurementDiag;
Vkadaba 5:0728bde67bdb 924 /*!< Option to disable additional checks per measurement channel:
Vkadaba 5:0728bde67bdb 925 * - High/low threshold limit violation
Vkadaba 5:0728bde67bdb 926 */
Vkadaba 5:0728bde67bdb 927 #ifdef __V2_3_CFG_FMT__
Vkadaba 5:0728bde67bdb 928 bool disableCriticalTempAbort;
Vkadaba 5:0728bde67bdb 929 /*!< Option to disable abort of measurement cycle if the operating
Vkadaba 5:0728bde67bdb 930 * temperature of the ADMW1001 has exceeded critical limits
Vkadaba 5:0728bde67bdb 931 */
Vkadaba 5:0728bde67bdb 932 #endif
Vkadaba 5:0728bde67bdb 933 ADMW1001_OPEN_SENSOR_DIAGNOSTICS osdFrequency;
Vkadaba 5:0728bde67bdb 934 /*!< Option to enable Open-Circuit Detection at a selected cycle interval */
Vkadaba 5:0728bde67bdb 935 } ADMW1001_DIAGNOSTICS_CONFIG;
Vkadaba 5:0728bde67bdb 936
Vkadaba 5:0728bde67bdb 937 /*! ADMW1001 FFT Measurement Mode configuration options */
Vkadaba 5:0728bde67bdb 938 typedef struct {
Vkadaba 5:0728bde67bdb 939 ADMW1001_FFT_MODE mode;
Vkadaba 5:0728bde67bdb 940 /*!< FFT sequence mode */
Vkadaba 5:0728bde67bdb 941 ADMW1001_FFT_SIZE size;
Vkadaba 5:0728bde67bdb 942 /*!< FFT size selection */
Vkadaba 5:0728bde67bdb 943 ADMW1001_FFT_WINDOW window;
Vkadaba 5:0728bde67bdb 944 /*!< FFT window type selection */
Vkadaba 5:0728bde67bdb 945 ADMW1001_FFT_OUTPUT output;
Vkadaba 5:0728bde67bdb 946 /*!< FFT output type selection */
Vkadaba 5:0728bde67bdb 947 } ADMW1001_FFT_CONFIG;
Vkadaba 5:0728bde67bdb 948
Vkadaba 5:0728bde67bdb 949 #ifdef __V2_3_CFG_FMT__
Vkadaba 5:0728bde67bdb 950 typedef uint16_t ADMW1001_ADVANCED_ACCESS_KEY;
Vkadaba 5:0728bde67bdb 951 #endif
Vkadaba 5:0728bde67bdb 952
Vkadaba 5:0728bde67bdb 953 /*! ADMW1001 Device configuration details */
Vkadaba 5:0728bde67bdb 954 typedef struct {
Vkadaba 5:0728bde67bdb 955 ADMW1001_POWER_CONFIG power;
Vkadaba 5:0728bde67bdb 956 /*!< Power configuration details */
Vkadaba 5:0728bde67bdb 957 ADMW1001_MEASUREMENT_CONFIG measurement;
Vkadaba 5:0728bde67bdb 958 /*!< Measurement configuration details */
Vkadaba 5:0728bde67bdb 959 ADMW1001_DIAGNOSTICS_CONFIG diagnostics;
Vkadaba 5:0728bde67bdb 960 /*!< Diagnostics configuration details */
Vkadaba 5:0728bde67bdb 961 ADMW1001_FFT_CONFIG fft;
Vkadaba 5:0728bde67bdb 962 /*!< FFT configuration details */
Vkadaba 5:0728bde67bdb 963 ADMW1001_CHANNEL_CONFIG channels[ADMW1001_MAX_CHANNELS];
Vkadaba 5:0728bde67bdb 964 /*!< Channel-specific configuration details */
Vkadaba 5:0728bde67bdb 965 #ifdef __V2_3_CFG_FMT__
Vkadaba 5:0728bde67bdb 966 ADMW1001_ADVANCED_ACCESS_KEY advancedAccessKey;
Vkadaba 5:0728bde67bdb 967 #endif
Vkadaba 5:0728bde67bdb 968 /*!< Key to enable access to advanced sensor configuration options */
Vkadaba 5:0728bde67bdb 969 } ADMW1001_CONFIG;
Vkadaba 5:0728bde67bdb 970
Vkadaba 5:0728bde67bdb 971 #ifdef __cplusplus
Vkadaba 5:0728bde67bdb 972 }
Vkadaba 5:0728bde67bdb 973 #endif
Vkadaba 5:0728bde67bdb 974
Vkadaba 5:0728bde67bdb 975 /*!
Vkadaba 5:0728bde67bdb 976 * @}
Vkadaba 5:0728bde67bdb 977 */
Vkadaba 5:0728bde67bdb 978
Vkadaba 5:0728bde67bdb 979 #endif /* __ADMW1001_CONFIG_H__ */
Vkadaba 5:0728bde67bdb 980