|
ChibiOS 21.11.4
|

Version identification | |
| #define | EX_ADXL355_VERSION "1.1.0" |
| ADXL355 driver version string. | |
| #define | EX_ADXL355_MAJOR 1 |
| ADXL355 driver version major number. | |
| #define | EX_ADXL355_MINOR 1 |
| ADXL355 driver version minor number. | |
| #define | EX_ADXL355_PATCH 0 |
| ADXL355 driver version patch number. | |
| #define | ADXL355_ACC_NUMBER_OF_AXES 3U |
| ADXL355 accelerometer subsystem characteristics. | |
| #define | ADXL355_ACC_2G 2.048f |
| #define | ADXL355_ACC_4G 4.096f |
| #define | ADXL355_ACC_8G 8.0192f |
| #define | ADXL355_ACC_SENS_2G 0.003906f |
| #define | ADXL355_ACC_SENS_4G 0.007813f |
| #define | ADXL355_ACC_SENS_8G 0.015625f |
| #define | ADXL355_ACC_BIAS 0.0f |
ADXL355 communication interfaces related bit masks | |
| #define | ADXL355_DI_MASK 0xFF |
| #define | ADXL355_DI(n) |
| #define | ADXL355_AD_MASK 0xFE |
| #define | ADXL355_RW (1 << 0) |
| #define | ADXL355_AD(n) |
ADXL355 Device Identifier | |
| #define | ADXL355_DEVID_MST 0x1D |
ADXL355_FILTER register bits definitions | |
| #define | ADXL355_FILTER_MASK 0x7F |
| #define | ADXL355_FILTER_ORD_LPF_0 (1 << 0) |
| #define | ADXL355_FILTER_ORD_LPF_1 (1 << 1) |
| #define | ADXL355_FILTER_ORD_LPF_2 (1 << 2) |
| #define | ADXL355_FILTER_ORD_LPF_3 (1 << 3) |
| #define | ADXL355_FILTER_HPF_CORNER_0 (1 << 4) |
| #define | ADXL355_FILTER_HPF_CORNER_1 (1 << 5) |
| #define | ADXL355_FILTER_HPF_CORNER_2 (1 << 6) |
ADXL355_FIFO_SAMPLES register bits definitions | |
| #define | ADXL355_FIFO_SAMPLES_MASK 0x7F |
| #define | ADXL355_FIFO_SAMPLES_BIT_0 (1 << 0) |
| #define | ADXL355_FIFO_SAMPLES_BIT_1 (1 << 1) |
| #define | ADXL355_FIFO_SAMPLES_BIT_2 (1 << 2) |
| #define | ADXL355_FIFO_SAMPLES_BIT_3 (1 << 3) |
| #define | ADXL355_FIFO_SAMPLES_BIT_4 (1 << 4) |
| #define | ADXL355_FIFO_SAMPLES_BIT_5 (1 << 5) |
| #define | ADXL355_FIFO_SAMPLES_BIT_6 (1 << 6) |
ADXL355_INT_MAP register bits definitions | |
| #define | ADXL355_INT_MAP_MASK 0xFF |
| #define | ADXL355_INT_MAP_RDY_EN1 (1 << 0) |
| #define | ADXL355_INT_MAP_FULL_EN1 (1 << 1) |
| #define | ADXL355_INT_MAP_OVR_EN1 (1 << 2) |
| #define | ADXL355_INT_MAP_ACT_EN1 (1 << 3) |
| #define | ADXL355_INT_MAP_RDY_EN2 (1 << 4) |
| #define | ADXL355_INT_MAP_FULL_EN2 (1 << 5) |
| #define | ADXL355_INT_MAP_OVR_EN2 (1 << 6) |
| #define | ADXL355_INT_MAP_ACT_EN2 (1 << 7) |
ADXL355_SYNC register bits definitions | |
| #define | ADXL355_SYNC_MASK 0x07 |
| #define | ADXL355_SYNC_EXT_SYNC_0 (1 << 0) |
| #define | ADXL355_SYNC_EXT_SYNC_1 (1 << 1) |
| #define | ADXL355_SYNC_EXT_CLK (1 << 2) |
ADXL355_RANGE register bits definitions | |
| #define | ADXL355_RANGE_MASK 0xC3 |
| #define | ADXL355_RANGE_RANGE_MASK 0x03 |
| #define | ADXL355_RANGE_RANGE_1 (1 << 1) |
| #define | ADXL355_RANGE_RANGE_1 (1 << 1) |
| #define | ADXL355_RANGE_RANGE_0 (1 << 0) |
| #define | ADXL355_RANGE_INT_POL (1 << 6) |
| #define | ADXL355_RANGE_I2C_HS (1 << 7) |
ADXL355_POWER_CTL register bits definitions | |
| #define | ADXL355_POWER_CTL_MASK 0x07 |
| #define | ADXL355_POWER_CTL_STANDBY (1 << 0) |
| #define | ADXL355_POWER_CTL_TEMP_OFF (1 << 1) |
| #define | ADXL355_POWER_CTL_DRDY_OFF (1 << 2) |
ADXL355_SELT_TEST register bits definitions | |
| #define | ADXL355_SELF_TEST_MASK 0x03 |
| #define | ADXL355_SELF_TEST_ST1 (1 << 0) |
| #define | ADXL355_SELF_TEST_ST2 (1 << 1) |
Configuration options | |
| #define | ADXL355_USE_SPI TRUE |
| ADXL355 SPI interface switch. | |
| #define | ADXL355_SHARED_SPI FALSE |
| ADXL355 shared SPI switch. | |
| #define | ADXL355_USE_I2C FALSE |
| ADXL355 I2C interface switch. | |
| #define | ADXL355_SHARED_I2C FALSE |
| ADXL355 shared I2C switch. | |
| #define | ADXL355_USE_ADVANCED FALSE |
| ADXL355 advanced configurations switch. | |
| #define | ADXL355_COMM_BUFF_SIZE 32 |
| ADXL355 internal communication buffer sizes. | |
Data Structures | |
| struct | ADXL355Config |
| ADXL355 configuration structure. More... | |
| struct | ADXL355VMT |
ADXL355 virtual methods table. More... | |
| struct | ADXL355Driver |
| ADXL355 3-axis accelerometer class. More... | |
Macros | |
| #define | adxl355AccelerometerGetAxesNumber(devp) |
| Return the number of axes of the BaseAccelerometer. | |
| #define | adxl355AccelerometerReadRaw(devp, axes) |
| Retrieves raw data from the BaseAccelerometer. | |
| #define | adxl355AccelerometerReadCooked(devp, axes) |
| Retrieves cooked data from the BaseAccelerometer. | |
| #define | adxl355AccelerometerSetBias(devp, bp) |
| Set bias values for the BaseAccelerometer. | |
| #define | adxl355AccelerometerResetBias(devp) |
| Reset bias values for the BaseAccelerometer. | |
| #define | adxl355AccelerometerSetSensitivity(devp, sp) |
| Set sensitivity values for the BaseAccelerometer. | |
| #define | adxl355AccelerometerResetSensitivity(devp) |
| Reset sensitivity values for the BaseAccelerometer. | |
| #define | adxl355AccelerometerSetFullScale(devp, fs) |
| Changes the ADXL355Driver accelerometer fullscale value. | |
Functions | |
| 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. | |
| static msg_t | acc_set_full_scale (ADXL355Driver *devp, adxl355_acc_fs_t fs) |
| Changes the ADXL355Driver accelerometer fullscale value. | |
| void | adxl355SPIReadRegister (ADXL355Driver *devp, uint8_t reg, size_t n, uint8_t *b) |
| Reads a generic register value using SPI. | |
| void | adxl355SPIWriteRegister (ADXL355Driver *devp, uint8_t reg, size_t n, uint8_t *b) |
| Writes a value into a generic register using SPI. | |
| void | adxl355ObjectInit (ADXL355Driver *devp, uint8_t *txbp, uint8_t *rxbp) |
| Initializes an instance. | |
| void | adxl355Start (ADXL355Driver *devp, const ADXL355Config *config) |
| Configures and activates ADXL355 Complex Driver peripheral. | |
| void | adxl355Stop (ADXL355Driver *devp) |
| Deactivates the ADXL355 Complex Driver peripheral. | |
Variables | |
| static const struct ADXL355VMT | vmt_device |
| static const struct BaseAccelerometerVMT | vmt_accelerometer |
| #define EX_ADXL355_VERSION "1.1.0" |
| #define EX_ADXL355_MAJOR 1 |
| #define EX_ADXL355_MINOR 1 |
| #define EX_ADXL355_PATCH 0 |
| #define ADXL355_ACC_NUMBER_OF_AXES 3U |
ADXL355 accelerometer subsystem characteristics.
Definition at line 72 of file adxl355.h.
Referenced by acc_get_axes_number(), acc_read_cooked(), acc_read_raw(), acc_reset_bias(), acc_reset_sensivity(), acc_set_bias(), acc_set_full_scale(), acc_set_sensivity(), adxl355ObjectInit(), and adxl355Start().
| #define ADXL355_ACC_2G 2.048f |
Definition at line 74 of file adxl355.h.
Referenced by acc_set_full_scale(), and adxl355Start().
| #define ADXL355_ACC_4G 4.096f |
Definition at line 75 of file adxl355.h.
Referenced by acc_set_full_scale(), and adxl355Start().
| #define ADXL355_ACC_8G 8.0192f |
Definition at line 76 of file adxl355.h.
Referenced by acc_set_full_scale(), and adxl355Start().
| #define ADXL355_ACC_SENS_2G 0.003906f |
Definition at line 78 of file adxl355.h.
Referenced by acc_reset_sensivity(), and adxl355Start().
| #define ADXL355_ACC_SENS_4G 0.007813f |
Definition at line 79 of file adxl355.h.
Referenced by acc_reset_sensivity(), and adxl355Start().
| #define ADXL355_ACC_SENS_8G 0.015625f |
Definition at line 80 of file adxl355.h.
Referenced by acc_reset_sensivity(), and adxl355Start().
| #define ADXL355_ACC_BIAS 0.0f |
Definition at line 82 of file adxl355.h.
Referenced by acc_reset_bias(), and adxl355Start().
| #define ADXL355_RW (1 << 0) |
Definition at line 92 of file adxl355.h.
Referenced by adxl355SPIReadRegister().
| #define ADXL355_AD_DEVID_MST 0x01 |
Definition at line 101 of file adxl355.h.
Referenced by adxl355Start().
| #define ADXL355_AD_XDATA3 0x08 |
Definition at line 108 of file adxl355.h.
Referenced by acc_read_raw().
| #define ADXL355_AD_FILTER 0x28 |
Definition at line 128 of file adxl355.h.
Referenced by adxl355Start().
| #define ADXL355_AD_RANGE 0x2C |
Definition at line 132 of file adxl355.h.
Referenced by acc_set_full_scale(), and adxl355Start().
| #define ADXL355_AD_POWER_CTL 0x2D |
Definition at line 133 of file adxl355.h.
Referenced by adxl355Start(), and adxl355Stop().
| #define ADXL355_DEVID_MST 0x1D |
Definition at line 142 of file adxl355.h.
Referenced by adxl355Start().
| #define ADXL355_RANGE_RANGE_MASK 0x03 |
Definition at line 203 of file adxl355.h.
Referenced by acc_set_full_scale().
| #define ADXL355_RANGE_I2C_HS (1 << 7) |
Definition at line 208 of file adxl355.h.
Referenced by adxl355Start().
| #define ADXL355_USE_SPI TRUE |
| #define ADXL355_SHARED_SPI FALSE |
| #define ADXL355_USE_I2C FALSE |
| #define ADXL355_SHARED_I2C FALSE |
| #define ADXL355_USE_ADVANCED FALSE |
| #define ADXL355_COMM_BUFF_SIZE 32 |
ADXL355 internal communication buffer sizes.
Definition at line 289 of file adxl355.h.
Referenced by adxl355SPIReadRegister(), and adxl355SPIWriteRegister().
| #define _adxl355_methods_alone |
ADXL355 specific methods.
| #define _adxl355_methods |
| #define _adxl355_data |
ADXL355Driver specific data.
| #define adxl355AccelerometerGetAxesNumber | ( | devp | ) |
Return the number of axes of the BaseAccelerometer.
| [in] | devp | pointer to ADXL355Driver. |
| #define adxl355AccelerometerReadRaw | ( | devp, | |
| axes ) |
Retrieves raw data from the BaseAccelerometer.
| [in] | devp | pointer to ADXL355Driver. |
| [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 adxl355AccelerometerReadCooked | ( | devp, | |
| axes ) |
Retrieves cooked data from the BaseAccelerometer.
| [in] | devp | pointer to ADXL355Driver. |
| [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. |
| #define adxl355AccelerometerSetBias | ( | devp, | |
| bp ) |
Set bias values for the BaseAccelerometer.
| [in] | devp | pointer to ADXL355Driver. |
| [in] | bp | a buffer which contains biases. |
| MSG_OK | if the function succeeded. |
| #define adxl355AccelerometerResetBias | ( | devp | ) |
Reset bias values for the BaseAccelerometer.
| [in] | devp | pointer to ADXL355Driver. |
| MSG_OK | if the function succeeded. |
| #define adxl355AccelerometerSetSensitivity | ( | devp, | |
| sp ) |
Set sensitivity values for the BaseAccelerometer.
| [in] | devp | pointer to ADXL355Driver. |
| [in] | sp | a buffer which contains sensitivities. |
| MSG_OK | if the function succeeded. |
| #define adxl355AccelerometerResetSensitivity | ( | devp | ) |
Reset sensitivity values for the BaseAccelerometer.
| [in] | devp | pointer to ADXL355Driver. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | otherwise. |
| #define adxl355AccelerometerSetFullScale | ( | devp, | |
| fs ) |
Changes the ADXL355Driver accelerometer fullscale value.
| [in] | devp | pointer to ADXL355Driver. |
| [in] | fs | new fullscale value. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | otherwise. |
| typedef struct ADXL355Driver ADXL355Driver |
| enum adxl355_acc_fs_t |
| enum adxl355_acc_odr_t |
ADXL355 output data rate.
| enum adxl355_acc_hp_t |
ADXL355 HP filter.
| enum adxl355_state_t |
|
static |
Return the number of axes of the BaseAccelerometer.
| [in] | ip | pointer to BaseAccelerometer interface. |
Definition at line 57 of file adxl355.c.
References ADXL355_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 79 of file adxl355.c.
References ADXL355_ACC_NUMBER_OF_AXES, ADXL355_AD_XDATA3, ADXL355_READY, adxl355SPIReadRegister(), MSG_OK, objGetInstance, osalDbgAssert, osalDbgCheck, SPI_READY, spiAcquireBus(), spiReleaseBus(), and spiStart().
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 137 of file adxl355.c.
References acc_read_raw(), ADXL355_ACC_NUMBER_OF_AXES, ADXL355_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 170 of file adxl355.c.
References ADXL355_ACC_NUMBER_OF_AXES, ADXL355_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 199 of file adxl355.c.
References ADXL355_ACC_BIAS, ADXL355_ACC_NUMBER_OF_AXES, ADXL355_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 229 of file adxl355.c.
References ADXL355_ACC_NUMBER_OF_AXES, ADXL355_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 258 of file adxl355.c.
References ADXL355_ACC_FS_2G, ADXL355_ACC_FS_4G, ADXL355_ACC_FS_8G, ADXL355_ACC_NUMBER_OF_AXES, ADXL355_ACC_SENS_2G, ADXL355_ACC_SENS_4G, ADXL355_ACC_SENS_8G, ADXL355_READY, FALSE, MSG_OK, MSG_RESET, objGetInstance, osalDbgAssert, and osalDbgCheck.
|
static |
Changes the ADXL355Driver accelerometer fullscale value.
| [in] | devp | pointer to ADXL355Driver interface. |
| [in] | fs | new fullscale value. |
| MSG_OK | if the function succeeded. |
| MSG_RESET | otherwise. |
Definition at line 301 of file adxl355.c.
References ADXL355_ACC_2G, ADXL355_ACC_4G, ADXL355_ACC_8G, ADXL355_ACC_FS_2G, ADXL355_ACC_FS_4G, ADXL355_ACC_FS_8G, ADXL355_ACC_NUMBER_OF_AXES, ADXL355_AD_RANGE, ADXL355_RANGE_RANGE_MASK, ADXL355_READY, adxl355SPIReadRegister(), adxl355SPIWriteRegister(), MSG_OK, MSG_RESET, osalDbgAssert, osalDbgCheck, SPI_READY, spiAcquireBus(), spiReleaseBus(), and spiStart().

