Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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,