diff options
author | Ben Fennema <fennema@google.com> | 2017-02-23 10:35:16 -0800 |
---|---|---|
committer | Ben Fennema <fennema@google.com> | 2017-02-23 14:27:48 -0800 |
commit | b0ae54e9a706aa28060b1fdbb8ad19e37c4f4c34 (patch) | |
tree | 2fc4baa2c369fe19f4f9c58d81246e206e699deb /firmware/os | |
parent | 75d16e01f1236b98ca752f02d78b39f4d4db47be (diff) | |
download | contexthub-b0ae54e9a706aa28060b1fdbb8ad19e37c4f4c34.tar.gz |
bmi160: add support for raw mag samples
Bug: 33693823
Test: run mag and verify output data looks correct
Change-Id: I756adebd5258b143edb36b7fea320b0a25786339
Signed-off-by: Ben Fennema <fennema@google.com>
Diffstat (limited to 'firmware/os')
-rw-r--r-- | firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.c | 2 | ||||
-rw-r--r-- | firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.h | 2 | ||||
-rw-r--r-- | firmware/os/drivers/bosch_bmi160/bosch_bmi160.c | 5 | ||||
-rw-r--r-- | firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.c | 2 | ||||
-rw-r--r-- | firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.h | 2 | ||||
-rw-r--r-- | firmware/os/inc/sensType.h | 2 |
6 files changed, 9 insertions, 6 deletions
diff --git a/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.c b/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.c index 371f997b..286ff219 100644 --- a/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.c +++ b/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.c @@ -17,8 +17,6 @@ #include <string.h> #include "akm_ak09915_slave.h" -#define kScale_mag 0.15f - void parseMagData(struct MagTask *magTask, uint8_t *buf, float *x, float *y, float *z) { int32_t raw_x = (*(int16_t *)&buf[0]); int32_t raw_y = (*(int16_t *)&buf[2]); diff --git a/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.h b/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.h index d7bb12e9..af9d5209 100644 --- a/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.h +++ b/firmware/os/drivers/bosch_bmi160/akm_ak09915_slave.h @@ -25,6 +25,8 @@ extern "C" { #endif +#define kScale_mag 0.15f + #define AKM_AK09915_DEVICE_ID 0x1048 #define AKM_AK09915_REG_WIA1 0x00 #define AKM_AK09915_REG_DATA 0x11 diff --git a/firmware/os/drivers/bosch_bmi160/bosch_bmi160.c b/firmware/os/drivers/bosch_bmi160/bosch_bmi160.c index c5477aa1..29e838c9 100644 --- a/firmware/os/drivers/bosch_bmi160/bosch_bmi160.c +++ b/firmware/os/drivers/bosch_bmi160/bosch_bmi160.c @@ -675,8 +675,9 @@ static const struct SensorInfo mSensorInfo[NUM_OF_SENSOR] = { DEC_INFO_RATE_BIAS("Gyroscope", GyrRates, SENS_TYPE_GYRO, NUM_AXIS_THREE, NANOHUB_INT_NONWAKEUP, 20, SENS_TYPE_GYRO_BIAS) }, #ifdef MAG_SLAVE_PRESENT - { DEC_INFO_RATE_BIAS("Magnetometer", MagRates, SENS_TYPE_MAG, NUM_AXIS_THREE, - NANOHUB_INT_NONWAKEUP, 600, SENS_TYPE_MAG_BIAS) }, + { DEC_INFO_RATE_RAW_BIAS("Magnetometer", MagRates, SENS_TYPE_MAG, NUM_AXIS_THREE, + NANOHUB_INT_NONWAKEUP, 600, SENS_TYPE_MAG_RAW, 1.0/kScale_mag, + SENS_TYPE_MAG_BIAS) }, #endif { DEC_INFO("Step Detector", SENS_TYPE_STEP_DETECT, NUM_AXIS_EMBEDDED, NANOHUB_INT_NONWAKEUP, 100) }, diff --git a/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.c b/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.c index 4a223fbd..3f21dc71 100644 --- a/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.c +++ b/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.c @@ -17,8 +17,6 @@ #include <string.h> #include "bosch_bmm150_slave.h" -#define kScale_mag 0.0625f // 1.0f / 16.0f; - void bmm150SaveDigData(struct MagTask *magTask, uint8_t *data, size_t offset) { // magnetometer temperature calibration data is read in 3 bursts of 8 byte diff --git a/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.h b/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.h index 59e53fba..abc82a98 100644 --- a/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.h +++ b/firmware/os/drivers/bosch_bmi160/bosch_bmm150_slave.h @@ -25,6 +25,8 @@ extern "C" { #endif +#define kScale_mag 0.0625f // 1.0f / 16.0f; + #define BMM150_REG_DATA 0x42 #define BMM150_REG_CTRL_1 0x4b #define BMM150_REG_CTRL_2 0x4c diff --git a/firmware/os/inc/sensType.h b/firmware/os/inc/sensType.h index b115467a..4a62b828 100644 --- a/firmware/os/inc/sensType.h +++ b/firmware/os/inc/sensType.h @@ -80,6 +80,8 @@ extern "C" { #define SENS_TYPE_GYRO_TEMP 57 #define SENS_TYPE_MAG_TEMP 58 +#define SENS_TYPE_MAG_RAW 59 + #define SENS_TYPE_FIRST_USER 64 // event type necessarily begins with UserSensorEventHdr #define SENS_TYPE_LAST_USER 128 |