Self test boot program for testing icarus sensors

Dependencies:   BLE_API mbed nRF51822

Fork of BLE_UARTConsole by Bluetooth Low Energy

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?

UserRevisionLine numberNew 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