3
\$\begingroup\$

I'm developing a gyro+accelerometer data logging device using the Invensense ITG3200 gyro device and I'm having a real struggle getting it to talk to me. I have tried 5 of them and none of them are responding to I2C commands. Has anyone had experience using these and had to overcome hurdles to make them work?

I have two other sensors on the same I2C bus and they are behaving as expected, so my I2C comms is working fine. The sole bus master is a PIC microcontroller. I have wired the chip up exactly as shown in the specs, and use a common 3.3V supply for Vdd and Vlogic. Pullup resistors are 4k7, but have tried reducing them to 1k5 with no effect.

The gyro chip is a bit odd electrically too - it is behaving as if it has a pullup on the SDA line to a voltage at 2/3 the supply voltage, but that ceases to supply current when the SDA voltage drops below about 0.6V. That behaviour kind of makes sense but is not documented in the spec sheet.

I am wondering if I have managed to damage all 5 chips in exactly the same way, but that seems unlikely. One of them I purchased on a breakout board and it behaves exactly the same as the others: 2 of those are reflow soldered onto a PCB, the other 2 I glued upside down and hand soldered fine wires to the pads (getting desperate there!).

It would be good to hear from anyone who has used this chip successfully - seems like a great device but I am getting a tad frustrated ;)

I did send a query to Invensense but haven't heard anything back from them.

Thanks for any clues.

\$\endgroup\$
  • \$\begingroup\$ I've done some further testing and found that the gyro mounted on the breakout board will reliably acknowledge an I2C command when the supply voltage is reduced right down to 1.5V, which is below the minimum specified operating voltage. Above about 1.7V the gyro only acknowledges intermittently. Above about 2.1V it never responds. Is that weird or what? \$\endgroup\$ – John Gallant Nov 10 '10 at 12:06
  • \$\begingroup\$ Another update: it seems it is only the Vlogic voltage that is causing the problem, and only voltages below about 1.8V works. I've tested Vdd up to 3.3V and that doesn't seem to matter. \$\endgroup\$ – John Gallant Nov 16 '10 at 10:15
2
\$\begingroup\$

I have one of these: http://www.sparkfun.com/commerce/product_info.php?products_id=9801

... and I've talked to it using one of these: http://dangerousprototypes.com/bus-pirate-manual/

... with these commands, ignore blank lines and lines starting with #, those aren't used by the BP, refer to the BP manual for info about the notation, but rest assured that all the I2C commands were found by reading the datasheet:

I2C mode

M 4 2 1

pull ups on

p 2

Power on

W

Read address:

[ 0b11010010 0x00 [ 0b11010011 r ]

Configure for high bandwidth:

[ 0b11010010 0x15 15 24 ]

Configure to use Z gyro as oscilator:

[ 0b11010010 0x3e 3 ]

Read data:

[ 0b11010010 0x1b [ 0b11010011 rr rr rr rr ]

\$\endgroup\$
  • \$\begingroup\$ OK, glad its worked for you! I don't even get an acknowledge from the address byte, so its hard to get any further! \$\endgroup\$ – John Gallant Nov 10 '10 at 7:45
  • \$\begingroup\$ That Bus Pirate looks pretty cool though - might have to get one. \$\endgroup\$ – John Gallant Nov 10 '10 at 7:48
  • \$\begingroup\$ The read address command looks a bit funny to me, with the two start-conditions, but if you did the same then I guess I'm out of ideas. The BP is quite handy for these kinds of things. I didn't do anything funny with the power at all and I've never had it go strange like your seems to be. \$\endgroup\$ – dren.dk Nov 10 '10 at 12:02
2
\$\begingroup\$

So for the sake of closure, my own answer is:

Vlogic needs to be 1.8V or less, in spite of what the specifications say.

Maybe its just me, these things are supposed to work with any Vlogic between 1.7V and Vdd.

\$\endgroup\$
1
\$\begingroup\$

Without seeing something more specific about your design, I'm only guessing here but looking at the datasheet for the Gyro I would suspect that your problem may have something to do with the power on sequence required (Section 4.4). With a common supply it may be possible that due to local capacitance or signal routing that Vlogic is coming up too soon, or it may be that you haven't met the specified voltage ramp required to startup the device cleanly.

\$\endgroup\$
  • \$\begingroup\$ Thanks for that - yes the power-up sequence does seem to be reasonably demanding but with both supplies tied together it should be within spec. I've tried both a very quick turn-on using an MCU-controlled FET, and a slower rise direct from a voltage regulator; also tried controlling Vlogic separately. Have you used the ITG3200? \$\endgroup\$ – John Gallant Nov 10 '10 at 7:42
1
\$\begingroup\$

This is my first time that I am writing something to forum (in 15 year using the internet). I have just been reading/consuming until now. Even if this thread seems to be old I will use it for my debut. So: I had the same SDA problem with the ITG-3200 in the same configuration. The power-up sequence seems to be really important, but the datasheet says implicitly:just connect VDD+Vlogic. So I did and it does not work. I traced this using the eval-board and found one suspicious resistor R1 in the schematic. 10k before Vlogic? Somebody seems not to trust it's own chip. Tests showed me why. If you connect VDD+Vlogic @ 3.3V SDA sticks to 2/3 VDD. Adding the 10k resistor solved this problem. There are several explanation possible, but I do not have the time to trace it any further.

I hope that this helps some more people Rene

\$\endgroup\$
  • \$\begingroup\$ Ah thank you for that response! This is the only response from anyone anywhere that matched my experience! \$\endgroup\$ – John Gallant Nov 28 '11 at 7:33
  • \$\begingroup\$ I didn't try a resistor in line with Vlogic, having never looke at the evaluation board. I ended up designing my product with a separate 1.8V regulator for the I2C bus. So what is the voltage at Vlogic with the 10k resistor in series? \$\endgroup\$ – John Gallant Nov 28 '11 at 7:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.