41#define ADXL362_WRITE_REG 0x0A
42#define ADXL362_READ_REG 0x0B
43#define ADXL362_WRITE_FIFO 0x0D
46#define ADXL362_REG_DEVID_AD 0x00
47#define ADXL362_REG_DEVID_MST 0x01
48#define ADXL362_REG_PARTID 0x02
49#define ADXL362_REG_REVID 0x03
50#define ADXL362_REG_XDATA 0x08
51#define ADXL362_REG_YDATA 0x09
52#define ADXL362_REG_ZDATA 0x0A
53#define ADXL362_REG_STATUS 0x0B
54#define ADXL362_REG_FIFO_L 0x0C
55#define ADXL362_REG_FIFO_H 0x0D
56#define ADXL362_REG_XDATA_L 0x0E
57#define ADXL362_REG_XDATA_H 0x0F
58#define ADXL362_REG_YDATA_L 0x10
59#define ADXL362_REG_YDATA_H 0x11
60#define ADXL362_REG_ZDATA_L 0x12
61#define ADXL362_REG_ZDATA_H 0x13
62#define ADXL362_REG_TEMP_L 0x14
63#define ADXL362_REG_TEMP_H 0x15
64#define ADXL362_REG_SOFT_RESET 0x1F
65#define ADXL362_REG_THRESH_ACT_L 0x20
66#define ADXL362_REG_THRESH_ACT_H 0x21
67#define ADXL362_REG_TIME_ACT 0x22
68#define ADXL362_REG_THRESH_INACT_L 0x23
69#define ADXL362_REG_THRESH_INACT_H 0x24
70#define ADXL362_REG_TIME_INACT_L 0x25
71#define ADXL362_REG_TIME_INACT_H 0x26
72#define ADXL362_REG_ACT_INACT_CTL 0x27
73#define ADXL362_REG_FIFO_CTL 0x28
74#define ADXL362_REG_FIFO_SAMPLES 0x29
75#define ADXL362_REG_INTMAP1 0x2A
76#define ADXL362_REG_INTMAP2 0x2B
77#define ADXL362_REG_FILTER_CTL 0x2C
78#define ADXL362_REG_POWER_CTL 0x2D
79#define ADXL362_REG_SELF_TEST 0x2E
82#define ADXL362_STATUS_ERR_USER_REGS (1 << 7)
83#define ADXL362_STATUS_AWAKE (1 << 6)
84#define ADXL362_STATUS_INACT (1 << 5)
85#define ADXL362_STATUS_ACT (1 << 4)
86#define ADXL362_STATUS_FIFO_OVERRUN (1 << 3)
87#define ADXL362_STATUS_FIFO_WATERMARK (1 << 2)
88#define ADXL362_STATUS_FIFO_RDY (1 << 1)
89#define ADXL362_STATUS_DATA_RDY (1 << 0)
92#define ADXL362_ACT_INACT_CTL_LINKLOOP(x) (((x) & 0x3) << 4)
93#define ADXL362_ACT_INACT_CTL_INACT_REF (1 << 3)
94#define ADXL362_ACT_INACT_CTL_INACT_EN (1 << 2)
95#define ADXL362_ACT_INACT_CTL_ACT_REF (1 << 1)
96#define ADXL362_ACT_INACT_CTL_ACT_EN (1 << 0)
99#define ADXL362_MODE_DEFAULT 0
100#define ADXL362_MODE_LINK 1
101#define ADXL362_MODE_LOOP 3
104#define ADXL362_FIFO_CTL_AH (1 << 3)
105#define ADXL362_FIFO_CTL_FIFO_TEMP (1 << 2)
106#define ADXL362_FIFO_CTL_FIFO_MODE(x) (((x) & 0x3) << 0)
109#define ADXL362_FIFO_DISABLE 0
110#define ADXL362_FIFO_OLDEST_SAVED 1
111#define ADXL362_FIFO_STREAM 2
112#define ADXL362_FIFO_TRIGGERED 3
115#define ADXL362_INTMAP1_INT_LOW (1 << 7)
116#define ADXL362_INTMAP1_AWAKE (1 << 6)
117#define ADXL362_INTMAP1_INACT (1 << 5)
118#define ADXL362_INTMAP1_ACT (1 << 4)
119#define ADXL362_INTMAP1_FIFO_OVERRUN (1 << 3)
120#define ADXL362_INTMAP1_FIFO_WATERMARK (1 << 2)
121#define ADXL362_INTMAP1_FIFO_READY (1 << 1)
122#define ADXL362_INTMAP1_DATA_READY (1 << 0)
125#define ADXL362_INTMAP2_INT_LOW (1 << 7)
126#define ADXL362_INTMAP2_AWAKE (1 << 6)
127#define ADXL362_INTMAP2_INACT (1 << 5)
128#define ADXL362_INTMAP2_ACT (1 << 4)
129#define ADXL362_INTMAP2_FIFO_OVERRUN (1 << 3)
130#define ADXL362_INTMAP2_FIFO_WATERMARK (1 << 2)
131#define ADXL362_INTMAP2_FIFO_READY (1 << 1)
132#define ADXL362_INTMAP2_DATA_READY (1 << 0)
135#define ADXL362_FILTER_CTL_RANGE(x) (((x) & 0x3) << 6)
136#define ADXL362_FILTER_CTL_RES (1 << 5)
137#define ADXL362_FILTER_CTL_HALF_BW (1 << 4)
138#define ADXL362_FILTER_CTL_EXT_SAMPLE (1 << 3)
139#define ADXL362_FILTER_CTL_ODR(x) (((x) & 0x7) << 0)
142#define ADXL362_RANGE_2G 0
143#define ADXL362_RANGE_4G 1
144#define ADXL362_RANGE_8G 2
147#define ADXL362_ODR_12_5_HZ 0
148#define ADXL362_ODR_25_HZ 1
149#define ADXL362_ODR_50_HZ 2
150#define ADXL362_ODR_100_HZ 3
151#define ADXL362_ODR_200_HZ 4
152#define ADXL362_ODR_400_HZ 5
155#define ADXL362_POWER_CTL_RES (1 << 7)
156#define ADXL362_POWER_CTL_EXT_CLK (1 << 6)
157#define ADXL362_POWER_CTL_LOW_NOISE(x) (((x) & 0x3) << 4)
158#define ADXL362_POWER_CTL_WAKEUP (1 << 3)
159#define ADXL362_POWER_CTL_AUTOSLEEP (1 << 2)
160#define ADXL362_POWER_CTL_MEASURE(x) (((x) & 0x3) << 0)
163#define ADXL362_NOISE_MODE_NORMAL 0
164#define ADXL362_NOISE_MODE_LOW 1
165#define ADXL362_NOISE_MODE_ULTRALOW 2
168#define ADXL362_MEASURE_STANDBY 0
169#define ADXL362_MEASURE_ON 2
172#define ADXL362_SELF_TEST_ST (1 << 0)
175#define ADXL362_DEVICE_AD 0xAD
176#define ADXL362_DEVICE_MST 0x1D
177#define ADXL362_PART_ID 0xF2
180#define ADXL362_RESET_KEY 0x52
211 uint16_t register_value,
212 uint8_t register_address,
213 uint8_t bytes_number);
218 uint8_t register_address,
219 uint8_t bytes_number);
224 uint16_t bytes_number);
259 uint16_t water_mark_lvl,
260 uint8_t en_temp_read);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
void adxl362_setup_activity_detection(struct adxl362_dev *dev, uint8_t ref_or_abs, uint16_t threshold, uint8_t time)
Configures activity detection.
Definition adxl362.c:389
void adxl362_get_xyz(struct adxl362_dev *dev, int16_t *x, int16_t *y, int16_t *z)
Reads the 3-axis raw data from the accelerometer.
Definition adxl362.c:275
void adxl362_set_range(struct adxl362_dev *dev, uint8_t g_range)
Selects the measurement range.
Definition adxl362.c:218
float adxl362_read_temperature(struct adxl362_dev *dev)
Reads the temperature of the device.
Definition adxl362.c:325
int32_t adxl362_remove(struct adxl362_dev *dev)
Free the resources allocated by adxl362_init().
Definition adxl362.c:81
void adxl362_set_output_rate(struct adxl362_dev *dev, uint8_t out_rate)
Selects the Output Data Rate of the device.
Definition adxl362.c:249
void adxl362_get_g_xyz(struct adxl362_dev *dev, float *x, float *y, float *z)
Reads the 3-axis raw data from the accelerometer and converts it to g.
Definition adxl362.c:299
void adxl362_set_register_value(struct adxl362_dev *dev, uint16_t register_value, uint8_t register_address, uint8_t bytes_number)
Writes data into a register.
Definition adxl362.c:100
void adxl362_get_fifo_value(struct adxl362_dev *dev, uint8_t *buffer, uint16_t bytes_number)
Reads multiple bytes from the device's FIFO buffer.
Definition adxl362.c:151
void adxl362_fifo_setup(struct adxl362_dev *dev, uint8_t mode, uint16_t water_mark_lvl, uint8_t en_temp_read)
Configures the FIFO feature.
Definition adxl362.c:356
void adxl362_software_reset(struct adxl362_dev *dev)
Resets the device via SPI communication bus.
Definition adxl362.c:174
void adxl362_setup_inactivity_detection(struct adxl362_dev *dev, uint8_t ref_or_abs, uint16_t threshold, uint16_t time)
Configures inactivity detection.
Definition adxl362.c:434
void adxl362_set_power_mode(struct adxl362_dev *dev, uint8_t pwr_mode)
Places the device into standby/measure mode.
Definition adxl362.c:190
void adxl362_get_register_value(struct adxl362_dev *dev, uint8_t *read_data, uint8_t register_address, uint8_t bytes_number)
Performs a burst read of a specified number of registers.
Definition adxl362.c:124
int32_t adxl362_init(struct adxl362_dev **device, struct adxl362_init_param init_param)
Initializes communication with the device and checks if the part is present by reading the device id.
Definition adxl362.c:49
Header file of SPI Interface.
ADXL362 Device structure.
Definition adxl362.h:186
uint8_t selected_range
Definition adxl362.h:190
struct no_os_spi_desc * spi_desc
Definition adxl362.h:188
Structure holding the parameters for ADXL362 device initialization.
Definition adxl362.h:197
struct no_os_spi_init_param spi_init
Definition adxl362.h:199
Definition ad9361_util.h:63
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
enum no_os_spi_mode mode
Definition no_os_spi.h:136