Hi Tomas,
Thank you for the comprehensive reply. The detailed remarks and the code sample were especially useful.
My code was using the hybrid mode, but zero-valued data for the time-aligned accelerometer values were always returned with a burst read.
Looking through the device configuration steps in your initialization functions for the six-axis sensor, I note the following register-write statement, which I did not have in my setup. Empirically, this seems to affect whether I get zero or nonzero valued data for the time-aligned accelerometer measurements.
| I2C_WriteRegister(FXOS8700CQ_I2C_ADDRESS, CTRL_REG2, 0x02); | // High Resolution mode |
Is it a proper conclusion that having the accelerometer OSR mode in normal is not compatible with the specification of 8x oversampling for the magnetometer, and thus I get zero valued data for the time-aligned accelerometer measurements?
As an aside, Table 15 of the data sheet (FXOS8700CQ.pdf) has a (5) superscript for the CMP_X_MSB ... CMP_Z_LSB registers. This indicates that "Modification of the register's contents can only occur when device is in Standby mode ...". Is this really the case for these registers?
Many thanks,
Jeffrey