Hi, we are using a MPU-9250 and we are interested in reading out magnetometer measurements. From the documentation I've understood that there are basically two ways:
1. Access the magnetometer directly through I2C/SPI
2. Configure the IMU's I2C master to read from the magnetometer and then read everything (accel+gyro+mag) at once
The first solution sounds straight forward. I've read the documentation of the AK8963 and I would like to operate it in continuous mode (100Hz). Unfortunately, the DRDY pin that shows when data is ready doesn't seem to be exposed to the external pins. It seems that I have to read it from a register. Does that mean I have to continuously read that register over I2C? This sounds like a hassle to me. As I understood, in order to read out all 9-DoF this would mean that I have to first readout Accel+Gyro measurements and then activate the I2C bypasss, read the register with the DRDY bit, and eventually read out magnetometer measurements. While reading 1Khz Accel+Gyro samples and 100Hz Mag samples, switching between I2C bypass mode and polling data ready registers, I'm not even sure if all of this communication fits within the 400Khz bandwidth of the I2C bus... Or am I missing something?
The second solution sound much better but I couldn't find the according documentation how to configure the I2C master to read from the magnetometer. Also, in this scenario, I'm not sure what the Master would do exactly. Does it also monitor the DRDY pin or poll the register? How can the magnetometer be configured in this way? Does the host have to do that?
In general the documentation doesn't seem to be very complete. Hope somebody can provide me with some more information on these topics.
Thanks,
Marc