Hi, I know that there are many topics on this arguments, I have read them all but i can't find an answer so I hope someone can help me.
I am trying to read measurements from magnetometer BMM150 connected as secondary I2C device to BMI160; in particular those sensors are included in the Texas Instruments BOOSTXL-SENSORS expansion and i'm using the Texas Instruments C2000 TMS320F28379D Delfino Launchpad. I am able to succesfully read values from accelerometer and gyroscope, but I can not figure out how to read the magnetometer and, since I am programming the board with Simulink which generates its own C code, I cannot use the libraries. What i would like to know are the logic passages (i.e. register to write and mode to set) in order to make the BMM150 work as secondary device. Here is what I have done after reading the datasheets and discussions on this forum:
- Set I2C address = 105 (0x69)
- Set normal modes for: Accelerometer (write 0x11 on register CMD 0x7E),gyro (0x15 on CMD 0x7E), magnetometer (0x19 on CMD 0x7E)
- Enable auxiliary I2C device (write 0x20 on IF_CONF 0x6B); set I2C address of auxiliary device (0x10 on MAG_IF[0] 0x4B); enter setup mode and reading with 8 byte bursts (0b10000011 on MAG_IF[1] 0x4C); set first read address for auxiliary device (0x42 on MAG_IF[2] 0x4D); trigger first measure (0x06 on MAG_CONF 0x44); enter data mode (0b00000011 on MAG_IF[1] 0x4C)
- Read magnetometer data registers through BMI160 data registers (from 0x04)
But what i get is always zero values. I think that the problem is the magnetometer which is not setting in normal mode, as I can understand by reading the status register 0x03 from which i get 010100 (i.e. normal mode for accell, gyro but suspend mode for magnetometer).
Hello, is there any data on how to connect BMM150 of BMI270 due to this problem? There is no data like above on Datasheet, so can you share it?
Thanks