SparkFun Electronics will be closed in observance of memorial day on Monday, May 29th. We will resume normal business hours on Tuesday, May 30th. Any orders placed after 2pm Mountain Time on Friday, May 26th will process and ship out on Tuesday, May 30th.

Member #223821

Member Since: May 6, 2011

Country: United States

  • Hi all,
    I just want to confirm if there is a very small typo in the DataSheet. Table 7 (page 22) states that Register 0 has the ID from bit 6 to bit 1. (bit 0 is not used). Doesn’t the ID (which is 7 bit long) go from bit 6 to bit 0 (inclusive)????

  • If I am using a PIC24 at 5V, do I need a level shifter to communicate with the ITG-3200???

  • No, it is actually 0xD2 for writing and 0xD3 for reading. The address if the ITG is 1101001b but the eighth bit tells if you are writing (0) or reading (1) so it becomes:
    Writing: 1101001 0b = 0xD2
    Reading: 1101001 1b = 0xD3

  • Hi,
    I am having trouble connecting the gyro to a PIC24FJ256GA110. I have the following connections:
    VIO: 1.84V
    VDD: 3.3V
    SCL, SDA: Two pull-up ressistor to 3.3V
    CLK: to GND
    INT: Floating
    I am using the following code to run it:

    define GYRO_MASTER 0x9000

    define GYRO_BAUD_RATE 0x0027 // 100.00 kHz

    //Initialize ITG3200 for experimentation
    void gyro_Initialize(){
    //Configure IO pins
    GYRO_SCL_PORT = 0x0; // SCL3 is an input
    GYRO_TRIS_SCL_PORT= 0x1; // SCL3 is an input
    GYRO_SDA_PORT = 0x0; // SDA3 is an input
    GYRO_TRIS_SDA_PORT = 0x1; // SDA3 is an input
    int gyro_read(int command){
    int gyro_read;
    StartI2C3(); //SEND START
    MasterWriteI2C3( 0xD2 ); // sends address to the itg3200 if pin 9 is held high (b1101001) 69,
    //someone is ‘avin a larf. Bit 8 is the r/w bit (low) THEREFORE D2
    MasterWriteI2C3( 0x0 ); //access device ID register. Bit 8 is the r/w bit (low)
    RestartI2C3(); //SEND reSTART
    MasterWriteI2C3( 0xD3 ); //address device with r/w bit high as we want to read from the device THEREFORE D3
    gyro_read = MasterReadI2C3(); //READ THE ADDRESS INTO THE ITG3200ID VARIABLE
    StopI2C3(); // stop all I2C communication
    return gyro_read;
    In the oscope I see the signal SCD and SCL sending the right address but I done get the ACK (instead of 0 in the 9th clock I get a 1). Finally, the answer I get from the gyro are all 1’s (i.e. 255). Does anybody know what can be going on?
    Thanks a lot.

No public wish lists :(