| void adxl355SPIReadRegister | ( | ADXL355Driver * | devp, |
| uint8_t | reg, | ||
| size_t | n, | ||
| uint8_t * | b ) |
Reads a generic register value using SPI.
| [in] | devp | pointer to ADXL355Driver interface. |
| [in] | reg | starting register address |
| [in] | n | number of consecutive registers to read |
| [in] | b | pointer to an output buffer. |
Definition at line 403 of file adxl355.c.
References ADXL355_COMM_BUFF_SIZE, ADXL355_RW, osalDbgCheck, spiReceive(), spiSelect(), spiSend(), and spiUnselect().
Referenced by acc_read_raw(), acc_set_full_scale(), and adxl355Start().

| void adxl355SPIWriteRegister | ( | ADXL355Driver * | devp, |
| uint8_t | reg, | ||
| size_t | n, | ||
| uint8_t * | b ) |
Writes a value into a generic register using SPI.
| [in] | devp | pointer to ADXL355Driver interface. |
| [in] | reg | starting register address |
| [in] | n | number of adjacent registers to write |
| [in] | b | pointer to a buffer of values. |
Definition at line 432 of file adxl355.c.
References ADXL355_COMM_BUFF_SIZE, osalDbgCheck, spiSelect(), spiSend(), and spiUnselect().
Referenced by acc_set_full_scale(), adxl355Start(), and adxl355Stop().

