Implementation of ADXRS290 Driver.
More...
#include <stdlib.h>
#include <stdbool.h>
#include "no_os_gpio.h"
#include "no_os_spi.h"
#include "no_os_util.h"
|
| enum | adxrs290_mode {
ADXRS290_MODE_STANDBY
,
ADXRS290_MODE_MEASUREMENT
} |
| | Mode of the adxrs290. More...
|
| |
| enum | adxrs290_channel {
ADXRS290_CHANNEL_X
,
ADXRS290_CHANNEL_Y
,
ADXRS290_CHANNEL_TEMP
} |
| | Channel of teh adxrs290 data rate. More...
|
| |
| enum | adxrs290_lpf {
ADXRS290_LPF_480HZ
,
ADXRS290_LPF_320HZ
,
ADXRS290_LPF_160HZ
,
ADXRS290_LPF_80HZ
,
ADXRS290_LPF_56HZ6
,
ADXRS290_LPF_40HZ
,
ADXRS290_LPF_28HZ3
,
ADXRS290_LPF_20HZ
} |
| | Low-Pass filter pole location. More...
|
| |
| enum | adxrs290_hpf {
ADXRS290_HPF_ALL_PASS
,
ADXRS290_HPF_0HZ011
,
ADXRS290_HPF_0HZ022
,
ADXRS290_HPF_0HZ044
,
ADXRS290_HPF_0HZ087
,
ADXRS290_HPF_0HZ175
,
ADXRS290_HPF_0HZ350
,
ADXRS290_HPF_0HZ700
,
ADXRS290_HPF_1HZ400
,
ADXRS290_HPF_2HZ800
,
ADXRS290_HPF_11HZ30
} |
| | High-Pass filter pole location. More...
|
| |
|
| int32_t | adxrs290_reg_read (struct adxrs290_dev *dev, uint8_t address, uint8_t *data) |
| | Read device register.
|
| |
| int32_t | adxrs290_reg_write (struct adxrs290_dev *dev, uint8_t address, uint8_t data) |
| | Write device register.
|
| |
| int32_t | adxrs290_set_op_mode (struct adxrs290_dev *dev, enum adxrs290_mode mode) |
| | Set device operation mode.
|
| |
| int32_t | adxrs290_get_lpf (struct adxrs290_dev *dev, enum adxrs290_lpf *lpf) |
| | Get the low-pass filter pole location.
|
| |
| int32_t | adxrs290_set_lpf (struct adxrs290_dev *dev, enum adxrs290_lpf lpf) |
| | Set the low-pass filter pole location.
|
| |
| int32_t | adxrs290_get_hpf (struct adxrs290_dev *dev, enum adxrs290_hpf *hpf) |
| | Get the high-pass filter pole location.
|
| |
| int32_t | adxrs290_set_hpf (struct adxrs290_dev *dev, enum adxrs290_hpf hpf) |
| | Set the low-pass filter pole location.
|
| |
| int32_t | adxrs290_get_rate_data (struct adxrs290_dev *dev, enum adxrs290_channel ch, int16_t *rate) |
| | Get the Gyro data channels.
|
| |
| int32_t | adxrs290_get_temp_data (struct adxrs290_dev *dev, int16_t *temp) |
| | Get the temperature data.
|
| |
| int32_t | adxrs290_get_burst_data (struct adxrs290_dev *dev, int16_t *burst_data, uint8_t *ch_cnt) |
| | Get the burst data.
|
| |
| int32_t | adxrs290_set_active_channels (struct adxrs290_dev *dev, uint32_t mask) |
| | Set the ADXRS290 active channels.
|
| |
| int32_t | adxrs290_get_data_ready (struct adxrs290_dev *dev, bool *rdy) |
| | Get the state of data ready.
|
| |
| int32_t | adxrs290_init (struct adxrs290_dev **device, const struct adxrs290_init_param *init_param) |
| |
| int32_t | adxrs290_remove (struct adxrs290_dev *dev) |
| | Free memory allocated by adxrs290_setup().
|
| |
Implementation of ADXRS290 Driver.
- Author
- Kister Genesis Jimenez (kiste.nosp@m.r.ji.nosp@m.menez.nosp@m.@ana.nosp@m.log.c.nosp@m.om)
Copyright 2020(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
◆ ADXRS290_ADI_ID
| #define ADXRS290_ADI_ID 0xAD |
◆ ADXRS290_CHANNEL_COUNT
| #define ADXRS290_CHANNEL_COUNT 3 |
◆ ADXRS290_CHANNEL_MASK
| #define ADXRS290_CHANNEL_MASK 0x07 |
◆ ADXRS290_DATA_RDY_OUT
◆ ADXRS290_DEV_ID
| #define ADXRS290_DEV_ID 0x92 |
◆ ADXRS290_HPF
| #define ADXRS290_HPF |
( |
| x | ) |
|
Value:
#define ADXRS290_HPF_MASK
Definition adxrs290.h:53
◆ ADXRS290_HPF_MASK
| #define ADXRS290_HPF_MASK 0xF0 |
◆ ADXRS290_LPF
| #define ADXRS290_LPF |
( |
| x | ) |
|
Value:
#define ADXRS290_LPF_MASK
Definition adxrs290.h:51
◆ ADXRS290_LPF_MASK
| #define ADXRS290_LPF_MASK 0x07 |
◆ ADXRS290_MAX_TRANSITION_TIME_MS
| #define ADXRS290_MAX_TRANSITION_TIME_MS 100 |
◆ ADXRS290_MEASUREMENT
◆ ADXRS290_MEMS_ID
| #define ADXRS290_MEMS_ID 0x1D |
◆ ADXRS290_READ
◆ ADXRS290_READ_REG
| #define ADXRS290_READ_REG |
( |
| reg | ) |
|
Value:
#define ADXRS290_READ
Definition adxrs290.h:45
◆ ADXRS290_REG_ADI_ID
| #define ADXRS290_REG_ADI_ID 0x00 |
◆ ADXRS290_REG_DATA_READY
| #define ADXRS290_REG_DATA_READY 0x12 |
◆ ADXRS290_REG_DATAX0
| #define ADXRS290_REG_DATAX0 0x08 |
◆ ADXRS290_REG_DATAX1
| #define ADXRS290_REG_DATAX1 0x09 |
◆ ADXRS290_REG_DATAY0
| #define ADXRS290_REG_DATAY0 0x0A |
◆ ADXRS290_REG_DATAY1
| #define ADXRS290_REG_DATAY1 0x0B |
◆ ADXRS290_REG_DEV_ID
| #define ADXRS290_REG_DEV_ID 0x02 |
◆ ADXRS290_REG_FILTER
| #define ADXRS290_REG_FILTER 0x11 |
◆ ADXRS290_REG_MEMS_ID
| #define ADXRS290_REG_MEMS_ID 0x01 |
◆ ADXRS290_REG_POWER_CTL
| #define ADXRS290_REG_POWER_CTL 0x10 |
◆ ADXRS290_REG_REV_ID
| #define ADXRS290_REG_REV_ID 0x03 |
◆ ADXRS290_REG_SN0
| #define ADXRS290_REG_SN0 0x04 |
◆ ADXRS290_REG_SN1
| #define ADXRS290_REG_SN1 0x05 |
◆ ADXRS290_REG_SN2
| #define ADXRS290_REG_SN2 0x06 |
◆ ADXRS290_REG_SN3
| #define ADXRS290_REG_SN3 0x07 |
◆ ADXRS290_REG_TEMP0
| #define ADXRS290_REG_TEMP0 0x0C |
◆ ADXRS290_REG_TEMP1
| #define ADXRS290_REG_TEMP1 0x0D |
◆ ADXRS290_SYNC
| #define ADXRS290_SYNC |
( |
| x | ) |
|
Value:
#define ADXRS290_SYNC_MASK
Definition adxrs290.h:49
◆ ADXRS290_SYNC_MASK
| #define ADXRS290_SYNC_MASK 0x03 |
◆ ADXRS290_TSM
◆ adxrs290_channel
Channel of teh adxrs290 data rate.
| Enumerator |
|---|
| ADXRS290_CHANNEL_X | X-Axis
|
| ADXRS290_CHANNEL_Y | Y-Axis
|
| ADXRS290_CHANNEL_TEMP | Temp
|
◆ adxrs290_hpf
High-Pass filter pole location.
| Enumerator |
|---|
| ADXRS290_HPF_ALL_PASS | |
| ADXRS290_HPF_0HZ011 | |
| ADXRS290_HPF_0HZ022 | |
| ADXRS290_HPF_0HZ044 | |
| ADXRS290_HPF_0HZ087 | |
| ADXRS290_HPF_0HZ175 | |
| ADXRS290_HPF_0HZ350 | |
| ADXRS290_HPF_0HZ700 | |
| ADXRS290_HPF_1HZ400 | |
| ADXRS290_HPF_2HZ800 | |
| ADXRS290_HPF_11HZ30 | |
◆ adxrs290_lpf
Low-Pass filter pole location.
| Enumerator |
|---|
| ADXRS290_LPF_480HZ | |
| ADXRS290_LPF_320HZ | |
| ADXRS290_LPF_160HZ | |
| ADXRS290_LPF_80HZ | |
| ADXRS290_LPF_56HZ6 | |
| ADXRS290_LPF_40HZ | |
| ADXRS290_LPF_28HZ3 | |
| ADXRS290_LPF_20HZ | |
◆ adxrs290_mode
Mode of the adxrs290.
| Enumerator |
|---|
| ADXRS290_MODE_STANDBY | Standby mode
|
| ADXRS290_MODE_MEASUREMENT | Measurement mode
|
◆ adxrs290_get_burst_data()
| int32_t adxrs290_get_burst_data |
( |
struct adxrs290_dev * | dev, |
|
|
int16_t * | burst_data, |
|
|
uint8_t * | ch_cnt ) |
Get the burst data.
- Parameters
-
| dev | - Device handler. |
| burst_data | - Pointer to data value. |
| ch_cnt | - Number of active channels. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_get_data_ready()
Get the state of data ready.
- Parameters
-
| dev | - Device handler. |
| rdy | - Pointer to state of data. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_get_hpf()
Get the high-pass filter pole location.
- Parameters
-
| dev | - Device handler. |
| hpf | - Pointer to high-pass pole location container. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_get_lpf()
Get the low-pass filter pole location.
- Parameters
-
| dev | - Device handler. |
| lpf | - Pointer to Low-pass pole location container. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_get_rate_data()
Get the Gyro data channels.
- Parameters
-
| dev | - Device handler. |
| ch | - Channel to read. |
| rate | - Pointer to rate value. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_get_temp_data()
| int32_t adxrs290_get_temp_data |
( |
struct adxrs290_dev * | dev, |
|
|
int16_t * | temp ) |
Get the temperature data.
- Parameters
-
| dev | - Device handler. |
| temp | - Pointer to temperature value. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_init()
Initialize the device.
- Parameters
-
| device | - The device structure. |
| init_param | - The structure that contains the device initial parameters. |
- Returns
- 0 in case of success, negative error code otherwise.
◆ adxrs290_reg_read()
| int32_t adxrs290_reg_read |
( |
struct adxrs290_dev * | dev, |
|
|
uint8_t | address, |
|
|
uint8_t * | data ) |
Read device register.
- Parameters
-
| dev | - Device handler. |
| address | - Register address. |
| data | - Pointer to the register value container. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_reg_write()
| int32_t adxrs290_reg_write |
( |
struct adxrs290_dev * | dev, |
|
|
uint8_t | address, |
|
|
uint8_t | data ) |
Write device register.
- Parameters
-
| dev | - Device handler. |
| address | - Register address. |
| data | - New register value. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_remove()
Free memory allocated by adxrs290_setup().
- Parameters
-
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_set_active_channels()
| int32_t adxrs290_set_active_channels |
( |
struct adxrs290_dev * | dev, |
|
|
uint32_t | mask ) |
Set the ADXRS290 active channels.
- Parameters
-
| dev | - Device handler. |
| mask | - Mask for active channels. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_set_hpf()
Set the low-pass filter pole location.
- Parameters
-
| dev | - Device handler. |
| hpf | - High-pass pole location. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_set_lpf()
Set the low-pass filter pole location.
- Parameters
-
| dev | - Device handler. |
| lpf | - Low-pass pole location. |
- Returns
- 0 in case of success, -1 otherwise.
◆ adxrs290_set_op_mode()
Set device operation mode.
- Parameters
-
| dev | - Device handler. |
| mode | - mode of operation. |
- Returns
- 0 in case of success, -1 otherwise.