|
ChibiOS 21.11.4
|

Version identification | |
| #define | EX_ADXL317_VERSION "1.0.0" |
| ADXL317 driver version string. | |
| #define | EX_ADXL317_MAJOR 1 |
| ADXL317 driver version major number. | |
| #define | EX_ADXL317_MINOR 0 |
| ADXL317 driver version minor number. | |
| #define | EX_ADXL317_PATCH 0 |
| ADXL317 driver version patch number. | |
| #define | ADXL317_ACC_NUMBER_OF_AXES 3U |
| ADXL317 accelerometer subsystem characteristics. | |
| #define | ADXL317_ACC_SENS 2.0f |
| #define | ADXL317_ACC_BIAS 0.0f |
ADXL317 register addresses | |
| #define | ADXL317_AD_DEVID_0 0x00 |
| #define | ADXL317_AD_DEVID_1 0x01 |
| #define | ADXL317_AD_USER_REG_KEY 0x80 |
| #define | ADXL317_AD_I2C_CFGO 0x81 |
| #define | ADXL317_AD_I2C_CFG1 0x82 |
| #define | ADXL317_AD_CLK_RATE 0x83 |
| #define | ADXL317_AD_X_ST 0x84 |
| #define | ADXL317_AD_X_FILT 0x85 |
| #define | ADXL317_AD_Y_ST 0x86 |
| #define | ADXL317_AD_Y_FILT 0x87 |
| #define | ADXL317_AD_Z_ST 0x88 |
| #define | ADXL317_AD_Z_FILT 0x89 |
| #define | ADXL317_AD_X_DATA_LO 0x8A |
| #define | ADXL317_AD_X_DATA_HI 0x8B |
| #define | ADXL317_AD_Y_DATA_LO 0x8C |
| #define | ADXL317_AD_Y_DATA_HI 0x8D |
| #define | ADXL317_AD_Z_DATA_LO 0x8E |
| #define | ADXL317_AD_Z_DATA_HI 0x8F |
ADXL317 Device Identifier | |
| #define | ADXL317_DEVID_0 0x22 |
ADXL317 Device User Reg Key for Register Write Enable | |
| #define | ADXL317_USER_REG_KEY_0 0xBC |
| #define | ADXL317_USER_REG_KEY_1 0x43 |
ADXL317 Default filter | |
LP (CIC and IIR cascade) with cut off at 4kHz HP disabled | |
| #define | ADXL317_DEFAULT_FILTER 0x40 |
ADXL317_I2S_CFG0 register bits definitions | |
| #define | ADXL317_I2S_CFG0_MASK 0xF3 |
| #define | ADXL317_I2S_CFG0_TDMMODE_0 (1 << 0) |
| #define | ADXL317_I2S_CFG0_TDMMODE_1 (1 << 1) |
| #define | ADXL317_I2S_CFG0_TDMSS (1 << 4) |
| #define | ADXL317_I2S_CFG0_ALT (1 << 5) |
| #define | ADXL317_I2S_CFG0_EARLY (1 << 6) |
| #define | ADXL317_I2S_CFG0_INV (1 << 7) |
ADXL317_I2S_CFG1 register bits definitions | |
| #define | ADXL317_I2S_CFG1_MASK 0x07 |
| #define | ADXL317_I2S_CFG1_TX0EN (1 << 0) |
| #define | ADXL317_I2S_CFG1_TX1EN (1 << 1) |
| #define | ADXL317_I2S_CFG1_TXBCLKINV (1 << 3) |
ADXL317_CLOCK_RATE register bits definitions | |
| #define | ADXL317_CLOCK_RATE_MASK 0x07 |
| #define | ADXL317_CLOCK_RATE_A2B_CLK_RATE_0 (1 << 0) |
| #define | ADXL317_CLOCK_RATE_A2B_CLK_RATE_1 (1 << 1) |
| #define | ADXL317_CLOCK_RATE_A2B_CLK_RATE_2 (1 << 3) |
Configuration options | |
| #define | ADXL317_USE_I2C TRUE |
| ADXL317 I2C interface switch. | |
| #define | ADXL317_SHARED_I2C FALSE |
| ADXL317 shared I2C switch. | |
| #define | ADXL317_USE_ADVANCED FALSE |
| ADXL317 advanced configurations switch. | |
| #define | ADXL317_MAX_BUFF_SIZE 6 |
| ADXL317 internal maximum communication buffer sizes. | |
Data Structures | |
| struct | adxl317_acc_lp_t |
| ADXL317 LP filter configuration. More... | |
| struct | adxl317_acc_hp_t |
| ADXL317 HP filter configuration. More... | |
| struct | ADXL317Config |
| ADXL317 configuration structure. More... | |
| struct | ADXL317VMT |
ADXL317 virtual methods table. More... | |
| struct | ADXL317Driver |
| ADXL317 3-axis accelerometer class. More... | |
Macros | |
| #define | adxl317AccelerometerGetAxesNumber(devp) |
| Return the number of axes of the BaseAccelerometer. | |
| #define | adxl317AccelerometerReadRaw(devp, axes) |
| Retrieves raw data from the BaseAccelerometer. | |
| #define | adxl317AccelerometerReadCooked(devp, axes) |
| Retrieves cooked data from the BaseAccelerometer. | |
Functions | |
| static msg_t | adxl317I2CReadRegister (ADXL317Driver *devp, uint8_t reg, uint8_t *b, size_t n) |
| Reads a generic register value using I2C. | |
| static msg_t | adxl317I2CWriteRegister (ADXL317Driver *devp, uint8_t reg, uint8_t *b, size_t n) |
| Writes a value into a generic register using I2C. | |
| static size_t | acc_get_axes_number (void *ip) |
| Return the number of axes of the BaseAccelerometer. | |
| static msg_t | acc_read_raw (void *ip, int32_t axes[]) |
| Retrieves raw data from the BaseAccelerometer. | |
| static msg_t | acc_read_cooked (void *ip, float axes[]) |
| Retrieves cooked data from the BaseAccelerometer. | |
| static msg_t | acc_set_bias (void *ip, float *bp) |
| Set bias values for the BaseAccelerometer. | |
| static msg_t | acc_reset_bias (void *ip) |
| Reset bias values for the BaseAccelerometer. | |
| static msg_t | acc_set_sensivity (void *ip, float *sp) |
| Set sensitivity values for the BaseAccelerometer. | |
| static msg_t | acc_reset_sensivity (void *ip) |
| Reset sensitivity values for the BaseAccelerometer. | |
| void | adxl317ObjectInit (ADXL317Driver *devp, uint8_t *txbp, uint8_t *rxbp) |
| Initializes an instance. | |
| msg_t | adxl317Start (ADXL317Driver *devp, const ADXL317Config *config) |
| Configures and activates ADXL317 Complex Driver peripheral. | |
| void | adxl317Stop (ADXL317Driver *devp) |
| Deactivates the ADXL317 Complex Driver peripheral. | |
Variables | |
| static const struct ADXL317VMT | vmt_device |
| static const struct BaseAccelerometerVMT | vmt_accelerometer |
| #define EX_ADXL317_VERSION "1.0.0" |
| #define EX_ADXL317_MAJOR 1 |
| #define EX_ADXL317_MINOR 0 |
| #define EX_ADXL317_PATCH 0 |
| #define ADXL317_ACC_NUMBER_OF_AXES 3U |
ADXL317 accelerometer subsystem characteristics.
Definition at line 72 of file adxl317.h.
Referenced by acc_get_axes_number(), acc_read_cooked(), acc_read_raw(), acc_reset_bias(), acc_reset_sensivity(), acc_set_bias(), acc_set_sensivity(), adxl317ObjectInit(), and adxl317Start().
| #define ADXL317_ACC_SENS 2.0f |
Definition at line 75 of file adxl317.h.
Referenced by acc_reset_sensivity(), and adxl317Start().
| #define ADXL317_ACC_BIAS 0.0f |
Definition at line 76 of file adxl317.h.
Referenced by acc_reset_bias(), and adxl317Start().
| #define ADXL317_AD_DEVID_0 0x00 |
Definition at line 84 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_AD_USER_REG_KEY 0x80 |
Definition at line 86 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_AD_X_FILT 0x85 |
Definition at line 91 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_AD_Y_FILT 0x87 |
Definition at line 93 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_AD_Z_FILT 0x89 |
Definition at line 95 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_AD_X_DATA_LO 0x8A |
Definition at line 96 of file adxl317.h.
Referenced by acc_read_raw().
| #define ADXL317_DEVID_0 0x22 |
Definition at line 108 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_USER_REG_KEY_0 0xBC |
Definition at line 115 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_USER_REG_KEY_1 0x43 |
Definition at line 116 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_DEFAULT_FILTER 0x40 |
Definition at line 125 of file adxl317.h.
Referenced by adxl317Start().
| #define ADXL317_USE_I2C TRUE |
| #define ADXL317_SHARED_I2C FALSE |
| #define ADXL317_USE_ADVANCED FALSE |
| #define ADXL317_MAX_BUFF_SIZE 6 |
ADXL317 internal maximum communication buffer sizes.
Definition at line 201 of file adxl317.h.
Referenced by adxl317I2CWriteRegister().
| #define _adxl317_methods |
| #define _adxl317_data |
ADXL317Driver specific data.
| #define adxl317AccelerometerGetAxesNumber | ( | devp | ) |
Return the number of axes of the BaseAccelerometer.
| [in] | devp | pointer to ADXL317Driver. |
| #define adxl317AccelerometerReadRaw | ( | devp, | |
| axes ) |
Retrieves raw data from the BaseAccelerometer.
| [in] | devp | pointer to ADXL317Driver. |
| [out] | axes | a buffer which would be filled with raw data. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors(). |
| MSG_TIMEOUT | if a timeout occurred before operation end. |
| #define adxl317AccelerometerReadCooked | ( | devp, | |
| axes ) |
Retrieves cooked data from the BaseAccelerometer.
| [in] | devp | pointer to ADXL317Driver. |
| [out] | axes | a buffer which would be filled with cooked data. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors(). |
| MSG_TIMEOUT | if a timeout occurred before operation end. |
| typedef struct ADXL317Driver ADXL317Driver |
| enum adxl317_sad_t |
| enum adxl317_state_t |
| enum adxl317_acc_x_lp_t |
ADXL317 X LP filter.
The X LP filter is a cascade of the 2 LP filters: CIC, always enabled, and IIR, that can be disabled.
| enum adxl317_acc_y_lp_t |
ADXL317 Y LP filter.
The Y LP filter is a cascade of the 2 LP filters: CIC, always enabled, and IIR, that can be disabled.
| enum adxl317_acc_z_lp_t |
ADXL317 Z LP filter.
The Z LP filter is a cascade of the 2 LP filters: CIC, always enabled, and IIR, that can be disabled.
| enum adxl317_acc_x_hp_t |
ADXL317 X HP filter.
The X HP filter is HPF filter.
| enum adxl317_acc_y_hp_t |
ADXL317 Y HP filter.
The Y HP filter is HPF filter.
| enum adxl317_acc_z_hp_t |
ADXL317 Z HP filter.
The Z HP filter is HPF filter.
|
static |
Reads a generic register value using I2C.
| [in] | devp | pointer to ADXL317Driver interface. |
| [in] | reg | starting register address |
| [in] | b | pointer to an output buffer |
| [in] | n | number of consecutive registers to read. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | if one or more errors occurred. |
| MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 64 of file adxl317.c.
References ADXL317_SAD_GND, i2cMasterTransmitTimeout(), and TIME_INFINITE.
Referenced by acc_read_raw(), and adxl317Start().

