Analog Devices / ADMX2001
Committer:
nsheth
Date:
Tue Oct 05 10:43:22 2021 +0000
Revision:
3:81d1980d45aa
Child:
9:f286301109fb
Updated additional components of the library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nsheth 3:81d1980d45aa 1 /******************************************************************************
nsheth 3:81d1980d45aa 2 Copyright (c) 2021 Analog Devices Inc. All Rights Reserved.
nsheth 3:81d1980d45aa 3 This software is proprietary & confidential to Analog Devices, Inc.
nsheth 3:81d1980d45aa 4 and its licensors.
nsheth 3:81d1980d45aa 5 ******************************************************************************/
nsheth 3:81d1980d45aa 6 /**
nsheth 3:81d1980d45aa 7 * @file admx200x_commands.h
nsheth 3:81d1980d45aa 8 * @brief This file contains Macros for the SPI Commands
nsheth 3:81d1980d45aa 9 * @{
nsheth 3:81d1980d45aa 10 */
nsheth 3:81d1980d45aa 11
nsheth 3:81d1980d45aa 12 #ifndef __ADMX200X_COMMANDS_H__
nsheth 3:81d1980d45aa 13 #define __ADMX200X_COMMANDS_H__
nsheth 3:81d1980d45aa 14
nsheth 3:81d1980d45aa 15 /** Bit mask to indicate read or write */
nsheth 3:81d1980d45aa 16 #define CMD_READ_BITM 0x80
nsheth 3:81d1980d45aa 17
nsheth 3:81d1980d45aa 18 /** Length of a command*/
nsheth 3:81d1980d45aa 19 #define ADMX200X_CMD_LENGTH 7
nsheth 3:81d1980d45aa 20
nsheth 3:81d1980d45aa 21 /** Basic commands */
nsheth 3:81d1980d45aa 22 /** Read status */
nsheth 3:81d1980d45aa 23 #define CMD_STATUS_READ 0x00U
nsheth 3:81d1980d45aa 24 /** Read result */
nsheth 3:81d1980d45aa 25 #define CMD_RESULT_READ 0x01
nsheth 3:81d1980d45aa 26 /** Clear error */
nsheth 3:81d1980d45aa 27 #define CMD_CLEAR_ERROR 0x02
nsheth 3:81d1980d45aa 28 /** Read fifo */
nsheth 3:81d1980d45aa 29 #define CMD_FIFO_READ 0x03
nsheth 3:81d1980d45aa 30 /** Command to calibrate*/
nsheth 3:81d1980d45aa 31 #define CMD_CALIBRATE 0x04
nsheth 3:81d1980d45aa 32 /** Command to read compensation value*/
nsheth 3:81d1980d45aa 33 #define CMD_COMPENSATION 0x5
nsheth 3:81d1980d45aa 34 /** Command to read calibration coefficient*/
nsheth 3:81d1980d45aa 35 #define CMD_CAL_READ 0x06
nsheth 3:81d1980d45aa 36 /** Command to copy calibration coefficient*/
nsheth 3:81d1980d45aa 37 #define CMD_COPY_CAL 0x07
nsheth 3:81d1980d45aa 38 /** Command to store calibration coefficient*/
nsheth 3:81d1980d45aa 39 #define CMD_STORE_CAL 0x08
nsheth 3:81d1980d45aa 40 /** Command to store calibration coefficient*/
nsheth 3:81d1980d45aa 41 #define CMD_RESET_CAL 0x09
nsheth 3:81d1980d45aa 42 /** Command to swithc on or off error check */
nsheth 3:81d1980d45aa 43 #define CMD_ERR_CHECK 0xa
nsheth 3:81d1980d45aa 44 /** Command to swithc on or off error check */
nsheth 3:81d1980d45aa 45 #define CMD_SELF_TEST 0xb
nsheth 3:81d1980d45aa 46 /** Command to read calibration coefficient*/
nsheth 3:81d1980d45aa 47 #define CMD_COMP_READ 0xc
nsheth 3:81d1980d45aa 48 /** Command to store calibration coefficient*/
nsheth 3:81d1980d45aa 49 #define CMD_STORE_COMP 0xd
nsheth 3:81d1980d45aa 50 /** Command to read temperature */
nsheth 3:81d1980d45aa 51 #define CMD_TEMPERATURE 0xe
nsheth 3:81d1980d45aa 52 /** Command Z */
nsheth 3:81d1980d45aa 53 #define CMD_Z 0xf
nsheth 3:81d1980d45aa 54 /** Read sweep points */
nsheth 3:81d1980d45aa 55 #define CMD_READ_SWEEP_POINTS 0x11
nsheth 3:81d1980d45aa 56 /** Reset */
nsheth 3:81d1980d45aa 57 #define CMD_RESET 0x12
nsheth 3:81d1980d45aa 58 /** Current gain table */
nsheth 3:81d1980d45aa 59 #define CMD_CURRENT_GAIN_TABLE 0x13
nsheth 3:81d1980d45aa 60 /** Voltage gain table */
nsheth 3:81d1980d45aa 61 #define CMD_VOLTAGE_GAIN_TABLE 0x14
nsheth 3:81d1980d45aa 62 /** Version Details */
nsheth 3:81d1980d45aa 63 #define CMD_VERSION 0x15
nsheth 3:81d1980d45aa 64 /** Command to read or write spi regsiters*/
nsheth 3:81d1980d45aa 65 #define CMD_IP_REGISTERS 0x16
nsheth 3:81d1980d45aa 66 /** Initiates the measurement */
nsheth 3:81d1980d45aa 67 #define CMD_INITIATE (0x17)
nsheth 3:81d1980d45aa 68 /** Triggers the measurement */
nsheth 3:81d1980d45aa 69 #define CMD_TRIGGER (0x18)
nsheth 3:81d1980d45aa 70 /** Fetch the last measurement */
nsheth 3:81d1980d45aa 71 #define CMD_FETCH (0x19)
nsheth 3:81d1980d45aa 72 /** Aborts the measurement */
nsheth 3:81d1980d45aa 73 #define CMD_ABORT (0x1a)
nsheth 3:81d1980d45aa 74 /** Calibration commit command */
nsheth 3:81d1980d45aa 75 #define CMD_CAL_COMMIT (0x1b)
nsheth 3:81d1980d45aa 76 /** Calibration commit password set*/
nsheth 3:81d1980d45aa 77 #define CMD_SET_PASSWORD (0x1c)
nsheth 3:81d1980d45aa 78 /** Calibration commit get password*/
nsheth 3:81d1980d45aa 79 #define CMD_GET_PASSWORD (0x1d)
nsheth 3:81d1980d45aa 80 /** Command to read or write spi regsiters with address more than uint16 */
nsheth 3:81d1980d45aa 81 #define CMD_IP_REGISTERS_U32 (0x1e)
nsheth 3:81d1980d45aa 82
nsheth 3:81d1980d45aa 83 /** Base of attribute commands */
nsheth 3:81d1980d45aa 84 #define CMD_ATTR_BASE (0x20)
nsheth 3:81d1980d45aa 85 /** lcr frequecny */
nsheth 3:81d1980d45aa 86 #define CMD_FREQUENCY (CMD_ATTR_BASE + 3)
nsheth 3:81d1980d45aa 87 /** lcr integration time */
nsheth 3:81d1980d45aa 88 #define CMD_INTEGRATION (CMD_ATTR_BASE + 4)
nsheth 3:81d1980d45aa 89 /** dds magnitude */
nsheth 3:81d1980d45aa 90 #define CMD_MAGNITUDE (CMD_ATTR_BASE + 5)
nsheth 3:81d1980d45aa 91 /** dds offset */
nsheth 3:81d1980d45aa 92 #define CMD_OFFSET (CMD_ATTR_BASE + 6)
nsheth 3:81d1980d45aa 93 /** dds gain */
nsheth 3:81d1980d45aa 94 #define CMD_DDS_GAIN (CMD_ATTR_BASE + 7)
nsheth 3:81d1980d45aa 95 /** lcr voltage gain */
nsheth 3:81d1980d45aa 96 #define CMD_VOLTAGE_GAIN (CMD_ATTR_BASE + 8)
nsheth 3:81d1980d45aa 97 /** lcr current gain */
nsheth 3:81d1980d45aa 98 #define CMD_CURRENT_GAIN (CMD_ATTR_BASE + 9)
nsheth 3:81d1980d45aa 99 /** lcr average */
nsheth 3:81d1980d45aa 100 #define CMD_AVERAGE (CMD_ATTR_BASE + 10)
nsheth 3:81d1980d45aa 101 /** lcr measurement delay */
nsheth 3:81d1980d45aa 102 #define CMD_MDELAY (CMD_ATTR_BASE + 11)
nsheth 3:81d1980d45aa 103 /** lcr trigger delay */
nsheth 3:81d1980d45aa 104 #define CMD_TDELAY (CMD_ATTR_BASE + 12)
nsheth 3:81d1980d45aa 105 /** lcr trigger count */
nsheth 3:81d1980d45aa 106 #define CMD_TCOUNT (CMD_ATTR_BASE + 13)
nsheth 3:81d1980d45aa 107 /** Sweep Start*/
nsheth 3:81d1980d45aa 108 #define CMD_SWEEP_START (CMD_ATTR_BASE + 16)
nsheth 3:81d1980d45aa 109 /** Sweep End*/
nsheth 3:81d1980d45aa 110 #define CMD_SWEEP_END (CMD_ATTR_BASE + 17)
nsheth 3:81d1980d45aa 111 /** Sweep Type*/
nsheth 3:81d1980d45aa 112 #define CMD_SWEEP_TYPE (CMD_ATTR_BASE + 18)
nsheth 3:81d1980d45aa 113 /** lcr sweep scale log or linear */
nsheth 3:81d1980d45aa 114 #define CMD_SWEEP_SCALE (CMD_ATTR_BASE + 19)
nsheth 3:81d1980d45aa 115 /** lcr cycles */
nsheth 3:81d1980d45aa 116 #define CMD_CYCLES (CMD_ATTR_BASE + 20)
nsheth 3:81d1980d45aa 117 /** lcr adccount */
nsheth 3:81d1980d45aa 118 #define CMD_ADC_COUNT (CMD_ATTR_BASE + 24)
nsheth 3:81d1980d45aa 119 /** lcr adcperiod */
nsheth 3:81d1980d45aa 120 #define CMD_ADC_PERIOD (CMD_ATTR_BASE + 25)
nsheth 3:81d1980d45aa 121 /** lcr celsius */
nsheth 3:81d1980d45aa 122 #define CMD_CELSIUS (CMD_ATTR_BASE + 27)
nsheth 3:81d1980d45aa 123 /** lcr radians */
nsheth 3:81d1980d45aa 124 #define CMD_RADIANS (CMD_ATTR_BASE + 28)
nsheth 3:81d1980d45aa 125 /** lcr lock */
nsheth 3:81d1980d45aa 126 #define CMD_LOCK (CMD_ATTR_BASE + 29)
nsheth 3:81d1980d45aa 127 /** lcr display */
nsheth 3:81d1980d45aa 128 #define CMD_DISPLAY (CMD_ATTR_BASE + 33)
nsheth 3:81d1980d45aa 129 /** lcr sample count */
nsheth 3:81d1980d45aa 130 #define CMD_COUNT (CMD_ATTR_BASE + 34)
nsheth 3:81d1980d45aa 131 /** lcr correction mode */
nsheth 3:81d1980d45aa 132 #define CMD_CORRECTION_MODE (CMD_ATTR_BASE + 35)
nsheth 3:81d1980d45aa 133 /** Check ADC and FIFO overflow */
nsheth 3:81d1980d45aa 134 #define CMD_OVERFLOW_CHECK (CMD_ATTR_BASE + 36)
nsheth 3:81d1980d45aa 135 /** DC resistance mode */
nsheth 3:81d1980d45aa 136 #define CMD_RESISTANCE_MODE (CMD_ATTR_BASE + 37)
nsheth 3:81d1980d45aa 137 /** Enable Auto range gain for ADC channels */
nsheth 3:81d1980d45aa 138 #define CMD_ENABLE_AUTORANGE (CMD_ATTR_BASE + 38)
nsheth 3:81d1980d45aa 139 /** Minimum sample clocks */
nsheth 3:81d1980d45aa 140 #define CMD_SAMPLE_CLOCKS (CMD_ATTR_BASE + 39)
nsheth 3:81d1980d45aa 141 /** Check echo mode is enabled or disabled */
nsheth 3:81d1980d45aa 142 #define CMD_ECHO_MODE (CMD_ATTR_BASE + 40)
nsheth 3:81d1980d45aa 143 /** Sets and checks boards revision */
nsheth 3:81d1980d45aa 144 #define CMD_BOARD_REV (CMD_ATTR_BASE + 41)
nsheth 3:81d1980d45aa 145 /** Trigger mode */
nsheth 3:81d1980d45aa 146 #define CMD_TRIGGER_MODE (CMD_ATTR_BASE + 42)
nsheth 3:81d1980d45aa 147 /** State of behaviour model - only read allowed*/
nsheth 3:81d1980d45aa 148 #define CMD_STATE ((CMD_ATTR_BASE + 45) | CMD_READ_BITM)
nsheth 3:81d1980d45aa 149 /** Actual measurement count value */
nsheth 3:81d1980d45aa 150 #define CMD_ACTUAL_COUNT (CMD_ATTR_BASE + 47)
nsheth 3:81d1980d45aa 151 /** Check if vector display mode is enabled */
nsheth 3:81d1980d45aa 152 #define CMD_VECTOR_DISPLAY_MODE (CMD_ATTR_BASE + 48)
nsheth 3:81d1980d45aa 153 /** Check if vector display mode is enabled */
nsheth 3:81d1980d45aa 154 #define CMD_SELF_TEST_STATUS (CMD_ATTR_BASE + 49)
nsheth 3:81d1980d45aa 155 /** Unique ID - addr0 - lower 32 , addr 1 upper 32*/
nsheth 3:81d1980d45aa 156 #define CMD_UNIQUE_ID (CMD_ATTR_BASE + 50)
nsheth 3:81d1980d45aa 157 /** Warning Message Type */
nsheth 3:81d1980d45aa 158 #define CMD_WARNING_TYPE (CMD_ATTR_BASE + 51)
nsheth 3:81d1980d45aa 159
nsheth 3:81d1980d45aa 160 /** Not defined or unsupported command*/
nsheth 3:81d1980d45aa 161 #define CMD_NOT_DEFINED 0xFF
nsheth 3:81d1980d45aa 162
nsheth 3:81d1980d45aa 163 /** Bit mask for measure done bit */
nsheth 3:81d1980d45aa 164 #define ADMX200X_STATUS_MEASURE_DONE_BITM 0x80000000
nsheth 3:81d1980d45aa 165 /** Bit mask for done field bits */
nsheth 3:81d1980d45aa 166 #define ADMX200X_STATUS_DONE_BITM 0x40000000
nsheth 3:81d1980d45aa 167 /** Bit mask for status field bits */
nsheth 3:81d1980d45aa 168 #define ADMX200X_STATUS_ERROR_BITM 0x20000000
nsheth 3:81d1980d45aa 169 /** Bit mask for warning field bits */
nsheth 3:81d1980d45aa 170 #define ADMX200X_STATUS_WARN_BITM 0x10000000
nsheth 3:81d1980d45aa 171 /** Bit mask for fifo error */
nsheth 3:81d1980d45aa 172 #define ADMX200X_STATUS_FIFO_ERROR_BITM 0x08000000
nsheth 3:81d1980d45aa 173 /** Bit mask for fifo depth field bits */
nsheth 3:81d1980d45aa 174 #define ADMX200X_STATUS_FIFO_DEPTH_BITM 0x03FF0000
nsheth 3:81d1980d45aa 175 /** Bit mask for command result code field bits */
nsheth 3:81d1980d45aa 176 #define ADMX200X_STATUS_CODE_BITM 0x0000FFFF
nsheth 3:81d1980d45aa 177
nsheth 3:81d1980d45aa 178 /** Success **/
nsheth 3:81d1980d45aa 179 #define ADMX_STATUS_SUCCESS 0
nsheth 3:81d1980d45aa 180 /** Failed **/
nsheth 3:81d1980d45aa 181 #define ADMX_STATUS_FAILED 1
nsheth 3:81d1980d45aa 182 /** Timeout **/
nsheth 3:81d1980d45aa 183 #define ADMX_STATUS_TIMEOUT 2
nsheth 3:81d1980d45aa 184 /** Invalid attribute */
nsheth 3:81d1980d45aa 185 #define ADMX_STATUS_INVALID_ATTRIBUTE 3
nsheth 3:81d1980d45aa 186 /** Attribute value out of range */
nsheth 3:81d1980d45aa 187 #define ADMX_STATUS_ATTR_OUT_OF_RANGE 4
nsheth 3:81d1980d45aa 188 /** Invalid address of tcommand*/
nsheth 3:81d1980d45aa 189 #define ADMX_STATUS_INVALID_ADDRESS 5
nsheth 3:81d1980d45aa 190 /** Uncommitted calibration coeffs */
nsheth 3:81d1980d45aa 191 #define ADMX_STATUS_UNCOMMITED_CAL 6
nsheth 3:81d1980d45aa 192 /** Invalid current gain*/
nsheth 3:81d1980d45aa 193 #define ADMX_STATUS_INVALID_CURRENT_GAIN 7
nsheth 3:81d1980d45aa 194 /** Invalid display mode*/
nsheth 3:81d1980d45aa 195 #define ADMX_STATUS_INVALID_DISPLAY_MODE 8
nsheth 3:81d1980d45aa 196 /** Sweep type not valid */
nsheth 3:81d1980d45aa 197 #define ADMX_STATUS_INVALID_SWEEP_TYPE 9
nsheth 3:81d1980d45aa 198 /** Sweep type not valid in DC mode */
nsheth 3:81d1980d45aa 199 #define ADMX_STATUS_INVALID_DC_SWEEP_TYPE 9
nsheth 3:81d1980d45aa 200 /** Invalid sweep range */
nsheth 3:81d1980d45aa 201 #define ADMX_STATUS_INVALID_SWEEP_RANGE 10
nsheth 3:81d1980d45aa 202 /** Invalid calibration coeff type */
nsheth 3:81d1980d45aa 203 #define ADMX_STATUS_INVALID_CAL_COEFF_TYPE 11
nsheth 3:81d1980d45aa 204 /** System is not ready to take trigger */
nsheth 3:81d1980d45aa 205 #define ADMX_STATUS_TRIGGER_OVERFLOW 12
nsheth 3:81d1980d45aa 206 /** Invalid calibration type */
nsheth 3:81d1980d45aa 207 #define ADMX_STATUS_INVALID_CAL_TYPE 13
nsheth 3:81d1980d45aa 208 /** Invalid calibration gains */
nsheth 3:81d1980d45aa 209 #define ADMX_STATUS_INVALID_GAIN 14
nsheth 3:81d1980d45aa 210 /** WArning Auto range got disabled in this command*/
nsheth 3:81d1980d45aa 211 #define ADMX_STATUS_AUTO_RANGE_DISABLED 15
nsheth 3:81d1980d45aa 212 /** Calibration faild */
nsheth 3:81d1980d45aa 213 #define ADMX_STATUS_CAL_FAILED 15
nsheth 3:81d1980d45aa 214 /** Compensation failed */
nsheth 3:81d1980d45aa 215 #define ADMX_STATUS_COMP_FAILED 15
nsheth 3:81d1980d45aa 216 /** Invalid command for the state */
nsheth 3:81d1980d45aa 217 #define ADMX_STATUS_INVALID_COMMAND_STATE 16
nsheth 3:81d1980d45aa 218 /** Log of zero error */
nsheth 3:81d1980d45aa 219 #define ADMX_STATUS_LOG_ZERO_ERROR 32
nsheth 3:81d1980d45aa 220 /** Sign change for log error */
nsheth 3:81d1980d45aa 221 #define ADMX_STATUS_LOG_SIGN_ERROR 64
nsheth 3:81d1980d45aa 222 /** Voltage ADC saturated error */
nsheth 3:81d1980d45aa 223 #define ADMX_STATUS_VOLT_ADC_ERROR 128
nsheth 3:81d1980d45aa 224 /** Current ADC saturated error */
nsheth 3:81d1980d45aa 225 #define ADMX_STATUS_CURR_ADC_ERROR 256
nsheth 3:81d1980d45aa 226 /** FIFO over/under flow error */
nsheth 3:81d1980d45aa 227 #define ADMX_STATUS_FIFO_ERROR 512
nsheth 3:81d1980d45aa 228 /** Sweep count maximum value exceeded */
nsheth 3:81d1980d45aa 229 #define ADMX_STATUS_COUNT_EXCEEDED 1024
nsheth 3:81d1980d45aa 230
nsheth 3:81d1980d45aa 231 /** Command for Voltage Gain */
nsheth 3:81d1980d45aa 232 #define CMD_CAL_COEF_VOLTAGE_GAIN 0
nsheth 3:81d1980d45aa 233 /** Command for Current Gain */
nsheth 3:81d1980d45aa 234 #define CMD_CAL_COEF_CURRENT_GAIN 1
nsheth 3:81d1980d45aa 235 /** Command for Temperature */
nsheth 3:81d1980d45aa 236 #define CMD_CAL_COEF_TEMPEATURE 2
nsheth 3:81d1980d45aa 237 /** Command for Freq */
nsheth 3:81d1980d45aa 238 #define CMD_CAL_COEF_FREQUENCY 3
nsheth 3:81d1980d45aa 239 /** Command for RO */
nsheth 3:81d1980d45aa 240 #define CMD_CAL_COEF_RO 4
nsheth 3:81d1980d45aa 241 /** Command for XO */
nsheth 3:81d1980d45aa 242 #define CMD_CAL_COEF_XO 5
nsheth 3:81d1980d45aa 243 /** Command for GO */
nsheth 3:81d1980d45aa 244 #define CMD_CAL_COEF_GO 6
nsheth 3:81d1980d45aa 245 /** Command for BO */
nsheth 3:81d1980d45aa 246 #define CMD_CAL_COEF_BO 7
nsheth 3:81d1980d45aa 247 /** Command for RS */
nsheth 3:81d1980d45aa 248 #define CMD_CAL_COEF_RS 8
nsheth 3:81d1980d45aa 249 /** Command for XS */
nsheth 3:81d1980d45aa 250 #define CMD_CAL_COEF_XS 9
nsheth 3:81d1980d45aa 251 /** Command for RG */
nsheth 3:81d1980d45aa 252 #define CMD_CAL_COEF_RG 10
nsheth 3:81d1980d45aa 253 /** Command for XG */
nsheth 3:81d1980d45aa 254 #define CMD_CAL_COEF_XG 11
nsheth 3:81d1980d45aa 255 /** Command for GG */
nsheth 3:81d1980d45aa 256 #define CMD_CAL_COEF_GG 12
nsheth 3:81d1980d45aa 257 /** Command for BG */
nsheth 3:81d1980d45aa 258 #define CMD_CAL_COEF_BG 13
nsheth 3:81d1980d45aa 259 /** Command for RDG */
nsheth 3:81d1980d45aa 260 #define CMD_CAL_COEF_RDG 14
nsheth 3:81d1980d45aa 261 /** Command for RDO */
nsheth 3:81d1980d45aa 262 #define CMD_CAL_COEF_RDO 15
nsheth 3:81d1980d45aa 263
nsheth 3:81d1980d45aa 264 /* States for ADMX2001*/
nsheth 3:81d1980d45aa 265
nsheth 3:81d1980d45aa 266 /** Define for Ideal state */
nsheth 3:81d1980d45aa 267 #define ADMX_STATE_IDLE 0
nsheth 3:81d1980d45aa 268 /** Define for wait for trigger state */
nsheth 3:81d1980d45aa 269 #define ADMX_STATE_WAIT_FOR_TRIGGER 1
nsheth 3:81d1980d45aa 270
nsheth 3:81d1980d45aa 271 #endif /* __ADMX200X_COMMANDS_H__ */
nsheth 3:81d1980d45aa 272
nsheth 3:81d1980d45aa 273 /**
nsheth 3:81d1980d45aa 274 * @}
nsheth 3:81d1980d45aa 275 */