Self test boot program for testing icarus sensors

Dependencies:   BLE_API mbed nRF51822

Fork of BLE_UARTConsole by Bluetooth Low Energy

Committer:
smigielski
Date:
Thu Jan 29 12:24:01 2015 +0000
Revision:
11:70359785c2a7
Parent:
10:3a24c970db40
Child:
13:ef0ce8fa871f
Changing pin numbers

Who changed what in which revision?

UserRevisionLine numberNew contents of line
smigielski 10:3a24c970db40 1 #include "MPU9250Sensor.h"
smigielski 10:3a24c970db40 2 #include "mbed.h"
smigielski 10:3a24c970db40 3
smigielski 10:3a24c970db40 4 #ifndef LOG
smigielski 10:3a24c970db40 5 #define LOG(...) do printf(__VA_ARGS__); while (0)
smigielski 10:3a24c970db40 6 #endif
smigielski 10:3a24c970db40 7
smigielski 10:3a24c970db40 8 MPU9250Sensor::MPU9250Sensor(SPI* spi_,DigitalOut* cs_) : BaseSensor() {
smigielski 10:3a24c970db40 9 this->spi=spi_;
smigielski 10:3a24c970db40 10 this->cs=cs_;
smigielski 10:3a24c970db40 11 *cs = UP;
smigielski 10:3a24c970db40 12 //To prevent switching into I2C mode when using SPI, the I2C interface should be disabled by setting the I2C_IF_DIS
smigielski 10:3a24c970db40 13 //configuration bit. Setting this bit should be performed immediately after waiting for the time specified by the
smigielski 10:3a24c970db40 14 //“Start-Up Time for Register Read/Write” in Section 6.3.
smigielski 10:3a24c970db40 15
smigielski 10:3a24c970db40 16
smigielski 10:3a24c970db40 17 }
smigielski 10:3a24c970db40 18
smigielski 10:3a24c970db40 19 char* MPU9250Sensor::getSimpleName() {
smigielski 10:3a24c970db40 20 return "MPU9250";
smigielski 10:3a24c970db40 21 }
smigielski 10:3a24c970db40 22
smigielski 10:3a24c970db40 23
smigielski 10:3a24c970db40 24 uint32_t MPU9250Sensor::verifyIntegrity(uint32_t* errorResult) {
smigielski 10:3a24c970db40 25 LOG("Start verfication of MPU9250 Sensor");
smigielski 10:3a24c970db40 26 uint32_t errors = 0;
smigielski 11:70359785c2a7 27 //who am I register value is 0x71
smigielski 11:70359785c2a7 28 // uint8_t sensorId = readRegister(MPU9250_WHOAMI);
smigielski 10:3a24c970db40 29
smigielski 11:70359785c2a7 30 // if (sensorId !=0x71){
smigielski 10:3a24c970db40 31 // errorResult[errors++] = ERROR_WRONG_DEVICE_ID;
smigielski 10:3a24c970db40 32 // LOG("Wrong sensorId: %X",sensorId);
smigielski 10:3a24c970db40 33 // }
smigielski 10:3a24c970db40 34
smigielski 10:3a24c970db40 35 //check status registry
smigielski 10:3a24c970db40 36 // uint8_t status = readRegister(STATUS);
smigielski 10:3a24c970db40 37
smigielski 10:3a24c970db40 38 //indicate that SEU error was detetcted
smigielski 10:3a24c970db40 39 // if (status & (1 << 7)){
smigielski 10:3a24c970db40 40 // errorResult[errors++] = ERROR_SEU_ERROR_DETECT;
smigielski 10:3a24c970db40 41 // LOG("SEU error detected: %X",status);
smigielski 10:3a24c970db40 42 // }
smigielski 10:3a24c970db40 43 //check that chip is in awaken state
smigielski 10:3a24c970db40 44 //if (!(status & (1 << 6))){
smigielski 10:3a24c970db40 45 // errorResult[errors++] = ERROR_DEVICE_SLEEPING;
smigielski 10:3a24c970db40 46 // LOG("Chip not awaken: %X",status);
smigielski 10:3a24c970db40 47 // }
smigielski 10:3a24c970db40 48
smigielski 10:3a24c970db40 49 //perform self test
smigielski 10:3a24c970db40 50 // errors+=selfTest(&errorResult[errors]);
smigielski 10:3a24c970db40 51
smigielski 10:3a24c970db40 52 return errors;
smigielski 10:3a24c970db40 53 }
smigielski 10:3a24c970db40 54
smigielski 10:3a24c970db40 55 void MPU9250Sensor::getSensorDetails(sensor_t* sensorDetails) {
smigielski 10:3a24c970db40 56
smigielski 10:3a24c970db40 57 }
smigielski 11:70359785c2a7 58
smigielski 11:70359785c2a7 59 //uint8_t MPU9250Sensor::readRegister( uint8_t reg){
smigielski 11:70359785c2a7 60 // cs->write(DOWN);
smigielski 11:70359785c2a7 61 // spi->write(reg| MPU9250_READ_FLAG);
smigielski 11:70359785c2a7 62 // uint8_t val = spi->write(0x00);
smigielski 11:70359785c2a7 63 // cs->write(UP);
smigielski 11:70359785c2a7 64 // return (val);
smigielski 11:70359785c2a7 65 //}
smigielski 11:70359785c2a7 66 //
smigielski 11:70359785c2a7 67 //void MPU9250Sensor::writeRegister( uint8_t reg, uint8_t cmd ){
smigielski 11:70359785c2a7 68 // cs->write(DOWN);
smigielski 11:70359785c2a7 69 // spi->write(reg);
smigielski 11:70359785c2a7 70 // spi->write(cmd);
smigielski 11:70359785c2a7 71 // cs->write(UP);
smigielski 11:70359785c2a7 72 //}