|
static |
Writes a value into a generic register using I2C.
| [in] | devp | pointer to ADXL317Driver interface. |
| [in] | reg | starting register address |
| [in] | b | pointer to a buffer of values |
| [in] | n | number of adjacent registers to write. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | if one or more errors occurred. |
| MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 86 of file adxl317.c.
References ADXL317_MAX_BUFF_SIZE, ADXL317_SAD_GND, i2cMasterTransmitTimeout(), MSG_OK, and TIME_INFINITE.
Referenced by adxl317Start().

|
static |
Return the number of axes of the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
Definition at line 115 of file adxl317.c.
References ADXL317_ACC_NUMBER_OF_AXES.
|
static |
Retrieves raw data from the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
| [out] | axes | a buffer which would be filled with raw data. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors(). |
| MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 137 of file adxl317.c.
References ADXL317_ACC_NUMBER_OF_AXES, ADXL317_AD_X_DATA_LO, ADXL317_READY, adxl317I2CReadRegister(), MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
Referenced by acc_read_cooked().

|
static |
Retrieves cooked data from the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
| [out] | axes | a buffer which would be filled with cooked data. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | if one or more I2C errors occurred, the errors can be retrieved using i2cGetErrors(). |
| MSG_TIMEOUT | if a timeout occurred before operation end. |
Definition at line 185 of file adxl317.c.
References acc_read_raw(), ADXL317_ACC_NUMBER_OF_AXES, ADXL317_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.

