L3GD20H Gyroscope pentru Arduino
Features/Specifications:
Interface: I?2;C, SPI (one 16-bit reading per axis)
Minimum operating voltage: 2.5 V
Maximum operating voltage: 5.5 V
Axes: pitch (x), roll (y), and yaw (z)
Supply current: 6 mA
Dimensions: 0.4? × 0.9? × 0.1? (13 × 23 × 3 mm)
Weight without header pins: 0.7 g (0.03 oz)
Operating voltage: 2.5 V to 5.5 V
Supply current: ~6 mA
Sensitivity range (configurable): ±245°/s, ±500°/s, or ±2000°/s
PIN Description
VIN This is the main power supply connection,and it should be powered at 2.5 V to 5.5 V.
The SCL/SPC and SDA/SDI level shifters pull the I?2;C and SPI bus high bits up to this level.
GND The ground (0 V) connection for your power supply.
Your I?2;C or SPI control source must also share a common ground with this board.
SCL/SPC Level-shifted I?2;C/SPI clock line: HIGH is VIN, LOW is 0 V
SDA/SDI Level-shifted I?2;C data line and SPI data-in line (also doubles as SDO in 3-wire mode): HIGH is VIN, LOW is 0 V
SDO SPI data-out line in 4-wire mode: HIGH is VDD, LOW is 0 V. Also used as a 3.3V-logic-level input
to determine I?2;C slave address (see below). This pin is not level-shifted and is not 5V-tolerant.
CS SPI enable (chip select). Pulled up to VDD to enable I?2;C communication by default;
drive low to begin SPI communication.
DRDY/INT2 Data ready indicator, a 3.3V-logic-level output. HIGH (3.3 V) indicates angular rate data can be read.
Can also be configured as a FIFO interrupt. This output is not level-shifted.
INT1 Programmable interrupt, a 3.3V-logic-level output. This output is not level-shifted.
DEN Data enable trigger, a 3.3V-logic-level input. This input is not level-shifted and is not 5V-tolerant.
I?2;C Communication
With the CS pin in its default state (pulled up to VDD), the L3GD20H can be configured and its angular velocity readings can be queried through the I?2;C bus. Level shifters on the I?2;C clock (SCL) and data (SDA) lines enable I?2;C communication with microcontrollers operating at the same voltage as VIN (2.5 V to 5.5 V). A detailed explanation of the I?2;C interface on the L3GD20H can be found in its datasheet (3MB pdf), and more detailed information about I?2;C in general can be found in NXP's I?2;C-bus specification (371k pdf).
In I?2;C mode, the gyro's 7-bit slave address has its least significant bit (LSb) determined by the voltage on the SDO pin. The carrier board pulls SDO to VDD through a 4.7 k? resistor, making the LSb 1 and setting the slave address to 1101011b by default (this is the same slave address as the L3GD20). If the gyro's selected slave address happens to conflict with some other device on your I?2;C bus, you can drive SDO low to set the LSb to 0.
In our tests of the board, we were able to communicate with the chip at clock frequencies up to 400 kHz; higher frequencies might work but were not tested.
SPI Communication
To communicate with the L3GD20H in SPI mode, the CS pin (which the board pulls to VDD through a 4.7 k? resistor) must be driven low before the start of an SPI command and allowed to return high after the end of the command. Level shifters on the SPI clock (SPC) and data in (SDI) lines enable SPI communication with microcontrollers operating at the same voltage as VIN (2.5 V to 5.5 V).
In the default 4-wire mode, the gyro transmits data to the SPI master on a dedicated data out (SDO) line. If the SPI interface is configured to use 3-wire mode instead, the SDI line doubles as SDO and is driven by the L3GD20H when it transmits data to the master. A detailed explanation of the SPI interface on the L3GD20H can be found in its datasheet (3MB pdf).
Sample Code
We have written a basic Arduino library for the L3G that makes it easy to interface this sensor with an Arduino. The library makes it simple to configure the L3GD20H and read the raw gyro data through I?2;C.
Protocol Hints
The datasheet provides all the information you need to use this sensor, but picking out the important details can take some time. Here are some pointers for communicating with and configuring the L3GD20H that we hope will get you up and running a little bit faster:
The gyro is in power down mode by default. You have to turn it on by writing the appropriate value to the CTRL1 register.
You can read or write multiple registers in a single I?2;C command by asserting the most significant bit of the register address to enable address auto-increment.
You can enable the same auto-increment feature in SPI mode by asserting the second bit (bit 1, called the MS bit in the datasheet) of an SPI command.
Comentarii Facebook