| void adxl355ObjectInit | ( | ADXL355Driver * | devp, |
| uint8_t * | txbp, | ||
| uint8_t * | rxbp ) |
Initializes an instance.
The buffer should be at least large ADXL355_COMM_BUFF_SIZE.
| [out] | devp | pointer to the ADXL355Driver 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 463 of file adxl355.c.
References ADXL355Driver::acc_if, ADXL355_ACC_NUMBER_OF_AXES, ADXL355_STOP, ADXL355Driver::vmt, BaseAccelerometer::vmt, vmt_accelerometer, and vmt_device.
| void adxl355Start | ( | ADXL355Driver * | devp, |
| const ADXL355Config * | config ) |
Configures and activates ADXL355 Complex Driver peripheral.
| [in] | devp | pointer to the ADXL355Driver object |
| [in] | config | pointer to the ADXL355Config object |
Definition at line 484 of file adxl355.c.
References ADXL355_ACC_2G, ADXL355_ACC_4G, ADXL355_ACC_8G, ADXL355_ACC_BIAS, ADXL355_ACC_FS_2G, ADXL355_ACC_FS_4G, ADXL355_ACC_FS_8G, ADXL355_ACC_NUMBER_OF_AXES, ADXL355_ACC_SENS_2G, ADXL355_ACC_SENS_4G, ADXL355_ACC_SENS_8G, ADXL355_AD_DEVID_MST, ADXL355_AD_FILTER, ADXL355_AD_POWER_CTL, ADXL355_AD_RANGE, ADXL355_DEVID_MST, ADXL355_RANGE_I2C_HS, ADXL355_READY, ADXL355_STOP, adxl355SPIReadRegister(), adxl355SPIWriteRegister(), FALSE, osalDbgAssert, osalDbgCheck, osalThreadSleepMilliseconds, spiAcquireBus(), spiReleaseBus(), and spiStart().

| void adxl355Stop | ( | ADXL355Driver * | devp | ) |
Deactivates the ADXL355 Complex Driver peripheral.
| [in] | devp | pointer to the ADXL355Driver object |
Definition at line 618 of file adxl355.c.
References ADXL355_AD_POWER_CTL, ADXL355_READY, ADXL355_STOP, adxl355SPIWriteRegister(), osalDbgAssert, osalDbgCheck, spiAcquireBus(), spiReleaseBus(), spiStart(), and spiStop().

|
static |
|
static |