|
PX4 Firmware
PX4 Autopilot Software http://px4.io
|
Driver for the Bosch BMA 180 MEMS accelerometer connected via SPI. More...
#include <px4_platform_common/px4_config.h>#include <px4_platform_common/defines.h>#include <ecl/geo/geo.h>#include <sys/types.h>#include <stdint.h>#include <stdbool.h>#include <stddef.h>#include <stdlib.h>#include <semaphore.h>#include <string.h>#include <fcntl.h>#include <poll.h>#include <errno.h>#include <stdio.h>#include <math.h>#include <unistd.h>#include <perf/perf_counter.h>#include <systemlib/err.h>#include <nuttx/arch.h>#include <px4_platform_common/px4_work_queue/ScheduledWorkItem.hpp>#include <nuttx/clock.h>#include <drivers/drv_hrt.h>#include <board_config.h>#include <drivers/device/spi.h>#include <drivers/drv_accel.h>#include <drivers/device/ringbuffer.h>Go to the source code of this file.
Classes | |
| class | BMA180 |
Namespaces | |
| bma180 | |
| Local functions in support of the shell command. | |
Macros | |
| #define | ACCEL_DEVICE_PATH "/dev/bma180" |
| #define | DIR_READ (1<<7) |
| #define | DIR_WRITE (0<<7) |
| #define | ADDR_CHIP_ID 0x00 |
| #define | CHIP_ID 0x03 |
| #define | ADDR_ACC_X_LSB 0x02 |
| #define | ADDR_ACC_Y_LSB 0x04 |
| #define | ADDR_ACC_Z_LSB 0x06 |
| #define | ADDR_TEMPERATURE 0x08 |
| #define | ADDR_CTRL_REG0 0x0D |
| #define | REG0_WRITE_ENABLE 0x10 |
| #define | ADDR_RESET 0x10 |
| #define | SOFT_RESET 0xB6 |
| #define | ADDR_BW_TCS 0x20 |
| #define | BW_TCS_BW_MASK (0xf<<4) |
| #define | BW_TCS_BW_10HZ (0<<4) |
| #define | BW_TCS_BW_20HZ (1<<4) |
| #define | BW_TCS_BW_40HZ (2<<4) |
| #define | BW_TCS_BW_75HZ (3<<4) |
| #define | BW_TCS_BW_150HZ (4<<4) |
| #define | BW_TCS_BW_300HZ (5<<4) |
| #define | BW_TCS_BW_600HZ (6<<4) |
| #define | BW_TCS_BW_1200HZ (7<<4) |
| #define | ADDR_HIGH_DUR 0x27 |
| #define | HIGH_DUR_DIS_I2C (1<<0) |
| #define | ADDR_TCO_Z 0x30 |
| #define | TCO_Z_MODE_MASK 0x3 |
| #define | ADDR_GAIN_Y 0x33 |
| #define | GAIN_Y_SHADOW_DIS (1<<0) |
| #define | ADDR_OFFSET_LSB1 0x35 |
| #define | OFFSET_LSB1_RANGE_MASK (7<<1) |
| #define | OFFSET_LSB1_RANGE_1G (0<<1) |
| #define | OFFSET_LSB1_RANGE_2G (2<<1) |
| #define | OFFSET_LSB1_RANGE_3G (3<<1) |
| #define | OFFSET_LSB1_RANGE_4G (4<<1) |
| #define | OFFSET_LSB1_RANGE_8G (5<<1) |
| #define | OFFSET_LSB1_RANGE_16G (6<<1) |
| #define | ADDR_OFFSET_T 0x37 |
| #define | OFFSET_T_READOUT_12BIT (1<<0) |
Functions | |
| __EXPORT int | bma180_main (int argc, char *argv[]) |
| void | bma180::start () |
| Start the driver. More... | |
| void | bma180::test () |
| Perform some basic functional tests on the driver; make sure we can collect data from the sensor in polled and automatic modes. More... | |
| void | bma180::reset () |
| Reset the driver. More... | |
| void | bma180::info () |
| Print a little info about the driver. More... | |
Variables | |
| BMA180 * | bma180::g_dev |
Driver for the Bosch BMA 180 MEMS accelerometer connected via SPI.
Definition in file bma180.cpp.
| #define ACCEL_DEVICE_PATH "/dev/bma180" |
Definition at line 71 of file bma180.cpp.
Referenced by BMA180::init(), bma180::reset(), bma180::start(), and bma180::test().
| #define ADDR_ACC_X_LSB 0x02 |
Definition at line 80 of file bma180.cpp.
Referenced by BMA180::measure().
| #define ADDR_ACC_Y_LSB 0x04 |
Definition at line 81 of file bma180.cpp.
| #define ADDR_ACC_Z_LSB 0x06 |
Definition at line 82 of file bma180.cpp.
| #define ADDR_BW_TCS 0x20 |
Definition at line 91 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define ADDR_CHIP_ID 0x00 |
Definition at line 77 of file bma180.cpp.
Referenced by BMA180::init(), and BMA180::probe().
| #define ADDR_CTRL_REG0 0x0D |
Definition at line 85 of file bma180.cpp.
Referenced by BMA180::init(), BMA180::set_lowpass(), and BMA180::set_range().
| #define ADDR_GAIN_Y 0x33 |
Definition at line 108 of file bma180.cpp.
Referenced by BMA180::init().
| #define ADDR_HIGH_DUR 0x27 |
Definition at line 102 of file bma180.cpp.
Referenced by BMA180::init().
| #define ADDR_OFFSET_LSB1 0x35 |
Definition at line 111 of file bma180.cpp.
Referenced by BMA180::set_range().
| #define ADDR_OFFSET_T 0x37 |
Definition at line 120 of file bma180.cpp.
Referenced by BMA180::init().
| #define ADDR_RESET 0x10 |
Definition at line 88 of file bma180.cpp.
Referenced by BMA180::init().
| #define ADDR_TCO_Z 0x30 |
Definition at line 105 of file bma180.cpp.
Referenced by BMA180::init().
| #define ADDR_TEMPERATURE 0x08 |
Definition at line 83 of file bma180.cpp.
| #define BW_TCS_BW_10HZ (0<<4) |
Definition at line 93 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_1200HZ (7<<4) |
Definition at line 100 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_150HZ (4<<4) |
Definition at line 97 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_20HZ (1<<4) |
Definition at line 94 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_300HZ (5<<4) |
Definition at line 98 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_40HZ (2<<4) |
Definition at line 95 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_600HZ (6<<4) |
Definition at line 99 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_75HZ (3<<4) |
Definition at line 96 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define BW_TCS_BW_MASK (0xf<<4) |
Definition at line 92 of file bma180.cpp.
Referenced by BMA180::set_lowpass().
| #define CHIP_ID 0x03 |
Definition at line 78 of file bma180.cpp.
Referenced by BMA180::init(), and BMA180::probe().
| #define DIR_READ (1<<7) |
Definition at line 74 of file bma180.cpp.
Referenced by BMA180::read_reg().
| #define DIR_WRITE (0<<7) |
Definition at line 75 of file bma180.cpp.
Referenced by BMA180::write_reg().
| #define GAIN_Y_SHADOW_DIS (1<<0) |
Definition at line 109 of file bma180.cpp.
Referenced by BMA180::init().
| #define HIGH_DUR_DIS_I2C (1<<0) |
Definition at line 103 of file bma180.cpp.
Referenced by BMA180::init().
| #define OFFSET_LSB1_RANGE_16G (6<<1) |
Definition at line 118 of file bma180.cpp.
Referenced by BMA180::set_range().
| #define OFFSET_LSB1_RANGE_1G (0<<1) |
Definition at line 113 of file bma180.cpp.
| #define OFFSET_LSB1_RANGE_2G (2<<1) |
Definition at line 114 of file bma180.cpp.
Referenced by BMA180::set_range().
| #define OFFSET_LSB1_RANGE_3G (3<<1) |
Definition at line 115 of file bma180.cpp.
Referenced by BMA180::set_range().
| #define OFFSET_LSB1_RANGE_4G (4<<1) |
Definition at line 116 of file bma180.cpp.
Referenced by BMA180::set_range().
| #define OFFSET_LSB1_RANGE_8G (5<<1) |
Definition at line 117 of file bma180.cpp.
Referenced by BMA180::set_range().
| #define OFFSET_LSB1_RANGE_MASK (7<<1) |
Definition at line 112 of file bma180.cpp.
Referenced by BMA180::set_range().
| #define OFFSET_T_READOUT_12BIT (1<<0) |
Definition at line 121 of file bma180.cpp.
Referenced by BMA180::init().
| #define REG0_WRITE_ENABLE 0x10 |
Definition at line 86 of file bma180.cpp.
Referenced by BMA180::init(), BMA180::set_lowpass(), and BMA180::set_range().
| #define SOFT_RESET 0xB6 |
Definition at line 89 of file bma180.cpp.
Referenced by BMA180::init().
| #define TCO_Z_MODE_MASK 0x3 |
Definition at line 106 of file bma180.cpp.
Referenced by BMA180::init().
| int bma180_main | ( | int | argc, |
| char * | argv[] | ||
| ) |
Definition at line 821 of file bma180.cpp.
References errx, bma180::info(), bma180::reset(), bma180::start(), and bma180::test().