ITG3200 Class Reference
ITG-3200 triple axis digital gyroscope. More...
#include <ITG3200.h>
Public Member Functions | |
ITG3200 (PinName sda, PinName scl) | |
Constructor. | |
char | getWhoAmI (void) |
Get the identity of the device. | |
void | setWhoAmI (char address) |
Set the address of the device. | |
char | getSampleRateDivider (void) |
Get the sample rate divider. | |
void | setSampleRateDivider (char divider) |
Set the sample rate divider. | |
int | getInternalSampleRate (void) |
Get the internal sample rate. | |
void | setLpBandwidth (char bandwidth) |
Set the low pass filter bandwidth. | |
char | getInterruptConfiguration (void) |
Get the interrupt configuration. | |
void | setInterruptConfiguration (char config) |
Set the interrupt configuration. | |
bool | isPllReady (void) |
Check the ITG_RDY bit of the INT_STATUS register. | |
bool | isRawDataReady (void) |
Check the RAW_DATA_RDY bit of the INT_STATUS register. | |
float | getTemperature (void) |
Get the temperature of the device. | |
int | getGyroX (void) |
Get the output for the x-axis gyroscope. | |
int | getGyroY (void) |
Get the output for the y-axis gyroscope. | |
int | getGyroZ (void) |
Get the output on the z-axis gyroscope. | |
char | getPowerManagement (void) |
Get the power management configuration. | |
void | setPowerManagement (char config) |
Set power management configuration. |
Detailed Description
ITG-3200 triple axis digital gyroscope.
Definition at line 80 of file ITG3200.h.
Constructor & Destructor Documentation
ITG3200 | ( | PinName | sda, |
PinName | scl | ||
) |
Constructor.
Includes.
Sets FS_SEL to 0x03 for proper opertaion.
- Parameters:
-
sda - mbed pin to use for the SDA I2C line. scl - mbed pin to use for the SCL I2C line.
LICENSE
Copyright (c) 2010 ARM Limited
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
DESCRIPTION
ITG-3200 triple axis, digital interface, gyroscope.
Datasheet:
http://invensense.com/mems/gyro/documents/PS-ITG-3200-00-01.4.pdf
Definition at line 40 of file ITG3200.cpp.
Member Function Documentation
int getGyroX | ( | void | ) |
Get the output for the x-axis gyroscope.
Typical sensitivity is 14.375 LSB/(degrees/sec).
- Returns:
- The output on the x-axis in raw ADC counts.
Definition at line 214 of file ITG3200.cpp.
int getGyroY | ( | void | ) |
Get the output for the y-axis gyroscope.
Typical sensitivity is 14.375 LSB/(degrees/sec).
- Returns:
- The output on the y-axis in raw ADC counts.
Definition at line 229 of file ITG3200.cpp.
int getGyroZ | ( | void | ) |
Get the output on the z-axis gyroscope.
Typical sensitivity is 14.375 LSB/(degrees/sec).
- Returns:
- The output on the z-axis in raw ADC counts.
Definition at line 244 of file ITG3200.cpp.
int getInternalSampleRate | ( | void | ) |
Get the internal sample rate.
- Returns:
- The internal sample rate in kHz - either 1 or 8.
Definition at line 103 of file ITG3200.cpp.
char getInterruptConfiguration | ( | void | ) |
Get the interrupt configuration.
See datasheet for register contents details.
7 6 5 4 +------+------+--------------+------------------+ | ACTL | OPEN | LATCH_INT_EN | INT_ANYRD_2CLEAR | +------+------+--------------+------------------+
3 2 1 0 +---+------------+------------+---+ | 0 | ITG_RDY_EN | RAW_RDY_EN | 0 | +---+------------+------------+---+
ACTL Logic level for INT output pin; 1 = active low, 0 = active high. OPEN Drive type for INT output pin; 1 = open drain, 0 = push-pull. LATCH_INT_EN Latch mode; 1 = latch until interrupt is cleared, 0 = 50us pulse. INT_ANYRD_2CLEAR Latch clear method; 1 = any register read, 0 = status register read only. ITG_RDY_EN Enable interrupt when device is ready, (PLL ready after changing clock source). RAW_RDY_EN Enable interrupt when data is available. 0 Bits 1 and 3 of the INT_CFG register should be zero.
- Returns:
- the contents of the INT_CFG register.
Definition at line 138 of file ITG3200.cpp.
char getPowerManagement | ( | void | ) |
Get the power management configuration.
See the datasheet for register contents details.
7 6 5 4 +---------+-------+---------+---------+ | H_RESET | SLEEP | STBY_XG | STBY_YG | +---------+-------+---------+---------+
3 2 1 0 +---------+----------+----------+----------+ | STBY_ZG | CLK_SEL2 | CLK_SEL1 | CLK_SEL0 | +---------+----------+----------+----------+
H_RESET Reset device and internal registers to the power-up-default settings. SLEEP Enable low power sleep mode. STBY_XG Put gyro X in standby mode (1=standby, 0=normal). STBY_YG Put gyro Y in standby mode (1=standby, 0=normal). STBY_ZG Put gyro Z in standby mode (1=standby, 0=normal). CLK_SEL Select device clock source:
CLK_SEL | Clock Source --------+-------------- 0 Internal oscillator 1 PLL with X Gyro reference 2 PLL with Y Gyro reference 3 PLL with Z Gyro reference 4 PLL with external 32.768kHz reference 5 PLL with external 19.2MHz reference 6 Reserved 7 Reserved
- Returns:
- The contents of the PWR_MGM register.
Definition at line 259 of file ITG3200.cpp.
char getSampleRateDivider | ( | void | ) |
Get the sample rate divider.
- Returns:
- The sample rate divider as a number from 0-255.
Definition at line 80 of file ITG3200.cpp.
float getTemperature | ( | void | ) |
Get the temperature of the device.
- Returns:
- The temperature in degrees celsius.
Definition at line 199 of file ITG3200.cpp.
char getWhoAmI | ( | void | ) |
Get the identity of the device.
- Returns:
- The contents of the Who Am I register which contains the I2C address of the device.
Definition at line 56 of file ITG3200.cpp.
bool isPllReady | ( | void | ) |
Check the ITG_RDY bit of the INT_STATUS register.
- Returns:
- True if the ITG_RDY bit is set, corresponding to PLL ready, false if the ITG_RDY bit is not set, corresponding to PLL not ready.
Definition at line 161 of file ITG3200.cpp.
bool isRawDataReady | ( | void | ) |
Check the RAW_DATA_RDY bit of the INT_STATUS register.
- Returns:
- True if the RAW_DATA_RDY bit is set, corresponding to new data in the sensor registers, false if the RAW_DATA_RDY bit is not set, corresponding to no new data yet in the sensor registers.
Definition at line 180 of file ITG3200.cpp.
void setInterruptConfiguration | ( | char | config ) |
Set the interrupt configuration.
See datasheet for configuration byte details.
7 6 5 4 +------+------+--------------+------------------+ | ACTL | OPEN | LATCH_INT_EN | INT_ANYRD_2CLEAR | +------+------+--------------+------------------+
3 2 1 0 +---+------------+------------+---+ | 0 | ITG_RDY_EN | RAW_RDY_EN | 0 | +---+------------+------------+---+
ACTL Logic level for INT output pin; 1 = active low, 0 = active high. OPEN Drive type for INT output pin; 1 = open drain, 0 = push-pull. LATCH_INT_EN Latch mode; 1 = latch until interrupt is cleared, 0 = 50us pulse. INT_ANYRD_2CLEAR Latch clear method; 1 = any register read, 0 = status register read only. ITG_RDY_EN Enable interrupt when device is ready, (PLL ready after changing clock source). RAW_RDY_EN Enable interrupt when data is available. 0 Bits 1 and 3 of the INT_CFG register should be zero.
- Parameters:
-
config Configuration byte to write to INT_CFG register.
Definition at line 151 of file ITG3200.cpp.
void setLpBandwidth | ( | char | bandwidth ) |
Set the low pass filter bandwidth.
Also used to set the internal sample rate. Pass the define bandwidth codes as a parameter.
256Hz -> 8kHz internal sample rate. Everything else -> 1kHz internal rate.
- Parameters:
-
bandwidth Low pass filter bandwidth code
Definition at line 127 of file ITG3200.cpp.
void setPowerManagement | ( | char | config ) |
Set power management configuration.
See the datasheet for configuration byte details
7 6 5 4 +---------+-------+---------+---------+ | H_RESET | SLEEP | STBY_XG | STBY_YG | +---------+-------+---------+---------+
3 2 1 0 +---------+----------+----------+----------+ | STBY_ZG | CLK_SEL2 | CLK_SEL1 | CLK_SEL0 | +---------+----------+----------+----------+
H_RESET Reset device and internal registers to the power-up-default settings. SLEEP Enable low power sleep mode. STBY_XG Put gyro X in standby mode (1=standby, 0=normal). STBY_YG Put gyro Y in standby mode (1=standby, 0=normal). STBY_ZG Put gyro Z in standby mode (1=standby, 0=normal). CLK_SEL Select device clock source:
CLK_SEL | Clock Source --------+-------------- 0 Internal oscillator 1 PLL with X Gyro reference 2 PLL with Y Gyro reference 3 PLL with Z Gyro reference 4 PLL with external 32.768kHz reference 5 PLL with external 19.2MHz reference 6 Reserved 7 Reserved
- Parameters:
-
config The configuration byte to write to the PWR_MGM register.
Definition at line 272 of file ITG3200.cpp.
void setSampleRateDivider | ( | char | divider ) |
Set the sample rate divider.
Fsample = Finternal / (divider + 1), where Finternal = 1kHz or 8kHz, as decidied by the DLPF_FS register.
- Parameters:
-
The sample rate divider as a number from 0-255.
Definition at line 93 of file ITG3200.cpp.
void setWhoAmI | ( | char | address ) |
Set the address of the device.
- Parameters:
-
address The I2C slave address to write to the Who Am I register on the device.
Definition at line 70 of file ITG3200.cpp.
Generated on Tue Jul 12 2022 19:11:05 by 1.7.2