|
static |
Set bias values for the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
| [in] | bp | a buffer which contains biases. |
| MSG_OK | if the function succeeded. |
Definition at line 222 of file adxl317.c.
References ADXL317_ACC_NUMBER_OF_AXES, ADXL317_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset bias values for the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
| MSG_OK | if the function succeeded. |
Definition at line 251 of file adxl317.c.
References ADXL317_ACC_BIAS, ADXL317_ACC_NUMBER_OF_AXES, ADXL317_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Set sensitivity values for the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
| [in] | sp | a buffer which contains sensitivities. |
| MSG_OK | if the function succeeded. |
Definition at line 281 of file adxl317.c.
References ADXL317_ACC_NUMBER_OF_AXES, ADXL317_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Reset sensitivity values for the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | otherwise. |
Definition at line 310 of file adxl317.c.
References ADXL317_ACC_NUMBER_OF_AXES, ADXL317_ACC_SENS, ADXL317_READY, MSG_OK, objGetInstance, osalDbgAssert, and osalDbgCheck.
| void adxl317ObjectInit | ( | ADXL317Driver * | devp, |
| uint8_t * | txbp, | ||
| uint8_t * | rxbp ) |
Initializes an instance.
The buffer should be at least large ADXL317_COMM_BUFF_SIZE.
| [out] | devp | pointer to the ADXL317Driver object |
| [in] | txbp | pointer to a buffer used as communication tx buffer |
| [in] | rxbp | pointer to a buffer used as communication rx buffer |
Definition at line 353 of file adxl317.c.
References ADXL317Driver::acc_if, ADXL317_ACC_NUMBER_OF_AXES, ADXL317_STOP, ADXL317Driver::vmt, BaseAccelerometer::vmt, vmt_accelerometer, and vmt_device.
| msg_t adxl317Start | ( | ADXL317Driver * | devp, |
| const ADXL317Config * | config ) |
Configures and activates ADXL317 Complex Driver peripheral.
| [in] | devp | pointer to the ADXL317Driver object |
| [in] | config | pointer to the ADXL317Config object |
Definition at line 374 of file adxl317.c.
References ADXL317_ACC_BIAS, ADXL317_ACC_NUMBER_OF_AXES, ADXL317_ACC_SENS, ADXL317_AD_DEVID_0, ADXL317_AD_USER_REG_KEY, ADXL317_AD_X_FILT, ADXL317_AD_Y_FILT, ADXL317_AD_Z_FILT, ADXL317_DEFAULT_FILTER, ADXL317_DEVID_0, ADXL317_READY, ADXL317_STOP, ADXL317_USER_REG_KEY_0, ADXL317_USER_REG_KEY_1, adxl317I2CReadRegister(), adxl317I2CWriteRegister(), i2cStart(), MSG_OK, osalDbgAssert, osalDbgCheck, and osalThreadSleepMilliseconds.

| void adxl317Stop | ( | ADXL317Driver * | devp | ) |
Deactivates the ADXL317 Complex Driver peripheral.
| [in] | devp | pointer to the ADXL317Driver object |
Definition at line 474 of file adxl317.c.
References ADXL317_READY, ADXL317_STOP, i2cStop(), osalDbgAssert, and osalDbgCheck.

|
static |
Definition at line 328 of file adxl317.c.
Referenced by adxl317ObjectInit(), adxl355ObjectInit(), hts221ObjectInit(), l3gd20ObjectInit(), lis302dlObjectInit(), lis3dshObjectInit(), lis3mdlObjectInit(), lps22hbObjectInit(), lps25hObjectInit(), lsm303agrObjectInit(), lsm303dlhcObjectInit(), lsm6ds0ObjectInit(), and lsm6dslObjectInit().
|
static |
Definition at line 332 of file adxl317.c.
Referenced by adxl317ObjectInit(), adxl355ObjectInit(), lis302dlObjectInit(), lis3dshObjectInit(), lsm303agrObjectInit(), lsm303dlhcObjectInit(), lsm6ds0ObjectInit(), and lsm6dslObjectInit().