Member #223821

Member Since: May 6, 2011

Country: United States

  • Product SEN-09801 | about 3 years ago

    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)????
    Thanks.

  • Product SEN-09801 | about 3 years ago

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

  • Product SEN-09801 | about 3 years ago

    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

  • Product SEN-09801 | about 3 years ago

    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
    OpenI2C3(GYRO_MASTER, GYRO_BAUD_RATE); //OPEN I2C3
    return;
    }
    int gyro_read(int command){
    int gyro_read;
    StartI2C3(); //SEND START
    IdleI2C3();
    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
    IdleI2C3();
    MasterWriteI2C3( 0x0 ); //access device ID register. Bit 8 is the r/w bit (low)
    RestartI2C3(); //SEND reSTART
    IdleI2C3();
    MasterWriteI2C3( 0xD3 ); //address device with r/w bit high as we want to read from the device THEREFORE D3
    IdleI2C3();
    //OS_Delay(10);
    gyro_read = MasterReadI2C3(); //READ THE ADDRESS INTO THE ITG3200ID VARIABLE
    IdleI2C3();
    NotAckI2C3(); //SEND A NACK TO FINISH COMMS
    IdleI2C3();
    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 :(