Self test boot program for testing icarus sensors
Dependencies: BLE_API mbed nRF51822
Fork of BLE_UARTConsole by
ADXL362Sensor.h@9:ed3636e1873f, 2015-01-27 (annotated)
- Committer:
- smigielski
- Date:
- Tue Jan 27 12:30:51 2015 +0000
- Revision:
- 9:ed3636e1873f
- Parent:
- 8:e9ae7a01d866
- Child:
- 10:3a24c970db40
ADXL362 is compiling
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
smigielski | 8:e9ae7a01d866 | 1 | #ifndef MBED_ADXL362_SENSOR_H |
smigielski | 8:e9ae7a01d866 | 2 | #define MBED_ADXL362_SENSOR_H |
smigielski | 8:e9ae7a01d866 | 3 | |
smigielski | 8:e9ae7a01d866 | 4 | #include "mbed.h" |
smigielski | 8:e9ae7a01d866 | 5 | |
smigielski | 8:e9ae7a01d866 | 6 | #include "BaseSensor.h" |
smigielski | 8:e9ae7a01d866 | 7 | |
smigielski | 8:e9ae7a01d866 | 8 | // ACC Registers |
smigielski | 8:e9ae7a01d866 | 9 | #define DEVID_AD 0x00 |
smigielski | 8:e9ae7a01d866 | 10 | #define DEVID_MST 0x01 |
smigielski | 8:e9ae7a01d866 | 11 | #define PART_ID 0x02 |
smigielski | 8:e9ae7a01d866 | 12 | #define REV_ID 0x03 |
smigielski | 8:e9ae7a01d866 | 13 | |
smigielski | 8:e9ae7a01d866 | 14 | //Three following addresses |
smigielski | 8:e9ae7a01d866 | 15 | #define DATA 0x08 |
smigielski | 8:e9ae7a01d866 | 16 | |
smigielski | 8:e9ae7a01d866 | 17 | #define STATUS 0x0b |
smigielski | 8:e9ae7a01d866 | 18 | #define FIFO_ENTRIES_L 0x0c |
smigielski | 8:e9ae7a01d866 | 19 | #define FIFO_ENTRIES_H 0x0d |
smigielski | 8:e9ae7a01d866 | 20 | |
smigielski | 8:e9ae7a01d866 | 21 | //Six following address as L & H |
smigielski | 8:e9ae7a01d866 | 22 | #define DATA_12 0x0E |
smigielski | 8:e9ae7a01d866 | 23 | |
smigielski | 8:e9ae7a01d866 | 24 | //Two following bytes |
smigielski | 8:e9ae7a01d866 | 25 | #define TEMP_12 0x14 |
smigielski | 8:e9ae7a01d866 | 26 | |
smigielski | 8:e9ae7a01d866 | 27 | |
smigielski | 8:e9ae7a01d866 | 28 | #define SOFT_RESET 0x1f |
smigielski | 8:e9ae7a01d866 | 29 | #define THRESH_ACT_11 0x20 |
smigielski | 8:e9ae7a01d866 | 30 | #define TIME_ACT 0x22 |
smigielski | 8:e9ae7a01d866 | 31 | #define THRESH_INACT_11 0x20 |
smigielski | 8:e9ae7a01d866 | 32 | #define TIME_INACT_16 0x22 |
smigielski | 8:e9ae7a01d866 | 33 | #define ACT_INACT_CTL 0x27 |
smigielski | 8:e9ae7a01d866 | 34 | #define FIFO_CONTROL 0x28 |
smigielski | 8:e9ae7a01d866 | 35 | #define FIFO_SAMPLES 0x29 |
smigielski | 8:e9ae7a01d866 | 36 | #define INTMAP1 0x2a |
smigielski | 8:e9ae7a01d866 | 37 | #define INTMAP2 0x2b |
smigielski | 8:e9ae7a01d866 | 38 | #define FILTER_CTL 0x2c |
smigielski | 8:e9ae7a01d866 | 39 | #define POWER_CTL 0x2d |
smigielski | 8:e9ae7a01d866 | 40 | #define SELF_TEST 0x2e |
smigielski | 8:e9ae7a01d866 | 41 | |
smigielski | 8:e9ae7a01d866 | 42 | /**The ADXL362 command set is |
smigielski | 8:e9ae7a01d866 | 43 | • 0x0A: write register |
smigielski | 8:e9ae7a01d866 | 44 | • 0x0B: read register |
smigielski | 8:e9ae7a01d866 | 45 | • 0x0D: read FIFO |
smigielski | 8:e9ae7a01d866 | 46 | */ |
smigielski | 8:e9ae7a01d866 | 47 | #define WRITE_REGISTER 0x0a |
smigielski | 8:e9ae7a01d866 | 48 | #define READ_REGISTER 0x0b |
smigielski | 8:e9ae7a01d866 | 49 | #define READ_FIFO 0x0d |
smigielski | 9:ed3636e1873f | 50 | |
smigielski | 9:ed3636e1873f | 51 | #define DOWN 0 |
smigielski | 9:ed3636e1873f | 52 | #define UP 1 |
smigielski | 9:ed3636e1873f | 53 | |
smigielski | 9:ed3636e1873f | 54 | #define SELF_TEST_SCALE_FACTOR 2.4 |
smigielski | 9:ed3636e1873f | 55 | #define ADXL345_MG2G_MULTIPLIER (0.002) |
smigielski | 9:ed3636e1873f | 56 | |
smigielski | 8:e9ae7a01d866 | 57 | |
smigielski | 8:e9ae7a01d866 | 58 | class ADXL362Sensor : public BaseSensor { |
smigielski | 8:e9ae7a01d866 | 59 | public: |
smigielski | 8:e9ae7a01d866 | 60 | //The recommended SPI clock speeds are 1 MHz to 5 MHz, with 12 pF maximum loading. |
smigielski | 8:e9ae7a01d866 | 61 | ADXL362Sensor(SPI*,DigitalOut*); |
smigielski | 8:e9ae7a01d866 | 62 | virtual char* getSimpleName(); |
smigielski | 8:e9ae7a01d866 | 63 | virtual void getSensorDetails(sensor_t*); |
smigielski | 8:e9ae7a01d866 | 64 | //verify basic integrity of underlining hardware |
smigielski | 9:ed3636e1873f | 65 | virtual uint32_t verifyIntegrity(uint32_t*); |
smigielski | 8:e9ae7a01d866 | 66 | private: |
smigielski | 8:e9ae7a01d866 | 67 | SPI* spi; |
smigielski | 8:e9ae7a01d866 | 68 | DigitalOut* cs; |
smigielski | 9:ed3636e1873f | 69 | uint32_t selfTest(uint32_t* errorResult); |
smigielski | 9:ed3636e1873f | 70 | void refreshAcceleration12(int16_t* x, int16_t* y, int16_t* z); |
smigielski | 9:ed3636e1873f | 71 | uint32_t readRegister32(uint8_t reg); |
smigielski | 9:ed3636e1873f | 72 | uint8_t readRegister( uint8_t reg); |
smigielski | 9:ed3636e1873f | 73 | void writeRegister( uint8_t reg, uint8_t cmd ); |
smigielski | 9:ed3636e1873f | 74 | |
smigielski | 8:e9ae7a01d866 | 75 | }; |
smigielski | 8:e9ae7a01d866 | 76 | |
smigielski | 8:e9ae7a01d866 | 77 | #endif |