Driver for the Freescale MMA7660 3-Axis accelerometer.
More...
Driver for the Freescale MMA7660 3-Axis accelerometer.
This driver only implements basic functionality.
|
file | mma7660.h |
| Interface definition for the MMA7660 accelerometer driver.
|
|
file | mma7660_params.h |
| Default configuration for MMA7660 accelerometer.
|
|
file | mma7660_reg.h |
| Register definition for the MMA7660 accelerometer driver.
|
|
|
int | mma7660_init (mma7660_t *dev, const mma7660_params_t *params) |
| Initialize an MMA7660 device.
|
|
int | mma7660_set_mode (const mma7660_t *dev, uint8_t active, uint8_t autowake, uint8_t autosleep, uint8_t prescale) |
| Set the mode register.
|
|
int | mma7660_read_tilt (const mma7660_t *dev, uint8_t *res) |
| Read the tilt register.
|
|
int | mma7660_write_sleep_count (const mma7660_t *dev, uint8_t sleep) |
| Write the sleep count register.
|
|
int | mma7660_config_interrupts (const mma7660_t *dev, uint8_t isource_flags) |
| Configure the interrupt sources.
|
|
int | mma7660_config_samplerate (const mma7660_t *dev, uint8_t amsr, uint8_t awsr, uint8_t filt) |
| Configure the sample rate.
|
|
int | mma7660_config_pdet (const mma7660_t *dev, uint8_t pdth, uint8_t enabled_axes) |
| Configure the tap detection.
|
|
int | mma7660_config_pd (const mma7660_t *dev, uint8_t pd) |
| Configure the tap detection debounce count.
|
|
int | mma7660_read (const mma7660_t *dev, mma7660_data_t *data) |
| Read the acceleration counts converted to mG.
|
|
int | mma7660_read_counts (const mma7660_t *dev, int8_t *x, int8_t *y, int8_t *z) |
| Read the acceleration counts (unconverted)
|
|
◆ MMA7660_ADDR
#define MMA7660_ADDR (0x4C) |
◆ MMA7660_INTSOURCE_AUTOSLEEP
#define MMA7660_INTSOURCE_AUTOSLEEP (0x08) |
◆ MMA7660_INTSOURCE_FB
#define MMA7660_INTSOURCE_FB (0x01) |
◆ MMA7660_INTSOURCE_MEASURE
#define MMA7660_INTSOURCE_MEASURE (0x10) |
◆ MMA7660_INTSOURCE_NONE
#define MMA7660_INTSOURCE_NONE (0x00) |
◆ MMA7660_INTSOURCE_SHX
#define MMA7660_INTSOURCE_SHX (0x20) |
◆ MMA7660_INTSOURCE_SHY
#define MMA7660_INTSOURCE_SHY (0x40) |
◆ MMA7660_INTSOURCE_SHZ
#define MMA7660_INTSOURCE_SHZ (0x80) |
◆ MMA7660_INTSOURCE_TAP
#define MMA7660_INTSOURCE_TAP (0x04) |
◆ MMA7660_INTSOURCE_UDLR
#define MMA7660_INTSOURCE_UDLR (0x02) |
◆ MMA7660_MG_PER_COUNT
#define MMA7660_MG_PER_COUNT (47U) |
◆ MMA7660_PDET_X
#define MMA7660_PDET_X (0x20) |
◆ MMA7660_PDET_Y
#define MMA7660_PDET_Y (0x40) |
◆ MMA7660_PDET_Z
#define MMA7660_PDET_Z (0x80) |
◆ MMA7660_SR_AM1
#define MMA7660_SR_AM1 (0x07) |
◆ MMA7660_SR_AM16
#define MMA7660_SR_AM16 (0x03) |
◆ MMA7660_SR_AM2
#define MMA7660_SR_AM2 (0x06) |
◆ MMA7660_SR_AM32
#define MMA7660_SR_AM32 (0x02) |
◆ MMA7660_SR_AM4
#define MMA7660_SR_AM4 (0x05) |
◆ MMA7660_SR_AM64
#define MMA7660_SR_AM64 (0x01) |
◆ MMA7660_SR_AM8
#define MMA7660_SR_AM8 (0x04) |
◆ MMA7660_SR_AMPD
#define MMA7660_SR_AMPD (0x00) |
◆ MMA7660_SR_AW1
#define MMA7660_SR_AW1 (0x18) |
◆ MMA7660_SR_AW16
#define MMA7660_SR_AW16 (0x08) |
◆ MMA7660_SR_AW32
#define MMA7660_SR_AW32 (0x00) |
◆ MMA7660_SR_AW8
#define MMA7660_SR_AW8 (0x10) |
◆ MODE_ACTIVE_SHIFT
#define MODE_ACTIVE_SHIFT (0U) |
◆ MODE_AUTOSLEEP_SHIFT
#define MODE_AUTOSLEEP_SHIFT (4U) |
◆ MODE_AUTOWAKE_SHIFT
#define MODE_AUTOWAKE_SHIFT (3U) |
◆ MODE_INTERRUPT_DEFAULT
#define MODE_INTERRUPT_DEFAULT (0x40) /* Active low, push-pull */ |
◆ MODE_PRESCALE_SHIFT
#define MODE_PRESCALE_SHIFT (5U) |
◆ anonymous enum
Return codes.
Enumerator |
---|
MMA7660_OK | all ok
|
MMA7660_I2C_ERR | i2c bus initialization error
|
MMA7660_I2C_READ_ERR | i2c bus cannot be read
|
MMA7660_I2C_WRITE_ERR | i2c bus cannot be written
|
MMA7660_READ_ERR | error when reading counts
|
Definition at line 38 of file mma7660.h.
◆ mma7660_config_interrupts()
int mma7660_config_interrupts |
( |
const mma7660_t * |
dev, |
|
|
uint8_t |
isource_flags |
|
) |
| |
Configure the interrupt sources.
- Parameters
-
[in] | dev | device descriptor |
[in] | isource_flags | interrupt source flags |
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_WRITE_ERR on i2c bus write error
◆ mma7660_config_pd()
int mma7660_config_pd |
( |
const mma7660_t * |
dev, |
|
|
uint8_t |
pd |
|
) |
| |
◆ mma7660_config_pdet()
int mma7660_config_pdet |
( |
const mma7660_t * |
dev, |
|
|
uint8_t |
pdth, |
|
|
uint8_t |
enabled_axes |
|
) |
| |
◆ mma7660_config_samplerate()
int mma7660_config_samplerate |
( |
const mma7660_t * |
dev, |
|
|
uint8_t |
amsr, |
|
|
uint8_t |
awsr, |
|
|
uint8_t |
filt |
|
) |
| |
Configure the sample rate.
- Parameters
-
[in] | dev | device descriptor |
[in] | amsr | active mode sample rate (pg 18 of DS) |
[in] | awsr | auto wake sample rate (pg 19 of DS) |
[in] | filt | filter samples (pg 19 of DS) |
See datasheet http://www.nxp.com/files/sensors/doc/data_sheet/MMA7660FC.pdf for details about the parameters
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_WRITE_ERR on i2c bus write error
◆ mma7660_init()
Initialize an MMA7660 device.
- Parameters
-
[out] | dev | device descriptor |
[in] | params | device configuration parameters |
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_ERR on i2c bus initialization error
-
-MMA7660_I2C_WRITE_ERR on i2c bus write error
◆ mma7660_read()
Read the acceleration counts converted to mG.
- Parameters
-
[in] | dev | device descriptor |
[out] | data | the acceleration data |
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_READ_ERR on i2c bus read error
◆ mma7660_read_counts()
int mma7660_read_counts |
( |
const mma7660_t * |
dev, |
|
|
int8_t * |
x, |
|
|
int8_t * |
y, |
|
|
int8_t * |
z |
|
) |
| |
Read the acceleration counts (unconverted)
- Parameters
-
[in] | dev | device descriptor |
[out] | x | the X axis value |
[out] | y | the Y axis value |
[out] | z | the Z axis value |
See page 28 of http://www.nxp.com/files/sensors/doc/data_sheet/MMA7660FC.pdf for conversion of acceleration counts to angles or G forces.
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_READ_ERR on i2c bus read error
-
-MMA7660_READ_ERR on general read error
◆ mma7660_read_tilt()
int mma7660_read_tilt |
( |
const mma7660_t * |
dev, |
|
|
uint8_t * |
res |
|
) |
| |
Read the tilt register.
- Parameters
-
[in] | dev | device descriptor |
[out] | res | tilt register contents |
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_READ_ERR on i2c bus read error
◆ mma7660_set_mode()
int mma7660_set_mode |
( |
const mma7660_t * |
dev, |
|
|
uint8_t |
active, |
|
|
uint8_t |
autowake, |
|
|
uint8_t |
autosleep, |
|
|
uint8_t |
prescale |
|
) |
| |
Set the mode register.
- Parameters
-
[in] | dev | device descriptor |
[in] | active | 0=sleep 1=active |
[in] | autowake | see datasheet |
[in] | autosleep | see datasheet |
[in] | prescale | main clock prescalar |
See page 17 of http://www.nxp.com/files/sensors/doc/data_sheet/MMA7660FC.pdf for information about the parameters
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_WRITE_ERR on i2c bus write error
◆ mma7660_write_sleep_count()
int mma7660_write_sleep_count |
( |
const mma7660_t * |
dev, |
|
|
uint8_t |
sleep |
|
) |
| |
Write the sleep count register.
- Parameters
-
[in] | dev | device descriptor |
[in] | sleep | sleep count |
- Returns
- MMA7660_OK on success
-
-MMA7660_I2C_WRITE_ERR on i2c bus write error