Once I set the imu3000 as the i2c master controller, I cannot reach the accelerometers directly any more.
Here are the steps that cause the problem:
1. I set the imu3000 pass trough mode and initialize the accelerometers directly.
2. Then, set the AUX_IF_EN register (and also the AUX_IF_RST) to make the imu3000 as the i2c master for accelerometers.
3. Finally, I start reading both accelerometer and gyroscope data using imu3000 data registers.
(so far everything goes as it should be without any problem. I can read both accelerometer and gyroscope data)
4. After this, if I want to access the directly accelerometer again by clearing AUX_IF_EN (and setting AUX_IF_RST), i2c becomes unstable. Approximately half of times, the i2c bus itself stuck somewhere and I cannot comunicate with any prepherial at all.
Does anyone else also observe this problem? Or is it just my unit (either ucontroller or the imu3000) that shows this misbehaviour? Can anyone propose any solution for this problem?
My best guess is that if the accelerometers pull the data line to 0 during the mode switching, the data line stays 0 causing the microcontroler to think that the peripheral is busy. But I am not sure if this indeed the case or not.
- Log in to post comments
phpbb Topic ID
13899