Go Down

Topic: ITG3205 (ITG3200?) register locations (Read 2869 times) previous topic - next topic

iancl

I have been trying to use an ITG-3205 from a wii motion plus unit from deal extreme. I was extremely happy when I read the WHO_AM_I register which returned the expected value (68). I thought "cool now I just change the register and I can read whatever I want" but it hasn't been that simple.

Firstly, where is there documentation on register locations? Presumably this is where I'll also find documentation on what registers need what values for different settings? I have the ITG3200 datasheet from the Invensense website, but it doesn't have a register map or anything.

So far I've been looking at other peoples' codes, and assumed that the following would work:
#define WHO      0x00
#define   SMPL   0x15
#define DLPF   0x16
#define INT_C   0x17
#define INT_S   0x1A
#define   TMP_H   0x1B
#define   TMP_L   0x1C
#define   GX_H   0x1D
#define   GX_L   0x1E
#define   GY_H   0x1F
#define   GY_L   0x20
#define GZ_H   0x21
#define GZ_L   0x22
#define PWR_M   0x3E

However when I got a bunch of zeroes from places where there shouldn't be, I ran code which sequentially read from 0x00 to 0x3F, and found that the only registers that return values are:

00,20: 68  -  WHO_AM_I, as expected
03,23: 1F
0D,2D: 01
0E,2E: varying values, but always has 0 as the second hex value (60, 90, B0 etc.)
0F,2F: seemingly random even when stationary
10,30: seemingly random even when stationary
11,31: seemingly random even when stationary
1C:     increments each time I read
3E:     starts at whatever value I set it to (assume it is PWR, so I wrote 0x80 to reset, as I saw in other code but I haven't seen documentation on this), but usually changes value within a short time.

So it seems I have some different registers, but I'm not getting many expected values. I'm hoping I just need to initialise it properly, but can anyone shed light on what's going on?



iancl

Yeah I've had quite a bit of a google. Most people asking questions are asking what to do with data once they've got it, or they can't get data at all. I'm getting correct data in a couple of registers (I believe) but yeah I really need a datasheet. I just can't see how it would be so different to everyone else's work.

fredderyk

You need the datasheet v1.4 for ITG3200. You can get it from Sparkfun http://www.sparkfun.com/tutorials/265 or send me an mail.

Can somebody tell me something about the ITG3205? I need this gyro for my MultiWii copter.

iancl

Hi fredderyk,

I found the datasheet the day after I posted this stuff. All it did was confirm all the register locations other people had described. I'm back at uni now and haven't spent any more time trying to get the Gyro to work. I'm (almost) certain it's not faulty - it seems absurd that it would send valid data (WHOAMI) over serial, yet otherwise not work properly.

I'll have a look over the next few days. As far as I'm aware, the 3205 is just a newer version in the 3200 series - it should function in the same manner. However I've never seen anything from Invensense about this. Have you received yours yet?

Go Up