![](/media/cache/group/default_image.jpg.50x50_q85.jpg)
initial commit
Revision 43:e1789b7214cf, committed 2020-01-07
- Comitter:
- Vkadaba
- Date:
- Tue Jan 07 05:45:58 2020 +0000
- Parent:
- 42:c9c5a22e539e
- Child:
- 44:94bdfaefddac
- Commit message:
- Added CycleTime units in seconds Added global scopes for .excitationState and .groundSwitch on mbed and added same on all config files
Changed in this revision
--- a/bridge_4w_load_cell_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/bridge_4w_load_cell_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -52,6 +52,7 @@ .measurement = { .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS, .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!! + .groundSwitch = ADMW1001_ADC_GND_SW_CLOSED, .cycleInterval = 0, .RSenseValue = 1000.0, }, @@ -84,7 +85,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = true, - .groundSwitch = ADMW1001_ADC_GND_SW_CLOSED }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_AVDD, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
--- a/inc/admw1001/ADMW1001_REGISTERS.h Tue Dec 10 09:00:11 2019 +0000 +++ b/inc/admw1001/ADMW1001_REGISTERS.h Tue Jan 07 05:45:58 2020 +0000 @@ -755,16 +755,24 @@ /* ------------------------------------------------------------------------------------------------------------------------- CORE_CYCLE_CONTROL Pos/Masks Description ------------------------------------------------------------------------------------------------------------------------- */ +#define BITP_CORE_CYCLE_CONTROL_PST_MEAS_EXC_CTRL 15 /* Disable Current Sources After Measurement Completes */ #define BITP_CORE_CYCLE_CONTROL_CYCLE_TIME_UNITS 14 /* Units for Cycle Time */ #define BITP_CORE_CYCLE_CONTROL_VBIAS 13 /* Voltage Bias Global Enable */ +#define BITP_CORE_CYCLE_CONTROL_GND_SW_CTRL 12 /* Ground Switch Cycle Control */ #define BITP_CORE_CYCLE_CONTROL_CYCLE_TIME 0 /* Time Between Measurement Cycles */ +#define BITM_CORE_CYCLE_CONTROL_PST_MEAS_EXC_CTRL 0x00008000 /* Disable Current Sources After Measurement Completes */ #define BITM_CORE_CYCLE_CONTROL_CYCLE_TIME_UNITS 0x00004000 /* Units for Cycle Time */ #define BITM_CORE_CYCLE_CONTROL_VBIAS 0x00002000 /* Voltage Bias Global Enable */ +#define BITM_CORE_CYCLE_CONTROL_GND_SW_CTRL 0x00001000 /* Ground Switch Cycle Control */ #define BITM_CORE_CYCLE_CONTROL_CYCLE_TIME 0x00000FFF /* Time Between Measurement Cycles */ +#define ENUM_CORE_CYCLE_CONTROL_POWERCYCLE 0x00000000 +#define ENUM_CORE_CYCLE_CONTROL_ALWAYSON 0x00008000 #define ENUM_CORE_CYCLE_CONTROL_MILLISECONDS 0x00000000 /* Cycle_Time_Units: Milli-seconds */ #define ENUM_CORE_CYCLE_CONTROL_SECONDS 0x00004000 /* Cycle_Time_Units: Seconds */ #define ENUM_CORE_CYCLE_CONTROL_VBIAS_DISABLE 0x00000000 /* Vbias: Vbias disabled */ #define ENUM_CORE_CYCLE_CONTROL_VBIAS_ENABLE 0x00002000 /* Vbias: Enable Vbias output for the duration of a cycle */ +#define ENUM_CORE_CYCLE_CONTROL_CLOSE_SW 0x00000000 /* GND_SW_CTRL: Ground Switch Closed */ +#define ENUM_CORE_CYCLE_CONTROL_CYCLE_SW 0x00001000 /* GND_SW_CTRL: Ground Switch Opens outside of measurement cycle to conserve power */ /* ------------------------------------------------------------------------------------------------------------------------- CORE_FIFO_NUM_CYCLES Pos/Masks Description @@ -1029,31 +1037,23 @@ CORE_MEASUREMENT_SETUP[n] Pos/Masks Description ------------------------------------------------------------------------------------------------------------------------- */ #define BITP_CORE_MEASUREMENT_SETUP_BUFFER_BYPASS 15 /* Disable Buffers */ -#define BITP_CORE_MEASUREMENT_SETUP_GND_SW 13 /* Ground Switch Selection */ #define BITP_CORE_MEASUREMENT_SETUP_ADC_FILTER_TYPE 12 /* ADC Digital Filter Type */ #define BITP_CORE_MEASUREMENT_SETUP_CHOP_MODE 10 /* Enabled and Disable Chop Mode */ -#define BITP_CORE_MEASUREMENT_SETUP_PST_MEAS_EXC_CTRL 9 /* Disable Current Sources After Measurement Completes */ #define BITP_CORE_MEASUREMENT_SETUP_NOTCH_EN_2 8 /* Enable Notch 2 Filter Mode */ #define BITP_CORE_MEASUREMENT_SETUP_ADC_SF 0 /* ADC Digital Filter Speed */ #define BITM_CORE_MEASUREMENT_SETUP_BUFFER_BYPASS 0x00008000 /* Disable Buffers */ -#define BITM_CORE_MEASUREMENT_SETUP_GND_SW 0x00006000 /* Ground Switch Selection */ #define BITM_CORE_MEASUREMENT_SETUP_ADC_FILTER_TYPE 0x00001000 /* ADC Digital Filter Type */ #define BITM_CORE_MEASUREMENT_SETUP_CHOP_MODE 0x00000C00 /* Enabled and Disable Chop Mode */ -#define BITM_CORE_MEASUREMENT_SETUP_PST_MEAS_EXC_CTRL 0x00000200 /* Disable Current Sources After Measurement Completes */ #define BITM_CORE_MEASUREMENT_SETUP_NOTCH_EN_2 0x00000100 /* Enable Notch 2 Filter Mode */ #define BITM_CORE_MEASUREMENT_SETUP_ADC_SF 0x0000007F /* ADC Digital Filter Speed */ #define ENUM_CORE_MEASUREMENT_SETUP_BUFFERS_ENABLED 0x00000000 /* Buffer_Bypass: Input buffers enabled */ #define ENUM_CORE_MEASUREMENT_SETUP_BUFFERS_DISABLED 0x00008000 /* Buffer_Bypass: Input buffers disabled */ -#define ENUM_CORE_MEASUREMENT_SETUP_GND_SW_OPEN 0x00000000 /* GND_SW: GND_SW Open. The ground switch is not enabled for the sensor measurement */ -#define ENUM_CORE_MEASUREMENT_SETUP_GND_SW_CLOSED 0x00002000 /* GND_SW: GND_SW Closed. The ground switch is enabled for the sensor measurement, bit wiil Remain Closed After the Measurement */ #define ENUM_CORE_MEASUREMENT_SETUP_ENABLE_SINC4 0x00000000 /* ADC_Filter_Type: Enabled SINC4 filter */ #define ENUM_CORE_MEASUREMENT_SETUP_ENABLE_SINC3 0x00001000 /* ADC_Filter_Type: Enabled SINC3 filter */ #define ENUM_CORE_MEASUREMENT_SETUP_DISABLE_CHOP 0x00000000 /* Chop_Mode: ADC front end chopping disabled */ #define ENUM_CORE_MEASUREMENT_SETUP_HW_CHOP 0x00000400 /* Chop_Mode: Hardware chopping enabled */ #define ENUM_CORE_MEASUREMENT_SETUP_SW_CHOP 0x00000800 /* Chop_Mode: SW chop enabled */ #define ENUM_CORE_MEASUREMENT_SETUP_HW_SW_CHOP 0x00000C00 /* Chop_Mode: Hardware and software chop enabled */ -#define ENUM_CORE_MEASUREMENT_SETUP_POWERCYCLE 0x00000000 -#define ENUM_CORE_MEASUREMENT_SETUP_ALWAYSON 0x00000200 #define ENUM_CORE_MEASUREMENT_SETUP_NOTCH_DIS 0x00000000 /* NOTCH_EN_2: Disable notch filter */ #define ENUM_CORE_MEASUREMENT_SETUP_NOTCH_EN 0x00000100 /* NOTCH_EN_2: Enable notch 2 filter option. */
--- a/inc/admw1001/ADMW1001_REGISTERS_typedefs.h Tue Dec 10 09:00:11 2019 +0000 +++ b/inc/admw1001/ADMW1001_REGISTERS_typedefs.h Tue Jan 07 05:45:58 2020 +0000 @@ -534,6 +534,16 @@ */ /* ========================================================================= + *! \enum ADMW_CORE_Cycle_Control_GND_SW_CTRL + *! \brief Ground Switch Cycle Control (GND_SW_CTRL) Enumerations + * ========================================================================= */ +typedef enum +{ + CORE_CYCLE_CONTROL_CLOSE_SW = 0, /**< Ground Switch Closed */ + CORE_CYCLE_CONTROL_CYCLE_SW = 1 /**< Ground Switch Opens outside of measurement cycle to conserve power */ +} ADMW_CORE_Cycle_Control_GND_SW_CTRL; + +/* ========================================================================= *! \enum ADMW_CORE_Cycle_Control_Vbias *! \brief Voltage Bias Global Enable (Vbias) Enumerations * ========================================================================= */ @@ -554,6 +564,15 @@ CORE_CYCLE_CONTROL_SECONDS = 1 /**< Seconds */ } ADMW_CORE_Cycle_Control_Cycle_Time_Units; +/* ========================================================================= + *! \enum ADMW_CORE_Cycle_Control_PST_MEAS_EXC_CTRL + *! \brief Disable Current Sources After Measurement Completes (PST_MEAS_EXC_CTRL) Enumerations + * ========================================================================= */ +typedef enum +{ + CORE_CYCLE_CONTROL_POWERCYCLE = 0, /**< */ + CORE_CYCLE_CONTROL_ALWAYSON = 1 /**< */ +} ADMW_CORE_Cycle_Control_PST_MEAS_EXC_CTRL; /* ========================================================================== *! \struct ADMW_CORE_Cycle_Control_Struct @@ -563,10 +582,10 @@ union { struct { uint16_t Cycle_Time : 12; /**< Time Between Measurement Cycles */ - uint16_t reserved12 : 1; + uint16_t GND_SW_CTRL : 1; /**< Ground Switch Cycle Control */ uint16_t Vbias : 1; /**< Voltage Bias Global Enable */ uint16_t Cycle_Time_Units : 1; /**< Units for Cycle Time */ - uint16_t reserved15 : 1; + uint16_t PST_MEAS_EXC_CTRL : 1; /**< Disable Current Sources After Measurement Completes */ }; uint16_t VALUE16; }; @@ -741,6 +760,27 @@ } ADMW_CORE_External_Voltage_Reference_t; /*@}*/ + +/** @defgroup AVDD_Voltage AVDD Voltage (AVDD_Voltage) Register + * AVDD Voltage (AVDD_Voltage) Register. + * @{ + */ + +/* ========================================================================== + *! \struct ADMW_CORE_AVDD_Voltage_Struct + *! \brief AVDD Voltage Register bit field structure + * ========================================================================== */ +typedef struct _ADMW_CORE_AVDD_Voltage_t { + union { + struct { + float Avdd_Voltage; /**< AVDD Voltage */ + }; + float VALUE32; + }; +} ADMW_CORE_AVDD_Voltage_t; + +/*@}*/ + /** @defgroup Diagnostics_Control Diagnostic Control (Diagnostics_Control) Register * Diagnostic Control (Diagnostics_Control) Register. * @{ @@ -1204,18 +1244,6 @@ CORE_MEASUREMENT_SETUP_NOTCH_EN = 1 /**< Enable notch 2 filter option. */ } ADMW_CORE_Measurement_Setup_NOTCH_EN_2; - -/* ========================================================================= - *! \enum ADMW_CORE_Measurement_Setup_PST_MEAS_EXC_CTRL - *! \brief Disable Current Sources After Measurement Completes (PST_MEAS_EXC_CTRL) Enumerations - * ========================================================================= */ -typedef enum -{ - CORE_MEASUREMENT_SETUP_POWERCYCLE = 0, /**< */ - CORE_MEASUREMENT_SETUP_ALWAYSON = 1 /**< */ -} ADMW_CORE_Measurement_Setup_PST_MEAS_EXC_CTRL; - - /* ========================================================================= *! \enum ADMW_CORE_Measurement_Setup_Chop_Mode *! \brief Enabled and Disable Chop Mode (Chop_Mode) Enumerations @@ -1241,17 +1269,6 @@ /* ========================================================================= - *! \enum ADMW_CORE_Measurement_Setup_GND_SW - *! \brief Ground Switch Selection (GND_SW) Enumerations - * ========================================================================= */ -typedef enum -{ - CORE_MEASUREMENT_SETUP_GND_SW_OPEN = 0, /**< GND_SW Open. The ground switch is not enabled for the sensor measurement */ - CORE_MEASUREMENT_SETUP_GND_SW_CLOSED = 1 /**< GND_SW Closed. The ground switch is enabled for the sensor measurement, bit wiil Remain Closed After the Measurement */ -} ADMW_CORE_Measurement_Setup_GND_SW; - - -/* ========================================================================= *! \enum ADMW_CORE_Measurement_Setup_Buffer_Bypass *! \brief Disable Buffers (Buffer_Bypass) Enumerations * ========================================================================= */ @@ -1272,12 +1289,12 @@ uint32_t ADC_SF : 7; /**< ADC Digital Filter Speed */ uint32_t reserved7 : 1; uint32_t NOTCH_EN_2 : 1; /**< Enable Notch 2 Filter Mode */ - uint32_t PST_MEAS_EXC_CTRL : 1; /**< Disable Current Sources After Measurement Completes */ - uint32_t Chop_Mode : 2; /**< Enabled and Disable Chop Mode */ - uint32_t ADC_Filter_Type : 1; /**< ADC Digital Filter Type */ - uint32_t GND_SW : 2; /**< Ground Switch Selection */ - uint32_t Buffer_Bypass : 1; /**< Disable Buffers */ - uint32_t reserved16 : 16; + uint32_t reserved9 : 1; + uint32_t Chop_Mode : 2; /**< Enabled and Disable Chop Mode */ + uint32_t ADC_Filter_Type : 1; /**< ADC Digital Filter Type */ + uint32_t reserved13 : 2; + uint32_t Buffer_Bypass : 1; /**< Disable Buffers */ + uint32_t reserved16 : 16; }; uint32_t VALUE32; };
--- a/inc/admw1001/admw1001_config.h Tue Dec 10 09:00:11 2019 +0000 +++ b/inc/admw1001/admw1001_config.h Tue Jan 07 05:45:58 2020 +0000 @@ -463,7 +463,11 @@ * configurations, settling time is always skipped between consecutive * measurements in a measurement cycle. */ - uint8_t reserved0[3]; + ADMW1001_ADC_EXC_STATE excitationState; + /*!< Excitation current state */ + ADMW1001_ADC_GND_SW groundSwitch; + /*!< Option to open or close sensor ground switch */ + uint8_t reserved0; /*!< Reserved for future use and ensure word alignment. */ uint32_t cycleInterval; @@ -495,8 +499,6 @@ * specific sensor types */ typedef struct { - ADMW1001_ADC_EXC_STATE excitationState; - /*!< Excitation current state */ ADMW1001_ADC_EXC_CURRENT outputLevel; /*!< Excitation current output level */ ADMW1001_ADC_EXC_CURRENT_DIODE_RATIO diodeRatio; @@ -517,9 +519,6 @@ /*!< Enable filter chop */ bool notch1p2; /*!< Enable Notch 2 Filter Mode */ - ADMW1001_ADC_GND_SW groundSwitch; - /*!< Option to open or close sensor ground switch */ - } ADMW1001_ADC_FILTER_CONFIG; /*! ADMW1001 ADC analog channel configuration details
--- a/multichannel_continuous_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/multichannel_continuous_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -42,7 +42,7 @@ #include "admw_config_types.h" ADMW_CONFIG multichannel_continuous_config = { - .versionId = { .major = 2, .minor = 0 }, + .versionId = { .major = 2, .minor = 0 }, .productId = ADMW_PRODUCT_ID_ADMW1001, .admw1001 = { .power = { @@ -52,9 +52,13 @@ .externalRefVoltage=0.0, .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS, .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!! + .excitationState= ADMW1001_ADC_EXC_STATE_ALWAYS_ON, + .groundSwitch = ADMW1001_ADC_GND_SW_CLOSED, + .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN, .cycleInterval = 0, .vBiasEnable = true, - .RSenseValue = 1000.0, + .RSenseValue = 1000.0, }, .diagnostics = { .disableGlobalDiag = true, @@ -82,7 +86,6 @@ .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, }, @@ -91,7 +94,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED, @@ -117,7 +119,6 @@ .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN, .gain = ADMW1001_ADC_GAIN_8X, .current = { - .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, .outputLevel = ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT, .diodeRatio = 0, }, @@ -126,7 +127,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
--- a/multichannel_singlecycle_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/multichannel_singlecycle_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -52,6 +52,8 @@ .externalRefVoltage=0.0, .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!! + .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN, .cycleInterval = 0, .vBiasEnable = true, .RSenseValue = 1000.0, @@ -82,7 +84,6 @@ .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, }, @@ -91,7 +92,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED, @@ -117,7 +117,6 @@ .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN, .gain = ADMW1001_ADC_GAIN_8X, .current = { - .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, .outputLevel = ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT, .diodeRatio = 0, }, @@ -126,7 +125,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
--- a/rtd_3w_pt100_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/rtd_3w_pt100_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -53,6 +53,8 @@ .externalRefVoltage =0.0, .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS, .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!! + .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN, .cycleInterval = 0, .vBiasEnable = false, .RSenseValue = 1000.0, @@ -83,7 +85,6 @@ .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, }, @@ -92,7 +93,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, },
--- a/rtd_4w_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/rtd_4w_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -53,6 +53,8 @@ .externalRefVoltage = 0.0, .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!! + .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN, .cycleInterval = 0, .RSenseValue = 1000.0, }, @@ -81,7 +83,6 @@ .sensor = ADMW1001_ADC_SENSOR_RTD_4WIRE_PT100, .gain = ADMW1001_ADC_GAIN_1X, .current = { - .excitationState= ADMW1001_ADC_EXC_STATE_ALWAYS_ON, .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA, .diodeRatio = 0, }, @@ -91,7 +92,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = true, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
--- a/src/admw_1001.c Tue Dec 10 09:00:11 2019 +0000 +++ b/src/admw_1001.c Tue Jan 07 05:45:58 2020 +0000 @@ -1082,18 +1082,19 @@ ADMW_RESULT admw_SetCycleControl(ADMW_DEVICE_HANDLE hDevice, uint32_t nCycleInterval, - bool vBiasEnable) + bool vBiasEnable, + bool vPostExecCurrentState, + bool vGroundSwitch) { ADMW_CORE_Cycle_Control_t cycleControlReg; cycleControlReg.VALUE16 = REG_RESET_VAL(CORE_CYCLE_CONTROL); - if (nCycleInterval < (1000 * (1 << 12))) { - cycleControlReg.Cycle_Time_Units = CORE_CYCLE_CONTROL_MILLISECONDS; - nCycleInterval /= 1000; + if (nCycleInterval < (1 << 12)) { + cycleControlReg.Cycle_Time_Units = CORE_CYCLE_CONTROL_SECONDS; } else { - cycleControlReg.Cycle_Time_Units = CORE_CYCLE_CONTROL_SECONDS; - nCycleInterval /= 1000000; + ADMW_LOG_ERROR("Invalid nCycleInterval %d specified", nCycleInterval); + return ADMW_INVALID_PARAM; } if (vBiasEnable == true) { @@ -1101,7 +1102,35 @@ } CHECK_REG_FIELD_VAL(CORE_CYCLE_CONTROL_CYCLE_TIME, nCycleInterval); cycleControlReg.Cycle_Time = nCycleInterval; - + + switch(vPostExecCurrentState) + { + case ADMW1001_ADC_EXC_STATE_CYCLE_POWER: + cycleControlReg.PST_MEAS_EXC_CTRL = CORE_CYCLE_CONTROL_POWERCYCLE; + break; + case ADMW1001_ADC_EXC_STATE_ALWAYS_ON: + cycleControlReg.PST_MEAS_EXC_CTRL = CORE_CYCLE_CONTROL_ALWAYSON; + break; + default: + ADMW_LOG_ERROR("Invalid Post measurement Excitation Current state %d specified", + vPostExecCurrentState); + return ADMW_INVALID_PARAM; + } + + switch(vGroundSwitch) + { + case ADMW1001_ADC_GND_SW_OPEN: + cycleControlReg.GND_SW_CTRL = CORE_CYCLE_CONTROL_CYCLE_SW; + break; + case ADMW1001_ADC_GND_SW_CLOSED: + cycleControlReg.GND_SW_CTRL = CORE_CYCLE_CONTROL_CLOSE_SW; + break; + default: + ADMW_LOG_ERROR("Invalid ground switch state %d specified", + vGroundSwitch); + return ADMW_INVALID_PARAM; + } + WRITE_REG_U16(hDevice, cycleControlReg.VALUE16, CORE_CYCLE_CONTROL); return ADMW_SUCCESS; @@ -1139,13 +1168,15 @@ } eRet = admw_SetCycleControl(hDevice, pMeasConfig->cycleInterval, - pMeasConfig->vBiasEnable); + pMeasConfig->vBiasEnable, + pMeasConfig->excitationState, + pMeasConfig->groundSwitch ); if (eRet != ADMW_SUCCESS) { ADMW_LOG_ERROR("Failed to set cycle control"); return eRet; } - if(pMeasConfig->externalRef1Value>0) { + if(pMeasConfig->externalRef1Value > 0) { eRet = admw_SetExternalReferenceValues(hDevice, pMeasConfig->externalRef1Value); } @@ -1512,7 +1543,6 @@ ADMW_CORE_Measurement_Setup_t MeasSetupReg; ADMW1001_ADC_FILTER_CONFIG *pFilterConfig = &pAdcChannelConfig->filter; MeasSetupReg.VALUE32 = REG_RESET_VAL(CORE_MEASUREMENT_SETUPn); - MeasSetupReg.PST_MEAS_EXC_CTRL = pAdcChannelConfig->current.excitationState; MeasSetupReg.Buffer_Bypass = pAdcChannelConfig->bufferBypass; if (pFilterConfig->type == ADMW1001_ADC_FILTER_SINC4) { @@ -1535,19 +1565,6 @@ else MeasSetupReg.NOTCH_EN_2 = 0; - switch(pFilterConfig->groundSwitch) { - case ADMW1001_ADC_GND_SW_OPEN: - MeasSetupReg.GND_SW = CORE_MEASUREMENT_SETUP_GND_SW_OPEN; - break; - case ADMW1001_ADC_GND_SW_CLOSED: - MeasSetupReg.GND_SW = CORE_MEASUREMENT_SETUP_GND_SW_CLOSED; - break; - default: - ADMW_LOG_ERROR("Invalid ground switch state %d specified", - pFilterConfig->groundSwitch); - return ADMW_INVALID_PARAM; - } - WRITE_REG_U32(hDevice, MeasSetupReg.VALUE32, CORE_MEASUREMENT_SETUPn(eChannelId)); return ADMW_SUCCESS;
--- a/thermocouple_typeJ_cjc0_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/thermocouple_typeJ_cjc0_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -55,6 +55,8 @@ .externalRefVoltage = 0.0, .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS, .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!! + .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN, .cycleInterval = 0, .RSenseValue = 1000.0, }, @@ -83,7 +85,6 @@ .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100, .gain = ADMW1001_ADC_GAIN_1X, .current = { - .excitationState= ADMW1001_ADC_EXC_STATE_ALWAYS_ON, .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA, .diodeRatio = 0, }, @@ -93,7 +94,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = true, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED, @@ -122,7 +122,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = true, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
--- a/thermocouple_typeK_cjc0_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/thermocouple_typeK_cjc0_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -57,6 +57,8 @@ .externalRefVoltage=0.0, .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS, .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!! + .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN, .cycleInterval = 0, .vBiasEnable = true, .RSenseValue = 1000.0, @@ -87,7 +89,6 @@ .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, }, @@ -96,7 +97,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED, @@ -122,7 +122,6 @@ .rtdCurve = ADMW1001_ADC_RTD_CURVE_EUROPEAN, .gain = ADMW1001_ADC_GAIN_8X, .current = { - .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, .outputLevel = ADMW1001_ADC_NO_EXTERNAL_EXC_CURRENT, .diodeRatio = 0, }, @@ -131,7 +130,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = false, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,
--- a/thermocouple_typeT_cjc0_config.c Tue Dec 10 09:00:11 2019 +0000 +++ b/thermocouple_typeT_cjc0_config.c Tue Jan 07 05:45:58 2020 +0000 @@ -52,6 +52,8 @@ .externalRefVoltage = 0.0, .operatingMode = ADMW1001_OPERATING_MODE_CONTINUOUS, .dataReadyMode = ADMW1001_DATAREADY_PER_CYCLE, // FIX: Temporarily all values from json are hardcoded to this one in the Contracts.FileGenerator - > file translations!! + .excitationState= ADMW1001_ADC_EXC_STATE_CYCLE_POWER, + .groundSwitch = ADMW1001_ADC_GND_SW_OPEN, .cycleInterval = 0, .RSenseValue = 1000.0, }, @@ -80,7 +82,6 @@ .sensor = ADMW1001_ADC_SENSOR_RTD_2WIRE_PT100, .gain = ADMW1001_ADC_GAIN_1X, .current = { - .excitationState= ADMW1001_ADC_EXC_STATE_ALWAYS_ON, .outputLevel = ADMW1001_ADC_EXC_CURRENT_250uA, .diodeRatio = 0, }, @@ -90,7 +91,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = true, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED, @@ -119,7 +119,6 @@ .sf = ADMW1001_SF_8P24HZ, .chopMode = ADMW1001_CHOP_MD_SW, .notch1p2 = true, - .groundSwitch = ADMW1001_ADC_GND_SW_OPEN }, .reference = ADMW1001_ADC_REFERENCE_VOLTAGE_INTERNAL, .bufferBypass = ADMW1001_BUFFER_BYPASSS_DISABLED,