Added External Voltage Reference support for RTD and thermocouple

Committer:
diazdgeorge
Date:
Tue Nov 19 10:54:22 2019 +0000
Revision:
34:d1b4019a1f53
Parent:
33:61acebd2957c
initialized .externalRefVoltage = 0.0 in config

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Vkadaba 18:cbf514cce921 1 /*!
Vkadaba 18:cbf514cce921 2 ******************************************************************************
Vkadaba 18:cbf514cce921 3 * @file: config.c
Vkadaba 18:cbf514cce921 4 * @brief:
Vkadaba 18:cbf514cce921 5 *-----------------------------------------------------------------------------
Vkadaba 18:cbf514cce921 6 *
Vkadaba 18:cbf514cce921 7 Copyright (c) 2018 Analog Devices, Inc.
ADIJake 0:85855ecd3257 8
ADIJake 0:85855ecd3257 9 All rights reserved.
ADIJake 0:85855ecd3257 10
Vkadaba 18:cbf514cce921 11 Redistribution and use in source and binary forms, with or without modification,
Vkadaba 18:cbf514cce921 12 are permitted provided that the following conditions are met:
Vkadaba 18:cbf514cce921 13 - Redistributions of source code must retain the above copyright notice,
Vkadaba 18:cbf514cce921 14 this list of conditions and the following disclaimer.
Vkadaba 18:cbf514cce921 15 - Redistributions in binary form must reproduce the above copyright notice,
Vkadaba 18:cbf514cce921 16 this list of conditions and the following disclaimer in the documentation
Vkadaba 18:cbf514cce921 17 and/or other materials provided with the distribution.
Vkadaba 18:cbf514cce921 18 - Modified versions of the software must be conspicuously marked as such.
Vkadaba 18:cbf514cce921 19 - This software is licensed solely and exclusively for use with processors
Vkadaba 18:cbf514cce921 20 manufactured by or for Analog Devices, Inc.
Vkadaba 18:cbf514cce921 21 - This software may not be combined or merged with other code in any manner
Vkadaba 18:cbf514cce921 22 that would cause the software to become subject to terms and conditions
Vkadaba 18:cbf514cce921 23 which differ from those listed here.
ADIJake 0:85855ecd3257 24 - Neither the name of Analog Devices, Inc. nor the names of its
ADIJake 0:85855ecd3257 25 contributors may be used to endorse or promote products derived
ADIJake 0:85855ecd3257 26 from this software without specific prior written permission.
Vkadaba 18:cbf514cce921 27 - The use of this software may or may not infringe the patent rights of one
Vkadaba 18:cbf514cce921 28 or more patent holders. This license does not release you from the
Vkadaba 18:cbf514cce921 29 requirement that you obtain separate licenses from these patent holders
Vkadaba 18:cbf514cce921 30 to use this software.
ADIJake 0:85855ecd3257 31
Vkadaba 18:cbf514cce921 32 THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND ANY
Vkadaba 18:cbf514cce921 33 EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT,
Vkadaba 18:cbf514cce921 34 TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
Vkadaba 18:cbf514cce921 35 NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
Vkadaba 18:cbf514cce921 36 INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES
Vkadaba 18:cbf514cce921 37 (INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL
Vkadaba 18:cbf514cce921 38 PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
Vkadaba 18:cbf514cce921 39 OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Vkadaba 18:cbf514cce921 40 THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
Vkadaba 18:cbf514cce921 41 NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
Vkadaba 18:cbf514cce921 42 EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
ADIJake 0:85855ecd3257 43 *
ADIJake 0:85855ecd3257 44 *****************************************************************************/
ADIJake 0:85855ecd3257 45
Vkadaba 18:cbf514cce921 46 #include "inc/admw_config_types.h"
ADIJake 0:85855ecd3257 47
Vkadaba 18:cbf514cce921 48 ADMW_CONFIG sensor0_typeK_cjc0_config= {
Vkadaba 13:97cb32670539 49 .versionId = { .major = 2, .minor = 0 },
Vkadaba 5:0728bde67bdb 50 .productId = ADMW_PRODUCT_ID_ADMW1001,
Vkadaba 5:0728bde67bdb 51 .admw1001 = {
Vkadaba 23:bb685f35b08b 52 .power = {
Vkadaba 23:bb685f35b08b 53 .powerMode = ADMW1001_POWER_MODE_ACTIVE,
Vkadaba 23:bb685f35b08b 54 },
Vkadaba 23:bb685f35b08b 55 .measurement = {
diazdgeorge 34:d1b4019a1f53 56 .externalRefVoltage = 0.0,
Vkadaba 23:bb685f35b08b 57 .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS,
Vkadaba 23:bb685f35b08b 58 .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!!
Vkadaba 23:bb685f35b08b 59 .cycleInterval = 0,
Vkadaba 23:bb685f35b08b 60 .vBiasEnable = true,
diazdgeorge 31:38f9097982c7 61 .RSenseValue = 1000.0,
Vkadaba 23:bb685f35b08b 62 },
Vkadaba 23:bb685f35b08b 63 .diagnostics = {
Vkadaba 23:bb685f35b08b 64 .disableGlobalDiag = true,
Vkadaba 23:bb685f35b08b 65 .disableMeasurementDiag = true,
Vkadaba 23:bb685f35b08b 66 .osdFrequency = ADMW1001_OPEN_SENSOR_DIAGNOSTICS_DISABLED,
Vkadaba 23:bb685f35b08b 67 },
Vkadaba 23:bb685f35b08b 68 .channels = {
Vkadaba 23:bb685f35b08b 69 [ADMW1001_CH_ID_ANLG_1_UNIVERSAL] = {
Vkadaba 23:bb685f35b08b 70 .enableChannel = true,
Vkadaba 23:bb685f35b08b 71 .disablePublishing = false,
Vkadaba 23:bb685f35b08b 72 .compensationChannel = ADMW1001_CH_ID_NONE,
Vkadaba 23:bb685f35b08b 73 .lutSelect = ADMW1001_LUT_DEFAULT,
Vkadaba 23:bb685f35b08b 74 .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
Vkadaba 23:bb685f35b08b 75 .lowThreshold = -50,
Vkadaba 23:bb685f35b08b 76 .highThreshold = 250,
Vkadaba 23:bb685f35b08b 77 .offsetAdjustment = 0.0,
Vkadaba 23:bb685f35b08b 78 .gainAdjustment = 0.0,
Vkadaba 23:bb685f35b08b 79 .sensorParameter = 0.0,
Vkadaba 23:bb685f35b08b 80 .measurementsPerCycle = 10,
Vkadaba 23:bb685f35b08b 81 .cycleSkipCount = 0,
Vkadaba 23:bb685f35b08b 82 .extraSettlingTime = 0,
Vkadaba 23:bb685f35b08b 83 .priority = 0,
Vkadaba 23:bb685f35b08b 84 .adcChannelConfig = {
Vkadaba 23:bb685f35b08b 85 .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100,
Vkadaba 23:bb685f35b08b 86 .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN,
Vkadaba 23:bb685f35b08b 87 .gain = ADMW1001_ADC_GAIN_1X,
Vkadaba 23:bb685f35b08b 88 .current = {
Vkadaba 23:bb685f35b08b 89 .excitationState= ADMW1001_ADC_EXC_STATE_ALWAYS_ON,
Vkadaba 23:bb685f35b08b 90 .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA,
Vkadaba 23:bb685f35b08b 91 .diodeRatio = 0,
ADIJake 0:85855ecd3257 92 },
Vkadaba 23:bb685f35b08b 93 .filter = {
Vkadaba 23:bb685f35b08b 94 .type = ADMW1001_ADC_FILTER_SINC3,
Vkadaba 23:bb685f35b08b 95 .sf = ADMW1001_SF_8P24HZ,
Vkadaba 23:bb685f35b08b 96 .chopMode = ADMW1001_CHOP_MD_SW,
Vkadaba 23:bb685f35b08b 97 .notch1p2 = false,
Vkadaba 23:bb685f35b08b 98 .groundSwitch = ADMW1001_ADC_GND_SW_OPEN
ADIJake 0:85855ecd3257 99 },
diazdgeorge 33:61acebd2957c 100 .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
diazdgeorge 31:38f9097982c7 101 .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
ADIJake 0:85855ecd3257 102 },
ADIJake 0:85855ecd3257 103 },
Vkadaba 23:bb685f35b08b 104 [ADMW1001_CH_ID_ANLG_1_DIFFERENTIAL] = {
Vkadaba 23:bb685f35b08b 105 .enableChannel = true,
Vkadaba 23:bb685f35b08b 106 .disablePublishing = false,
Vkadaba 23:bb685f35b08b 107 .compensationChannel = ADMW1001_CH_ID_ANLG_1_UNIVERSAL,
Vkadaba 23:bb685f35b08b 108 .lutSelect = ADMW1001_LUT_DEFAULT,
Vkadaba 23:bb685f35b08b 109 .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS,
Vkadaba 23:bb685f35b08b 110 .lowThreshold = -50,
Vkadaba 23:bb685f35b08b 111 .highThreshold = 250,
Vkadaba 23:bb685f35b08b 112 .offsetAdjustment = 0.0,
Vkadaba 23:bb685f35b08b 113 .gainAdjustment = 0.0,
Vkadaba 23:bb685f35b08b 114 .sensorParameter = 0.0,
Vkadaba 23:bb685f35b08b 115 .measurementsPerCycle = 10,
Vkadaba 23:bb685f35b08b 116 .cycleSkipCount = 0,
Vkadaba 23:bb685f35b08b 117 .extraSettlingTime = 4499.99986449257,
Vkadaba 23:bb685f35b08b 118 .priority = 0,
Vkadaba 23:bb685f35b08b 119 .adcChannelConfig = {
Vkadaba 23:bb685f35b08b 120 .sensor = ADMW1001_ADC_SENSOR_THERMOCOUPLE_K,
Vkadaba 23:bb685f35b08b 121 .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN,
Vkadaba 23:bb685f35b08b 122 .gain = ADMW1001_ADC_GAIN_8X,
Vkadaba 23:bb685f35b08b 123 .current = {
diazdgeorge 31:38f9097982c7 124 .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER,
Vkadaba 23:bb685f35b08b 125 .outputLevel = ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT,
Vkadaba 23:bb685f35b08b 126 .diodeRatio = 0,
Vkadaba 23:bb685f35b08b 127 },
Vkadaba 23:bb685f35b08b 128 .filter = {
Vkadaba 23:bb685f35b08b 129 .type = ADMW1001_ADC_FILTER_SINC3,
Vkadaba 23:bb685f35b08b 130 .sf = ADMW1001_SF_8P24HZ,
Vkadaba 23:bb685f35b08b 131 .chopMode = ADMW1001_CHOP_MD_SW,
Vkadaba 23:bb685f35b08b 132 .notch1p2 = false,
Vkadaba 23:bb685f35b08b 133 .groundSwitch = ADMW1001_ADC_GND_SW_OPEN
Vkadaba 23:bb685f35b08b 134 },
diazdgeorge 33:61acebd2957c 135 .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL,
diazdgeorge 31:38f9097982c7 136 .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
Vkadaba 23:bb685f35b08b 137 },
Vkadaba 23:bb685f35b08b 138 },
Vkadaba 23:bb685f35b08b 139 },
ADIJake 0:85855ecd3257 140 },
ADIJake 0:85855ecd3257 141 };