Hi,
I called to ask about the new MinIMU-9 (pololu.com/catalog/product/1265) questions. I cannot make it to work.
I use the platform RF100 and SN171 proto board from Synapse company. See picture: https://docs.google.com/open?id=0B0s1PE6BqBpMT0tZeVFUTnE1Z0k This board is driven by 3v voltage, and GPIO 18 (the 5th pin from the bottom) and GPIO 17 (the 4th pin) are pins dedicated for I2c SCL and SDA lines respectively. I set the MinIMU board as this picture shows. https://docs.google.com/open?id=0B0s1PE6BqBpMMEdvUTNqSl8xVkk The power of MinUMU board is supplied by two extenal AA batteries (3V). I connect the IMU to RF100 as this picture shows. https://docs.google.com/open?id=0B0s1PE6BqBpMcUVQZHJKZHN4MlU . Then I did the following testing:
-
I set GPIO 17 and GPIO 18 as input pins (which means the IMU control the SCL and SDA), and measure the voltage reading by multimeter. At this time, both of them are around 3.2V. See pictures https://docs.google.com/open?id=0B0s1PE6BqBpMY0ljUlkyMFUyNEE and https://docs.google.com/open?id=0B0s1PE6BqBpMVVJmaTVnT3I0cEU
-
I set GPIO 17 as input pin (controled by IMU), GPIO 18 as output pin (controled by RF100), and set GPIO as high. The measurements for GPIO 17 and 18 are both around 3.2v. See pictures https://docs.google.com/open?id=0B0s1PE6BqBpMYmp3RVN3a2FFaVU and https://docs.google.com/open?id=0B0s1PE6BqBpMcVl5ajRaaGhZRnM
-
I set GPIO 17 as input pin (controled by IMU), GPIO 18 as output pin (controled by RF100), and set GPIO as low. The measurements for GPIO 18 is around 0v, while GPIO 17 is around 0.9v. See pictures https://docs.google.com/open?id=0B0s1PE6BqBpMY3JZUnYtbW96LWM and https://docs.google.com/open?id=0B0s1PE6BqBpMTmlWaXJ6bE9tRWs
The SDA and SCL lines should be independent, but in my experiment, they are dependent (when SCL is high, the reading for SDA is also high; while SCL is low, the reading for SDA is also low). Also please notice that SCL and SDA are not
shortage, since when they are both low, their readings are different: one is 0v, while the other is 0.9v.
Since when RF100 sends the address to IMU, RF100 needs to read the ACK from the IMU. And the ACK is only correct when the reading of SDA is 0 while SCL is 1. But through the above experiment, you can see that we can never get the correct
ACK since when SCL is 1, SDA is always 1 in this case. So I think there may be a hardware problem. SDA and SCL should not be dependent, right?