Host API Example for the ADMW1001

Committer:
Vkadaba
Date:
Mon Jul 15 13:04:34 2019 +0000
Revision:
11:8e6023d2e584
Parent:
8:2f2775c34640
sensor2_bridge_4w_load_cell_config.c file is updated and able to download the bin file .

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ADIJake 0:85855ecd3257 1 /*!
ADIJake 0:85855ecd3257 2 ******************************************************************************
ADIJake 0:85855ecd3257 3 * @file: config.c
ADIJake 0:85855ecd3257 4 * @brief:
ADIJake 0:85855ecd3257 5 *-----------------------------------------------------------------------------
ADIJake 0:85855ecd3257 6 *
ADIJake 0:85855ecd3257 7 Copyright 2017 (c) Analog Devices, Inc.
ADIJake 0:85855ecd3257 8
ADIJake 0:85855ecd3257 9 All rights reserved.
ADIJake 0:85855ecd3257 10
ADIJake 0:85855ecd3257 11 Redistribution and use in source and binary forms, with or without
ADIJake 0:85855ecd3257 12 modification, are permitted provided that the following conditions are met:
ADIJake 0:85855ecd3257 13 - Redistributions of source code must retain the above copyright
ADIJake 0:85855ecd3257 14 notice, this list of conditions and the following disclaimer.
ADIJake 0:85855ecd3257 15 - Redistributions in binary form must reproduce the above copyright
ADIJake 0:85855ecd3257 16 notice, this list of conditions and the following disclaimer in
ADIJake 0:85855ecd3257 17 the documentation and/or other materials provided with the
ADIJake 0:85855ecd3257 18 distribution.
ADIJake 0:85855ecd3257 19 - Neither the name of Analog Devices, Inc. nor the names of its
ADIJake 0:85855ecd3257 20 contributors may be used to endorse or promote products derived
ADIJake 0:85855ecd3257 21 from this software without specific prior written permission.
ADIJake 0:85855ecd3257 22 - The use of this software may or may not infringe the patent rights
ADIJake 0:85855ecd3257 23 of one or more patent holders. This license does not release you
ADIJake 0:85855ecd3257 24 from the requirement that you obtain separate licenses from these
ADIJake 0:85855ecd3257 25 patent holders to use this software.
ADIJake 0:85855ecd3257 26 - Use of the software either in source or binary form, must be run
ADIJake 0:85855ecd3257 27 on or directly connected to an Analog Devices Inc. component.
ADIJake 0:85855ecd3257 28
ADIJake 0:85855ecd3257 29 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR
ADIJake 0:85855ecd3257 30 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
ADIJake 0:85855ecd3257 31 MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
ADIJake 0:85855ecd3257 32 IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT,
ADIJake 0:85855ecd3257 33 INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
ADIJake 0:85855ecd3257 34 LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR
ADIJake 0:85855ecd3257 35 SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
ADIJake 0:85855ecd3257 36 CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
ADIJake 0:85855ecd3257 37 OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
ADIJake 0:85855ecd3257 38 OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ADIJake 0:85855ecd3257 39 *
ADIJake 0:85855ecd3257 40 *****************************************************************************/
ADIJake 0:85855ecd3257 41
Vkadaba 5:0728bde67bdb 42 #include "admw_config_types.h"
ADIJake 0:85855ecd3257 43
Vkadaba 5:0728bde67bdb 44 ADMW_CONFIG multichannel_continuous_config = {
ADIJake 0:85855ecd3257 45 .versionId = { .major = 1, .minor = 4 },
Vkadaba 5:0728bde67bdb 46 .productId = ADMW_PRODUCT_ID_ADMW1001,
Vkadaba 5:0728bde67bdb 47 .admw1001 = {
ADIJake 0:85855ecd3257 48 .power = {
Vkadaba 6:9d393a9677f4 49 .powerMode = ADMW1001_POWER_MODE_ACTIVE,
ADIJake 0:85855ecd3257 50 },
ADIJake 0:85855ecd3257 51 .measurement = {
Vkadaba 5:0728bde67bdb 52 .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS,
Vkadaba 5:0728bde67bdb 53 .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE,
ADIJake 0:85855ecd3257 54 .cycleInterval = 5000000,
ADIJake 0:85855ecd3257 55 },
ADIJake 0:85855ecd3257 56 .channels = {
Vkadaba 8:2f2775c34640 57 [ADMW1001_CH_ID_ANLG_1_UNIVERSAL] = {
ADIJake 0:85855ecd3257 58 .enableChannel = true,
ADIJake 0:85855ecd3257 59 .disablePublishing = false,
Vkadaba 8:2f2775c34640 60 .compensationChannel = ADMW1001_CH_ID_NONE,
Vkadaba 5:0728bde67bdb 61 .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
ADIJake 0:85855ecd3257 62 .measurementsPerCycle = 10,
ADIJake 0:85855ecd3257 63 .extraSettlingTime = 0,
ADIJake 0:85855ecd3257 64 .adcChannelConfig = {
Vkadaba 8:2f2775c34640 65 .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100,
Vkadaba 8:2f2775c34640 66 .gain = ADMW1001_ADC_GAIN_8X,
Vkadaba 8:2f2775c34640 67 .current = {
Vkadaba 8:2f2775c34640 68 .outputLevel = ADMW1001_ADC_EXC_CURRENT_500uA,
Vkadaba 8:2f2775c34640 69 },
Vkadaba 8:2f2775c34640 70 .filter = {
Vkadaba 8:2f2775c34640 71 .type = ADMW1001_ADC_FILTER_SINC3,
Vkadaba 8:2f2775c34640 72 },
Vkadaba 8:2f2775c34640 73 .reference = {
Vkadaba 8:2f2775c34640 74 ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
Vkadaba 8:2f2775c34640 75 },
Vkadaba 8:2f2775c34640 76 },
Vkadaba 8:2f2775c34640 77 },
Vkadaba 8:2f2775c34640 78 [ADMW1001_CH_ID_ANLG_2_UNIVERSAL] = {
Vkadaba 8:2f2775c34640 79 .enableChannel = true,
Vkadaba 8:2f2775c34640 80 .disablePublishing = false,
Vkadaba 8:2f2775c34640 81 .compensationChannel = ADMW1001_CH_ID_NONE,
Vkadaba 8:2f2775c34640 82 .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
Vkadaba 8:2f2775c34640 83 .measurementsPerCycle = 10,
Vkadaba 8:2f2775c34640 84 .extraSettlingTime = 0,
Vkadaba 8:2f2775c34640 85 .adcChannelConfig = {
Vkadaba 8:2f2775c34640 86 .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100,
Vkadaba 5:0728bde67bdb 87 .gain = ADMW1001_ADC_GAIN_8X,
ADIJake 0:85855ecd3257 88 .current = {
Vkadaba 5:0728bde67bdb 89 .outputLevel = ADMW1001_ADC_EXC_CURRENT_500uA,
ADIJake 0:85855ecd3257 90 },
ADIJake 0:85855ecd3257 91 .filter = {
Vkadaba 6:9d393a9677f4 92 .type = ADMW1001_ADC_FILTER_SINC3,
ADIJake 0:85855ecd3257 93 },
ADIJake 0:85855ecd3257 94 .reference = {
Vkadaba 8:2f2775c34640 95 ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
Vkadaba 8:2f2775c34640 96
ADIJake 0:85855ecd3257 97 },
ADIJake 0:85855ecd3257 98 },
ADIJake 0:85855ecd3257 99 },
Vkadaba 8:2f2775c34640 100 [ADMW1001_CH_ID_ANLG_1_DIFFERENTIAL] = {
ADIJake 0:85855ecd3257 101 .enableChannel = true,
ADIJake 0:85855ecd3257 102 .disablePublishing = false,
Vkadaba 8:2f2775c34640 103 .compensationChannel = ADMW1001_CH_ID_NONE,
Vkadaba 5:0728bde67bdb 104 .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
ADIJake 0:85855ecd3257 105 .measurementsPerCycle = 10,
ADIJake 0:85855ecd3257 106 .extraSettlingTime = 0,
ADIJake 0:85855ecd3257 107 .adcChannelConfig = {
Vkadaba 8:2f2775c34640 108 .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100,
Vkadaba 6:9d393a9677f4 109 .gain = ADMW1001_ADC_GAIN_8X,
Vkadaba 6:9d393a9677f4 110 .current = {
Vkadaba 6:9d393a9677f4 111 .outputLevel = ADMW1001_ADC_EXC_CURRENT_500uA,
Vkadaba 6:9d393a9677f4 112 },
Vkadaba 6:9d393a9677f4 113 .filter = {
Vkadaba 6:9d393a9677f4 114 .type = ADMW1001_ADC_FILTER_SINC3,
Vkadaba 6:9d393a9677f4 115 },
Vkadaba 6:9d393a9677f4 116 .reference = {
Vkadaba 8:2f2775c34640 117 ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
Vkadaba 6:9d393a9677f4 118
Vkadaba 6:9d393a9677f4 119 },
Vkadaba 6:9d393a9677f4 120 },
Vkadaba 6:9d393a9677f4 121 },
Vkadaba 8:2f2775c34640 122 [ADMW1001_CH_ID_ANLG_2_DIFFERENTIAL] = {
Vkadaba 6:9d393a9677f4 123 .enableChannel = true,
Vkadaba 6:9d393a9677f4 124 .disablePublishing = false,
Vkadaba 8:2f2775c34640 125 .compensationChannel = ADMW1001_CH_ID_ANLG_2_UNIVERSAL,
Vkadaba 5:0728bde67bdb 126 .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
ADIJake 0:85855ecd3257 127 .measurementsPerCycle = 10,
ADIJake 0:85855ecd3257 128 .extraSettlingTime = 0,
ADIJake 0:85855ecd3257 129 .adcChannelConfig = {
Vkadaba 8:2f2775c34640 130 .sensor = ADMW1001_ADC_SENSOR_THERMOCOUPLE_K,
Vkadaba 5:0728bde67bdb 131 .gain = ADMW1001_ADC_GAIN_32X,
ADIJake 0:85855ecd3257 132 .filter = {
Vkadaba 6:9d393a9677f4 133 .type = ADMW1001_ADC_FILTER_SINC3,
ADIJake 0:85855ecd3257 134 },
ADIJake 0:85855ecd3257 135 .reference = {
Vkadaba 8:2f2775c34640 136 ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
ADIJake 0:85855ecd3257 137 },
ADIJake 0:85855ecd3257 138 },
ADIJake 0:85855ecd3257 139 },
Vkadaba 8:2f2775c34640 140 [ADMW1001_CH_ID_DIG_I2C_0] = {
ADIJake 0:85855ecd3257 141 .enableChannel = true,
ADIJake 0:85855ecd3257 142 .disablePublishing = false,
Vkadaba 8:2f2775c34640 143 .compensationChannel = ADMW1001_CH_ID_NONE,
ADIJake 0:85855ecd3257 144 .measurementsPerCycle = 10,
ADIJake 0:85855ecd3257 145 .extraSettlingTime = 36500,
ADIJake 0:85855ecd3257 146 .i2cChannelConfig = {
Vkadaba 8:2f2775c34640 147 .sensor = ADMW1001_I2C_SENSOR_HUMIDITY_A,
ADIJake 0:85855ecd3257 148 .deviceAddress = 0x27,
ADIJake 0:85855ecd3257 149 },
ADIJake 0:85855ecd3257 150 },
ADIJake 0:85855ecd3257 151 },
ADIJake 0:85855ecd3257 152 },
ADIJake 0:85855ecd3257 153 };
ADIJake 0:85855ecd3257 154