no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ada4250.h
Go to the documentation of this file.
1/***************************************************************************/
33
34#ifndef ADA4250_H_
35#define ADA4250_H_
36
37#include <stdint.h>
38#include <math.h>
39#include <stdbool.h>
40#include "no_os_spi.h"
41#include "no_os_gpio.h"
42#include "no_os_util.h"
43
44/* ADA4250 Register Map */
45#define ADA4250_REG_GAIN_MUX 0x00
46#define ADA4250_REG_REFBUF_EN 0x01
47#define ADA4250_REG_RESET 0x02
48#define ADA4250_REG_SNSR_CAL_VAL 0x04
49#define ADA4250_REG_SNSR_CAL_CNFG 0x05
50#define ADA4250_REG_DIE_REV 0x18
51#define ADA4250_REG_CHIP_ID1 0x19
52#define ADA4250_REG_CHIP_ID2 0x1a
53
54/* ADA4250_REG_GAIN_MUX Map */
55#define ADA4250_GAIN_MUX_MSK NO_OS_GENMASK(2, 0)
56#define ADA4250_GAIN_MUX(x) no_os_field_prep(ADA4250_GAIN_MUX_MSK, x)
57
58/* ADA4250_REG_REFBUF Map */
59#define ADA4250_REFBUF_MSK NO_OS_BIT(0)
60#define ADA4250_REFBUF(x) no_os_field_prep(ADA4250_REFBUF_MSK, x)
61
62/* ADA4250_REG_REFBUFF_EN Bit Definition */
63#define ADA4250_BUF_ENABLE 0x01
64#define ADA4250_BUF_DISABLE 0x00
65
66/* ADA4250_REG_RESET Map */
67#define ADA4250_RESET_MSK NO_OS_BIT(0)
68#define ADA4250_RESET(x) no_os_field_prep(ADA4250_RESET_MSK, x)
69
70/* ADA4250_REG_RESET Bit Definition */
71#define ADA4250_RESET_ENABLE 0x01
72#define ADA4250_RESET_DISABLE 0x00
73
74/* ADA4250_REG_SNSR_CAL_VAL Map */
75#define ADA4250_SNSR_CAL_VAL_MSK NO_OS_GENMASK(7, 0)
76#define ADA4250_SNSR_CAL_VAL(x) no_os_field_prep(ADA4250_SNSR_CAL_VAL_MSK, x)
77
78/* ADA4250_REG_SNSR_CAL_CNFG Bit Definition */
79#define ADA4250_BIAS_SET_MSK NO_OS_GENMASK(3, 2)
80#define ADA4250_BIAS_SET(x) no_os_field_prep(ADA4250_BIAS_SET_MSK, x)
81#define ADA4250_RANGE_SET_MSK NO_OS_GENMASK(1, 0)
82#define ADA4250_RANGE_SET(x) no_os_field_prep(ADA4250_RANGE_SET_MSK, x)
83
84/* Specifications */
85#define ADA4250_SPI_WRITE_CMD 0x0
86#define ADA4250_BUFF_SIZE_BYTES 2
87#define ADA4250_SPI_READ_CMD NO_OS_BIT(7)
88#define ADA4250_DIE_REV 0x0
89#define ADA4250_CHIP_ID 0x4250
90
91/* ADA4250 Extra Definitions */
92#define ADA4250_SPI_DUMMY_DATA 0x00
93
102
112
123
138
147
157
163 /* Device ID */
165 /* SPI Initialization parameters */
167 /* GPIO Initialization parameters */
175 /* AVDD value in milliVolts */
176 int32_t avdd_v;
177 /* Reference Buffer Enable */
179 /* Gain Value */
181 /* Bias Set */
183 /* Bandwidth Value */
185 /* Offset Calibration Value */
186 int32_t offset_nv;
187};
188
194 /* Device ID */
196 /* SPI Initialization parameters */
198 /* GPIO Descriptors */
206 /* AVDD value in milliVolts */
207 int32_t avdd_v;
208 /* Reference Buffer Enable */
210 /* Gain Value */
212 /* Offset Range */
214 /* Bias Set */
216 /* Bandwidth Value */
218 /* Power Mode */
220 /* Offset Calibration Value in nV*/
221 int32_t offset_nv;
222};
223
225int32_t ada4250_write(struct ada4250_dev *dev, uint8_t reg_addr,
226 uint8_t data);
227
229int32_t ada4250_read(struct ada4250_dev *dev, uint8_t reg_addr,
230 uint8_t *data);
231
232/* ADA4250 Register Update */
233int32_t ada4250_update(struct ada4250_dev *dev, uint8_t reg_addr,
234 uint8_t mask, uint8_t data);
235
236/* ADA4250 Device Descriptor Update */
237int32_t ada4250_update_desc(struct ada4250_dev *dev);
238
239/* Software Reset */
240int32_t ada4250_soft_reset(struct ada4250_dev *dev);
241
242/* Set Reference Buffer */
243int32_t ada4250_en_refbuf(struct ada4250_dev *dev, bool refbuf);
244
245/* Set Current Bias */
246int32_t ada4250_set_bias(struct ada4250_dev *dev, enum ada4250_bias bias);
247
248/* Set gain */
249int32_t ada4250_set_gain(struct ada4250_dev *dev, enum ada4250_gain gain);
250
251/* Set offset value */
252int32_t ada4250_set_offset(struct ada4250_dev *dev, int64_t offset);
253
254/* Set bandwidth mode */
255int32_t ada4250_set_bandwidth(struct ada4250_dev *dev,
256 enum ada4250_bandwidth bw);
257
258/* Set sleep/shutdown mode */
259int32_t ada4250_set_slp_shtdwn_mode(struct ada4250_dev *dev,
260 enum ada4250_power_mode pwrmode);
261
262/* Set normal mode */
263int32_t ada4250_set_normal_mode(struct ada4250_dev *dev, bool reconfig);
264
265/* ADA4250 Initialization */
266int32_t ada4250_init(struct ada4250_dev **device,
268
270int32_t ada4250_remove(struct ada4250_dev *dev);
271
272#endif /* ADA4250_H_ */
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int32_t ada4250_set_normal_mode(struct ada4250_dev *dev, bool reconfig)
Sets the ADA4250 into normal mode and reconfigures it according to the user input.
Definition ada4250.c:462
ada4250_id
Current bias settings.
Definition ada4250.h:98
@ ADA4230
Definition ada4250.h:99
@ ADA4250
Definition ada4250.h:100
int32_t ada4250_update_desc(struct ada4250_dev *dev)
Update ADA4250 device descriptor.
Definition ada4250.c:125
int32_t ada4250_en_refbuf(struct ada4250_dev *dev, bool refbuf)
Enable/Disable Reference Buffer.
Definition ada4250.c:192
int32_t ada4250_set_slp_shtdwn_mode(struct ada4250_dev *dev, enum ada4250_power_mode pwrmode)
Set the ADA4250 into sleep or shutdown mode.
Definition ada4250.c:429
int32_t ada4250_update(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t mask, uint8_t data)
Update ADA4250 register.
Definition ada4250.c:99
int32_t ada4250_set_bandwidth(struct ada4250_dev *dev, enum ada4250_bandwidth bw)
Set the bandwidth value for ADA4250.
Definition ada4250.c:356
ada4250_power_mode
Power Modes.
Definition ada4250.h:152
@ ADA4250_POWER_SHUTDOWN
Definition ada4250.h:155
@ ADA4250_POWER_NORMAL
Definition ada4250.h:153
@ ADA4250_POWER_SLEEP
Definition ada4250.h:154
int32_t ada4250_soft_reset(struct ada4250_dev *dev)
Software reset.
Definition ada4250.c:154
ada4250_bias
Current bias settings.
Definition ada4250.h:107
@ ADA4250_BIAS_DISABLE
Definition ada4250.h:108
@ ADA4250_BIAS_BANDGAP_REF
Definition ada4250.h:109
@ ADA4250_BIAS_AVDD
Definition ada4250.h:110
ada4250_bandwidth
Bandwidth modes.
Definition ada4250.h:143
@ ADA4250_BANDWIDTH_HIGH
Definition ada4250.h:145
@ ADA4250_BANDWIDTH_LOW
Definition ada4250.h:144
int32_t ada4250_remove(struct ada4250_dev *dev)
Free resoulces allocated for ADA4250.
Definition ada4250.c:651
ada4250_gain
Gain value.
Definition ada4250.h:128
@ ADA4250_GAIN_128
Definition ada4250.h:136
@ ADA4250_GAIN_4
Definition ada4250.h:131
@ ADA4250_GAIN_8
Definition ada4250.h:132
@ ADA4250_GAIN_16
Definition ada4250.h:133
@ ADA4250_GAIN_32
Definition ada4250.h:134
@ ADA4250_GAIN_64
Definition ada4250.h:135
@ ADA4250_GAIN_1
Definition ada4250.h:129
@ ADA4250_GAIN_2
Definition ada4250.h:130
int32_t ada4250_write(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t data)
Writes data to ada4250 over SPI.
Definition ada4250.c:48
ada4250_offset_range
Sensor offset trim range.
Definition ada4250.h:117
@ ADA4250_RANGE3
Definition ada4250.h:120
@ ADA4250_RANGE1
Definition ada4250.h:118
@ ADA4250_RANGE2
Definition ada4250.h:119
@ ADA4250_RANGE4
Definition ada4250.h:121
int32_t ada4250_set_gain(struct ada4250_dev *dev, enum ada4250_gain gain)
Set gain for ADA4250.
Definition ada4250.c:266
int32_t ada4250_read(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t *data)
Reads data from ada4250 over SPI.
Definition ada4250.c:70
int32_t ada4250_set_offset(struct ada4250_dev *dev, int64_t offset)
Set offset value for ADA4250.
Definition ada4250.c:298
int32_t ada4250_set_bias(struct ada4250_dev *dev, enum ada4250_bias bias)
Set current bias for ADA4250.
Definition ada4250.c:221
int32_t ada4250_init(struct ada4250_dev **device, struct ada4250_init_param *init_param)
Initialize the ADA4250 device.
Definition ada4250.c:509
Header file of GPIO Interface.
Header file of SPI Interface.
Header file of utility functions.
ADA4250 Device Descriptor.
Definition ada4250.h:193
bool refbuf_en
Definition ada4250.h:209
struct no_os_spi_desc * spi_desc
Definition ada4250.h:197
enum ada4250_id device_id
Definition ada4250.h:195
enum ada4250_bandwidth bandwidth
Definition ada4250.h:217
enum ada4250_power_mode power_mode
Definition ada4250.h:219
int32_t offset_nv
Definition ada4250.h:221
struct no_os_gpio_desc * gpio_shtdwn
Definition ada4250.h:205
struct no_os_gpio_desc * gpio_bw
Definition ada4250.h:202
struct no_os_gpio_desc * gpio_g2
Definition ada4250.h:199
struct no_os_gpio_desc * gpio_slp
Definition ada4250.h:204
struct no_os_gpio_desc * gpio_g0
Definition ada4250.h:201
struct no_os_gpio_desc * gpio_bufen
Definition ada4250.h:203
struct no_os_gpio_desc * gpio_g1
Definition ada4250.h:200
enum ada4250_offset_range offset_range
Definition ada4250.h:213
int32_t avdd_v
Definition ada4250.h:207
enum ada4250_gain gain
Definition ada4250.h:211
enum ada4250_bias bias
Definition ada4250.h:215
ADA4250 Initialization Parameters structure.
Definition ada4250.h:162
enum ada4250_id device_id
Definition ada4250.h:164
enum ada4250_bandwidth bandwidth
Definition ada4250.h:184
struct no_os_gpio_init_param * gpio_bufen_param
Definition ada4250.h:172
struct no_os_gpio_init_param * gpio_g0_param
Definition ada4250.h:170
bool refbuf_en
Definition ada4250.h:178
struct no_os_gpio_init_param * gpio_bw_param
Definition ada4250.h:171
int32_t avdd_v
Definition ada4250.h:176
struct no_os_gpio_init_param * gpio_slp
Definition ada4250.h:173
struct no_os_gpio_init_param * gpio_shtdwn
Definition ada4250.h:174
int32_t offset_nv
Definition ada4250.h:186
struct no_os_gpio_init_param * gpio_g1_param
Definition ada4250.h:169
struct no_os_gpio_init_param * gpio_g2_param
Definition ada4250.h:168
enum ada4250_bias bias
Definition ada4250.h:182
enum ada4250_gain gain
Definition ada4250.h:180
struct no_os_spi_init_param * spi_init
Definition ada4250.h:166
Definition ad9361_util.h:63
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128