Jake Greaves / Mbed OS AdiSense1000_V21
Committer:
Dan O'Donovan
Date:
Mon Mar 26 20:28:05 2018 +0100
Branch:
v2.0
Revision:
27:567abf893938
Parent:
25:c5bff546082f
Child:
29:57edca10d78c
Adding host library and example code for v1.1 release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kevin1990 12:97457cf77bcb 1 /*!
kevin1990 12:97457cf77bcb 2 ******************************************************************************
kevin1990 12:97457cf77bcb 3 * @file: config.c
kevin1990 12:97457cf77bcb 4 * @brief:
kevin1990 12:97457cf77bcb 5 *-----------------------------------------------------------------------------
kevin1990 12:97457cf77bcb 6 *
danodonovan 23:2adb6216b001 7 Copyright 2017 (c) Analog Devices, Inc.
kevin1990 12:97457cf77bcb 8
kevin1990 12:97457cf77bcb 9 All rights reserved.
kevin1990 12:97457cf77bcb 10
danodonovan 23:2adb6216b001 11 Redistribution and use in source and binary forms, with or without
danodonovan 23:2adb6216b001 12 modification, are permitted provided that the following conditions are met:
danodonovan 23:2adb6216b001 13 - Redistributions of source code must retain the above copyright
danodonovan 23:2adb6216b001 14 notice, this list of conditions and the following disclaimer.
danodonovan 23:2adb6216b001 15 - Redistributions in binary form must reproduce the above copyright
danodonovan 23:2adb6216b001 16 notice, this list of conditions and the following disclaimer in
danodonovan 23:2adb6216b001 17 the documentation and/or other materials provided with the
danodonovan 23:2adb6216b001 18 distribution.
kevin1990 12:97457cf77bcb 19 - Neither the name of Analog Devices, Inc. nor the names of its
kevin1990 12:97457cf77bcb 20 contributors may be used to endorse or promote products derived
kevin1990 12:97457cf77bcb 21 from this software without specific prior written permission.
danodonovan 23:2adb6216b001 22 - The use of this software may or may not infringe the patent rights
danodonovan 23:2adb6216b001 23 of one or more patent holders. This license does not release you
danodonovan 23:2adb6216b001 24 from the requirement that you obtain separate licenses from these
danodonovan 23:2adb6216b001 25 patent holders to use this software.
danodonovan 23:2adb6216b001 26 - Use of the software either in source or binary form, must be run
danodonovan 23:2adb6216b001 27 on or directly connected to an Analog Devices Inc. component.
kevin1990 12:97457cf77bcb 28
danodonovan 23:2adb6216b001 29 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
danodonovan 23:2adb6216b001 30 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
danodonovan 23:2adb6216b001 31 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
danodonovan 23:2adb6216b001 32 IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
danodonovan 23:2adb6216b001 33 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
danodonovan 23:2adb6216b001 34 LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
danodonovan 23:2adb6216b001 35 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
danodonovan 23:2adb6216b001 36 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
danodonovan 23:2adb6216b001 37 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
danodonovan 23:2adb6216b001 38 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
kevin1990 12:97457cf77bcb 39 *
kevin1990 12:97457cf77bcb 40 *****************************************************************************/
kevin1990 12:97457cf77bcb 41
kevin1990 12:97457cf77bcb 42 #include "inc/adi_sense_config_types.h"
kevin1990 12:97457cf77bcb 43
kevin1990 12:97457cf77bcb 44 ADI_SENSE_CONFIG multichannel_continuous_config = {
kevin1990 12:97457cf77bcb 45 .versionId = { .major = 1, .minor = 4 },
danodonovan 25:c5bff546082f 46 .productId = ADI_SENSE_PRODUCT_ID_ADSNS1000,
kevin1990 12:97457cf77bcb 47 .adisense1000 = {
kevin1990 12:97457cf77bcb 48 .power = {
kevin1990 12:97457cf77bcb 49 .powerMode = ADI_SENSE_1000_POWER_MODE_FULL,
kevin1990 12:97457cf77bcb 50 },
kevin1990 12:97457cf77bcb 51 .measurement = {
kevin1990 12:97457cf77bcb 52 .operatingMode = ADI_SENSE_1000_OPERATING_MODE_CONTINUOUS,
kevin1990 12:97457cf77bcb 53 .dataReadyMode = ADI_SENSE_1000_DATAREADY_PER_CYCLE,
kevin1990 12:97457cf77bcb 54 .cycleInterval = 5000000,
kevin1990 12:97457cf77bcb 55 },
kevin1990 12:97457cf77bcb 56 .channels = {
kevin1990 12:97457cf77bcb 57 [ADI_SENSE_1000_CHANNEL_ID_CJC_0] = {
kevin1990 12:97457cf77bcb 58 .enableChannel = true,
kevin1990 12:97457cf77bcb 59 .disablePublishing = false,
kevin1990 12:97457cf77bcb 60 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE,
kevin1990 12:97457cf77bcb 61 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 62 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 63 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 64 .sensor = ADI_SENSE_1000_ADC_SENSOR_RTD_2WIRE_PT100_DEF_L1,
kevin1990 12:97457cf77bcb 65 .gain = ADI_SENSE_1000_ADC_GAIN_8X,
kevin1990 12:97457cf77bcb 66 .current = {
kevin1990 12:97457cf77bcb 67 .outputLevel = ADI_SENSE_1000_ADC_EXC_CURRENT_500uA,
kevin1990 12:97457cf77bcb 68 },
kevin1990 12:97457cf77bcb 69 .filter = {
kevin1990 12:97457cf77bcb 70 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 71 },
kevin1990 12:97457cf77bcb 72 .reference = {
kevin1990 12:97457cf77bcb 73 .type = ADI_SENSE_1000_ADC_REFERENCE_RESISTOR_INTERNAL_1,
kevin1990 12:97457cf77bcb 74 .disableBuffer = false,
kevin1990 12:97457cf77bcb 75 },
kevin1990 12:97457cf77bcb 76 .enableVbias = false,
kevin1990 12:97457cf77bcb 77 },
kevin1990 12:97457cf77bcb 78 },
kevin1990 12:97457cf77bcb 79 [ADI_SENSE_1000_CHANNEL_ID_CJC_1] = {
kevin1990 12:97457cf77bcb 80 .enableChannel = true,
kevin1990 12:97457cf77bcb 81 .disablePublishing = false,
kevin1990 12:97457cf77bcb 82 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE,
kevin1990 12:97457cf77bcb 83 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 84 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 85 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 86 .sensor = ADI_SENSE_1000_ADC_SENSOR_RTD_2WIRE_PT100_DEF_L1,
kevin1990 12:97457cf77bcb 87 .gain = ADI_SENSE_1000_ADC_GAIN_8X,
kevin1990 12:97457cf77bcb 88 .current = {
kevin1990 12:97457cf77bcb 89 .outputLevel = ADI_SENSE_1000_ADC_EXC_CURRENT_500uA,
kevin1990 12:97457cf77bcb 90 },
kevin1990 12:97457cf77bcb 91 .filter = {
kevin1990 12:97457cf77bcb 92 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 93 },
kevin1990 12:97457cf77bcb 94 .reference = {
kevin1990 12:97457cf77bcb 95 .type = ADI_SENSE_1000_ADC_REFERENCE_RESISTOR_INTERNAL_1,
kevin1990 12:97457cf77bcb 96 .disableBuffer = false,
kevin1990 12:97457cf77bcb 97 },
kevin1990 12:97457cf77bcb 98 .enableVbias = false,
kevin1990 12:97457cf77bcb 99 },
kevin1990 12:97457cf77bcb 100 },
kevin1990 12:97457cf77bcb 101 [ADI_SENSE_1000_CHANNEL_ID_SENSOR_0] = {
kevin1990 12:97457cf77bcb 102 .enableChannel = true,
kevin1990 12:97457cf77bcb 103 .disablePublishing = false,
kevin1990 12:97457cf77bcb 104 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE,
kevin1990 12:97457cf77bcb 105 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 106 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 107 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 108 .sensor = ADI_SENSE_1000_ADC_SENSOR_RTD_2WIRE_PT100_DEF_L1,
kevin1990 12:97457cf77bcb 109 .gain = ADI_SENSE_1000_ADC_GAIN_8X,
kevin1990 12:97457cf77bcb 110 .current = {
kevin1990 12:97457cf77bcb 111 .outputLevel = ADI_SENSE_1000_ADC_EXC_CURRENT_500uA,
kevin1990 12:97457cf77bcb 112 },
kevin1990 12:97457cf77bcb 113 .filter = {
kevin1990 12:97457cf77bcb 114 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 115 },
kevin1990 12:97457cf77bcb 116 .reference = {
kevin1990 12:97457cf77bcb 117 .type = ADI_SENSE_1000_ADC_REFERENCE_RESISTOR_INTERNAL_1,
kevin1990 12:97457cf77bcb 118 .disableBuffer = false,
kevin1990 12:97457cf77bcb 119 },
kevin1990 12:97457cf77bcb 120 .enableVbias = false,
kevin1990 12:97457cf77bcb 121 },
kevin1990 12:97457cf77bcb 122 },
kevin1990 12:97457cf77bcb 123 [ADI_SENSE_1000_CHANNEL_ID_SENSOR_1] = {
kevin1990 12:97457cf77bcb 124 .enableChannel = true,
kevin1990 12:97457cf77bcb 125 .disablePublishing = false,
kevin1990 12:97457cf77bcb 126 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_CJC_1,
kevin1990 12:97457cf77bcb 127 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 128 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 129 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 130 .sensor = ADI_SENSE_1000_ADC_SENSOR_THERMOCOUPLE_K_DEF_L1,
kevin1990 12:97457cf77bcb 131 .gain = ADI_SENSE_1000_ADC_GAIN_32X,
kevin1990 12:97457cf77bcb 132 .filter = {
kevin1990 12:97457cf77bcb 133 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 134 },
kevin1990 12:97457cf77bcb 135 .reference = {
kevin1990 12:97457cf77bcb 136 .type = ADI_SENSE_1000_ADC_REFERENCE_VOLTAGE_INTERNAL,
kevin1990 12:97457cf77bcb 137 .disableBuffer = true,
kevin1990 12:97457cf77bcb 138 },
kevin1990 12:97457cf77bcb 139 .enableVbias = true,
kevin1990 12:97457cf77bcb 140 },
kevin1990 12:97457cf77bcb 141 },
kevin1990 12:97457cf77bcb 142 [ADI_SENSE_1000_CHANNEL_ID_SENSOR_2] = {
kevin1990 12:97457cf77bcb 143 .enableChannel = true,
kevin1990 12:97457cf77bcb 144 .disablePublishing = false,
kevin1990 12:97457cf77bcb 145 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_CJC_0,
kevin1990 12:97457cf77bcb 146 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 147 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 148 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 149 .sensor = ADI_SENSE_1000_ADC_SENSOR_THERMOCOUPLE_T_DEF_L1,
kevin1990 12:97457cf77bcb 150 .gain = ADI_SENSE_1000_ADC_GAIN_32X,
kevin1990 12:97457cf77bcb 151 .filter = {
kevin1990 12:97457cf77bcb 152 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 153 },
kevin1990 12:97457cf77bcb 154 .reference = {
kevin1990 12:97457cf77bcb 155 .type = ADI_SENSE_1000_ADC_REFERENCE_VOLTAGE_INTERNAL,
kevin1990 12:97457cf77bcb 156 .disableBuffer = true,
kevin1990 12:97457cf77bcb 157 },
kevin1990 12:97457cf77bcb 158 .enableVbias = true,
kevin1990 12:97457cf77bcb 159 },
kevin1990 12:97457cf77bcb 160 },
kevin1990 12:97457cf77bcb 161 [ADI_SENSE_1000_CHANNEL_ID_SENSOR_3] = {
kevin1990 12:97457cf77bcb 162 .enableChannel = true,
kevin1990 12:97457cf77bcb 163 .disablePublishing = false,
kevin1990 12:97457cf77bcb 164 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_CJC_0,
kevin1990 12:97457cf77bcb 165 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 166 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 167 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 168 .sensor = ADI_SENSE_1000_ADC_SENSOR_THERMOCOUPLE_J_DEF_L1,
kevin1990 12:97457cf77bcb 169 .gain = ADI_SENSE_1000_ADC_GAIN_32X,
kevin1990 12:97457cf77bcb 170 .filter = {
kevin1990 12:97457cf77bcb 171 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 172 },
kevin1990 12:97457cf77bcb 173 .reference = {
kevin1990 12:97457cf77bcb 174 .type = ADI_SENSE_1000_ADC_REFERENCE_VOLTAGE_INTERNAL,
kevin1990 12:97457cf77bcb 175 .disableBuffer = true,
kevin1990 12:97457cf77bcb 176 },
kevin1990 12:97457cf77bcb 177 .enableVbias = true,
kevin1990 12:97457cf77bcb 178 },
kevin1990 12:97457cf77bcb 179 },
kevin1990 12:97457cf77bcb 180 [ADI_SENSE_1000_CHANNEL_ID_VOLTAGE_0] = {
kevin1990 12:97457cf77bcb 181 .enableChannel = true,
kevin1990 12:97457cf77bcb 182 .disablePublishing = false,
kevin1990 12:97457cf77bcb 183 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE,
kevin1990 12:97457cf77bcb 184 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 185 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 186 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 187 .sensor = ADI_SENSE_1000_ADC_SENSOR_VOLTAGE_PRESSURE_HONEYWELL_TRUSTABILITY,
kevin1990 12:97457cf77bcb 188 .gain = ADI_SENSE_1000_ADC_GAIN_2X,
kevin1990 12:97457cf77bcb 189 .filter = {
kevin1990 12:97457cf77bcb 190 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 191 },
kevin1990 12:97457cf77bcb 192 .reference = {
kevin1990 12:97457cf77bcb 193 .type = ADI_SENSE_1000_ADC_REFERENCE_VOLTAGE_INTERNAL,
kevin1990 12:97457cf77bcb 194 .disableBuffer = true,
kevin1990 12:97457cf77bcb 195 },
kevin1990 12:97457cf77bcb 196 .enableVbias = false,
kevin1990 12:97457cf77bcb 197 },
kevin1990 12:97457cf77bcb 198 },
kevin1990 12:97457cf77bcb 199 [ADI_SENSE_1000_CHANNEL_ID_CURRENT_0] = {
kevin1990 12:97457cf77bcb 200 .enableChannel = true,
kevin1990 12:97457cf77bcb 201 .disablePublishing = false,
kevin1990 12:97457cf77bcb 202 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE,
kevin1990 12:97457cf77bcb 203 .measurementsPerCycle = 10,
kevin1990 12:97457cf77bcb 204 .extraSettlingTime = 0,
kevin1990 12:97457cf77bcb 205 .adcChannelConfig = {
kevin1990 12:97457cf77bcb 206 .sensor = ADI_SENSE_1000_ADC_SENSOR_CURRENT_PRESSURE_HONEYWELL_PX2,
kevin1990 12:97457cf77bcb 207 .gain = ADI_SENSE_1000_ADC_GAIN_2X,
kevin1990 12:97457cf77bcb 208 .filter = {
kevin1990 12:97457cf77bcb 209 .type = ADI_SENSE_1000_ADC_FILTER_FIR_25SPS,
kevin1990 12:97457cf77bcb 210 },
kevin1990 12:97457cf77bcb 211 .reference = {
kevin1990 12:97457cf77bcb 212 .type = ADI_SENSE_1000_ADC_REFERENCE_VOLTAGE_INTERNAL,
kevin1990 12:97457cf77bcb 213 .disableBuffer = true,
kevin1990 12:97457cf77bcb 214 },
kevin1990 12:97457cf77bcb 215 .enableVbias = false,
kevin1990 12:97457cf77bcb 216 },
kevin1990 12:97457cf77bcb 217 },
kevin1990 12:97457cf77bcb 218 [ADI_SENSE_1000_CHANNEL_ID_I2C_0] = {
kevin1990 12:97457cf77bcb 219 .enableChannel = true,
kevin1990 12:97457cf77bcb 220 .disablePublishing = false,
kevin1990 12:97457cf77bcb 221 .compensationChannel = ADI_SENSE_1000_CHANNEL_ID_NONE,
kevin1990 12:97457cf77bcb 222 .measurementsPerCycle = 10,
danodonovan 25:c5bff546082f 223 .extraSettlingTime = 36500,
kevin1990 12:97457cf77bcb 224 .i2cChannelConfig = {
kevin1990 12:97457cf77bcb 225 .sensor = ADI_SENSE_1000_I2C_SENSOR_HUMIDITY_HONEYWELL_HUMIDICON,
kevin1990 12:97457cf77bcb 226 .deviceAddress = 0x27,
kevin1990 12:97457cf77bcb 227 },
kevin1990 12:97457cf77bcb 228 },
kevin1990 12:97457cf77bcb 229 [ADI_SENSE_1000_CHANNEL_ID_I2C_1] = {
kevin1990 12:97457cf77bcb 230 .enableChannel = false,
kevin1990 12:97457cf77bcb 231 },
kevin1990 12:97457cf77bcb 232 [ADI_SENSE_1000_CHANNEL_ID_SPI_0] = {
kevin1990 12:97457cf77bcb 233 .enableChannel = false,
kevin1990 12:97457cf77bcb 234 },
kevin1990 12:97457cf77bcb 235 [ADI_SENSE_1000_CHANNEL_ID_SPI_1] = {
kevin1990 12:97457cf77bcb 236 .enableChannel = false,
kevin1990 12:97457cf77bcb 237 },
kevin1990 12:97457cf77bcb 238 [ADI_SENSE_1000_CHANNEL_ID_SPI_2] = {
kevin1990 12:97457cf77bcb 239 .enableChannel = false,
kevin1990 12:97457cf77bcb 240 },
kevin1990 12:97457cf77bcb 241 },
kevin1990 12:97457cf77bcb 242 },
kevin1990 12:97457cf77bcb 243 };