![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
initial commit
Revision 18:cbf514cce921, committed 2019-08-20
- Comitter:
- Vkadaba
- Date:
- Tue Aug 20 12:19:31 2019 +0000
- Parent:
- 17:2f0028880874
- Child:
- 19:09d58952b65d
- Commit message:
- Added No excitation current config in host firmware
Changed in this revision
--- a/inc/admw1001/ADMW1001_REGISTERS_typedefs.h Wed Aug 07 06:46:25 2019 +0000 +++ b/inc/admw1001/ADMW1001_REGISTERS_typedefs.h Tue Aug 20 12:19:31 2019 +0000 @@ -1233,15 +1233,16 @@ * ========================================================================= */ typedef enum { - CORE_CHANNEL_EXCITATION_EXTERNAL = 0, /**< External Current Sourced */ - CORE_CHANNEL_EXCITATION_RESERVED = 1, /**< Reserved */ - CORE_CHANNEL_EXCITATION_IEXC_10UA = 2, /**< 10 \mu;A */ - CORE_CHANNEL_EXCITATION_RESERVED2 = 3, /**< Reserved */ - CORE_CHANNEL_EXCITATION_IEXC_50UA = 4, /**< 50 \mu;A */ - CORE_CHANNEL_EXCITATION_IEXC_100UA = 5, /**< 100 \mu;A */ - CORE_CHANNEL_EXCITATION_IEXC_250UA = 6, /**< 250 \mu;A */ - CORE_CHANNEL_EXCITATION_IEXC_500UA = 7, /**< 500 \mu;A */ - CORE_CHANNEL_EXCITATION_IEXC_1000UA = 8 /**< 1000 \mu;A */ + CORE_CHANNEL_EXCITATION_NONE =-1, /**< No External urrent Source */ + CORE_CHANNEL_EXCITATION_EXTERNAL = 0, /**< External Current Sourced */ + CORE_CHANNEL_EXCITATION_RESERVED = 1, /**< Reserved */ + CORE_CHANNEL_EXCITATION_IEXC_10UA = 2, /**< 10 \mu;A */ + CORE_CHANNEL_EXCITATION_RESERVED2 = 3, /**< Reserved */ + CORE_CHANNEL_EXCITATION_IEXC_50UA = 4, /**< 50 \mu;A */ + CORE_CHANNEL_EXCITATION_IEXC_100UA = 5, /**< 100 \mu;A */ + CORE_CHANNEL_EXCITATION_IEXC_250UA = 6, /**< 250 \mu;A */ + CORE_CHANNEL_EXCITATION_IEXC_500UA = 7, /**< 500 \mu;A */ + CORE_CHANNEL_EXCITATION_IEXC_1000UA = 8 /**< 1000 \mu;A */ } ADMW_CORE_Channel_Excitation_IOUT_Excitation_Current;
--- a/inc/admw1001/admw1001_config.h Wed Aug 07 06:46:25 2019 +0000 +++ b/inc/admw1001/admw1001_config.h Tue Aug 20 12:19:31 2019 +0000 @@ -220,6 +220,8 @@ */ typedef enum { + ADMW1001_ADC_EXC_STATE_OFF=-1, + /*!< Excitation for measurement is off*/ ADMW1001_ADC_EXC_STATE_ALWAYS_ON, /*!< Excitation for measurement is always on */ ADMW1001_ADC_EXC_STATE_CYCLE_POWER, @@ -234,6 +236,8 @@ */ typedef enum { + ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT = -1, + /*!< NO External excitation is provided */ ADMW1001_ADC_EXC_CURRENT_EXTERNAL = 0, /*!< External excitation is provided */ ADMW1001_ADC_EXC_CURRENT_50uA,
--- a/main.cpp Wed Aug 07 06:46:25 2019 +0000 +++ b/main.cpp Tue Aug 20 12:19:31 2019 +0000 @@ -94,7 +94,7 @@ extern ADMW_CONFIG sensor2_bridge_4w_load_cell_config; extern ADMW_CONFIG config; /* Change the following pointer to select any of the configurations above */ -static ADMW_CONFIG *pSelectedConfig = &config; +static ADMW_CONFIG *pSelectedConfig = &sensor2_bridge_4w_load_cell_config; static ADMW_CONNECTION connectionInfo = PLATFORM_CONNECTION_INFO;
--- a/sensor0_typeK_cjc0_config.c Wed Aug 07 06:46:25 2019 +0000 +++ b/sensor0_typeK_cjc0_config.c Tue Aug 20 12:19:31 2019 +0000 @@ -1,99 +1,137 @@ -/* -Copyright 2019 (c) Analog Devices, Inc. +/*! + ****************************************************************************** + * @file: config.c + * @brief: + *----------------------------------------------------------------------------- + * +Copyright (c) 2018 Analog Devices, Inc. All rights reserved. -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + - Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + - Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + - Modified versions of the software must be conspicuously marked as such. + - This software is licensed solely and exclusively for use with processors + manufactured by or for Analog Devices, Inc. + - This software may not be combined or merged with other code in any manner + that would cause the software to become subject to terms and conditions + which differ from those listed here. - Neither the name of Analog Devices, Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. - - The use of this software may or may not infringe the patent rights - of one or more patent holders. This license does not release you - from the requirement that you obtain separate licenses from these - patent holders to use this software. - - Use of the software either in source or binary form, must be run - on or directly connected to an Analog Devices Inc. component. + - The use of this software may or may not infringe the patent rights of one + or more patent holders. This license does not release you from the + requirement that you obtain separate licenses from these patent holders + to use this software. -THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES "AS IS" AND ANY EXPRESS OR -IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL ANALOG DEVICES BE LIABLE FOR ANY DIRECT, INDIRECT, -INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, INTELLECTUAL PROPERTY RIGHTS, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. AND CONTRIBUTORS "AS IS" AND ANY +EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, NON-INFRINGEMENT, +TITLE, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +NO EVENT SHALL ANALOG DEVICES, INC. OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, PUNITIVE OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, DAMAGES ARISING OUT OF CLAIMS OF INTELLECTUAL +PROPERTY RIGHTS INFRINGEMENT; PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS +OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *****************************************************************************/ -/*! - ****************************************************************************** - * @file: - * @brief: - *----------------------------------------------------------------------------- - */ -#include "admw_config_types.h" +#include "inc/admw_config_types.h" -ADMW_CONFIG sensor0_typeK_cjc0_config = { +ADMW_CONFIG sensor0_typeK_cjc0_config= { .versionId = { .major = 2, .minor = 0 }, .productId = ADMW_PRODUCT_ID_ADMW1001, .admw1001 = { - .power = { - .powerMode = ADMW1001_POWER_MODE_ACTIVE, - }, - .measurement = { - .operatingMode = ADMW1001_OPERATING_MODE_SINGLECYCLE, - .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, - }, - .channels = { - [ADMW1001_CH_ID_ANLG_1_UNIVERSAL] = { - .enableChannel = true, - .disablePublishing = false, - .compensationChannel = ADMW1001_CH_ID_NONE, - .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS, - .measurementsPerCycle = 10, - .extraSettlingTime = 0, - .adcChannelConfig = { - .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100, - .gain = ADMW1001_ADC_GAIN_8X, - .current = { - .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA, + .power = { + .powerMode = ADMW1001_POWER_MODE_ACTIVE, + }, + .measurement = { + .operatingMode = ADMW1001_OPERATING_MODE_SINGLECYCLE, + .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!! + .cycleInterval = 0, + .vBiasEnable = true, + }, + .diagnostics = { + .disableGlobalDiag = true, + .disableMeasurementDiag = true, + .osdFrequency = ADMW1001_OPEN_SENSOR_DIAGNOSTICS_DISABLED, + }, + .channels = { + [ADMW1001_CH_ID_ANLG_1_UNIVERSAL] = { + .enableChannel = true, + .disablePublishing = false, + .compensationChannel = ADMW1001_CH_ID_NONE, + .lutSelect = ADMW1001_LUT_DEFAULT, + .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS, + .lowThreshold = -50, + .highThreshold = 250, + .offsetAdjustment = 0.0, + .gainAdjustment = 0.0, + .sensorParameter = 0.0, + .measurementsPerCycle = 1, + .cycleSkipCount = 0, + .extraSettlingTime = 0, + .priority = 0, + .adcChannelConfig = { + .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100, + .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN, + .gain = ADMW1001_ADC_GAIN_1X, + .current = { + .excitationState= ADMW1001_ADC_EXC_STATE_ALWAYS_ON, + .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA, + .diodeRatio = 0, + }, + .filter = { + .type = ADMW1001_ADC_FILTER_SINC3, + .sf = ADMW1001_SF_8P24HZ, + .chopMode = ADMW1001_CHOP_MD_SW, + .notch1p2 = false, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN + }, + .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, }, - .filter = { - .type = ADMW1001_ADC_FILTER_SINC3, - }, - .reference = { - ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, + }, + [ADMW1001_CH_ID_ANLG_1_DIFFERENTIAL] = { + .enableChannel = true, + .disablePublishing = false, + .compensationChannel = ADMW1001_CH_ID_ANLG_1_UNIVERSAL, + .lutSelect = ADMW1001_LUT_DEFAULT, + .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS, + .lowThreshold = -50, + .highThreshold = 250, + .offsetAdjustment = 0.0, + .gainAdjustment = 0.0, + .sensorParameter = 0.0, + .measurementsPerCycle = 1, + .cycleSkipCount = 0, + .extraSettlingTime = 4499.99986449257, + .priority = 0, + .adcChannelConfig = { + .sensor = ADMW1001_ADC_SENSOR_THERMOCOUPLE_K, + .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN, + .gain = ADMW1001_ADC_GAIN_8X, + .current = { + .excitationState= ADMW1001_ADC_EXC_STATE_OFF, + .outputLevel = ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT, + .diodeRatio = 0, + }, + .filter = { + .type = ADMW1001_ADC_FILTER_SINC3, + .sf = ADMW1001_SF_8P24HZ, + .chopMode = ADMW1001_CHOP_MD_SW, + .notch1p2 = false, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN + }, + .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, }, }, }, - [ADMW1001_CH_ID_ANLG_1_DIFFERENTIAL] = { - .enableChannel = true, - .disablePublishing = false, - .compensationChannel = ADMW1001_CH_ID_ANLG_1_UNIVERSAL, - .measurementUnit = ADMW1001_MEASUREMENT_UNIT_CELSIUS, - .measurementsPerCycle = 10, - .extraSettlingTime = 0, - .adcChannelConfig = { - .sensor = ADMW1001_ADC_SENSOR_THERMOCOUPLE_K, - .gain = ADMW1001_ADC_GAIN_32X, - .filter = { - .type = ADMW1001_ADC_FILTER_SINC3, - }, - .reference = { - ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, - }, - }, - }, - }, }, }; -
--- a/sensor2_bridge_4w_load_cell_config.c Wed Aug 07 06:46:25 2019 +0000 +++ b/sensor2_bridge_4w_load_cell_config.c Tue Aug 20 12:19:31 2019 +0000 @@ -63,7 +63,7 @@ .channels = { [ADMW1001_CH_ID_ANLG_2_UNIVERSAL] = { .enableChannel = true, - .measurementsPerCycle = 1, + .measurementsPerCycle = 10, .extraSettlingTime = 0.00050000002374872565, .disablePublishing = false, @@ -74,18 +74,18 @@ .sensor = ADMW1001_ADC_SENSOR_BRIDGE_4WIRE_1, .gain = ADMW1001_ADC_GAIN_8X, .current = { - .excitationState = ADMW1001_ADC_EXC_STATE_ALWAYS_ON, - .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA, + .excitationState = ADMW1001_ADC_EXC_STATE_OFF, + .outputLevel = ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT, }, .filter = { .type = ADMW1001_ADC_FILTER_SINC3, .sf = 125, - .chopMode = true, + .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, .groundSwitch = ADMW1001_ADC_GND_SW_CLOSED, }, .reference = { - ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, + ADMW1001_ADC_REFERENCE_VOLTAGE_AVDD, }, }, },
--- a/src/admw_1001.c Wed Aug 07 06:46:25 2019 +0000 +++ b/src/admw_1001.c Tue Aug 20 12:19:31 2019 +0000 @@ -1573,10 +1573,11 @@ channelExcitationReg.VALUE16 = REG_RESET_VAL(CORE_CHANNEL_EXCITATIONn); - - if (pCurrentConfig->outputLevel == ADMW1001_ADC_EXC_CURRENT_EXTERNAL) + if (pCurrentConfig->outputLevel == ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT) + channelExcitationReg.IOUT_Excitation_Current = CORE_CHANNEL_EXCITATION_NONE; + else if (pCurrentConfig->outputLevel == ADMW1001_ADC_EXC_CURRENT_EXTERNAL) channelExcitationReg.IOUT_Excitation_Current = CORE_CHANNEL_EXCITATION_EXTERNAL; - if (pCurrentConfig->outputLevel == ADMW1001_ADC_EXC_CURRENT_50uA) + else if (pCurrentConfig->outputLevel == ADMW1001_ADC_EXC_CURRENT_50uA) channelExcitationReg.IOUT_Excitation_Current = CORE_CHANNEL_EXCITATION_IEXC_50UA; else if (pCurrentConfig->outputLevel == ADMW1001_ADC_EXC_CURRENT_100uA) channelExcitationReg.IOUT_Excitation_Current = CORE_CHANNEL_EXCITATION_IEXC_100UA; @@ -1593,6 +1594,7 @@ return ADMW_INVALID_PARAM; } + switch(pCurrentConfig->diodeRatio) { case ADMW1001_ADC_EXC_CURRENT_IOUT_DIODE_10UA_100UA: