high performance ultra low-power 3-axis accelerometer
Introduction
This document provides application information for the low-voltage 3-axis digital output
linear MEMS accelerometer provided in the LGA package.
The LIS331DLH is a high performance ultra low-power 3-axis linear accelerometer, which
belongs to the “nano” family of MEMS accelerometers, with digital I
standard output.
The device features ultra low-power operational modes that allow advanced power saving
and smart Sleep to Wakeup functions.
The LIS331DLH has dynamically user-selectable full scales of ±2 g /±4 g /±8 g and is
capable of measuring acceleration with output data rates from 0.5 Hz to 1 kHz.
The self-test capability allows the user to check the functioning of the sensor in the final
application.
The device can be configured to generate interrupt signals in response to inertial wakeup/free-fall events, or based on the position of the device itself.
The thresholds and timing of interrupt generators are programmable by the end user while
fully operational. The LIS331DLH is available in a small, thin plastic land grid array (LGA)
package, and is guaranteed to operate over a wide temperature range of -40 °C to +85 °C.
Once the device is powered up it automatically downloads the calibration coefficients from
the embedded Flash memory to the internal registers. When the boot procedure is complete
(i.e. after about 5 milliseconds), the device automatically enters power-down mode.
To turn on the device and gather acceleration data, it is necessary to select one of the
operating modes through the CTRL_REG1 register, and to enable at least one of the axes.
The following general-purpose sequence can be used to configure the device:
1.write CTRL_REG1
2. write CTRL_REG2
3. write CTRL_REG3
4. write CTRL_REG4
5. write Reference
6. write INT1_THS
7. write INT1_DUR
8. write INT2_THS
9. write INT2_DUR
10. read HP_FILTER_RESET (if filter is enabled)
11. write INT1_CFG
12. write INT2_CFG
13. write CTRL_REG5
Register values can be changed at any time, and with the device in any operating mode.
Modifications take effect immediately.
Note that in case of changes in full scale, ODR or enabling/disabling of self-test, the output
of the device will require 1 ms + 1/ODR to settle (see Table 11). If the HP filter cut-off
frequency is changed, the filter can be reset by reading the HP_FILTER_RESET register.
Doc ID 15136 Rev 27/31
Start-up sequenceAN2847
2.1 Reading acceleration data
2.1.1 Using the status register
The device features a STATUS_REG register which should be polled to check when a new
set of data is available. The reading procedure is the following:
1read STATUS_REG
2if STATUS_REG(3) = 0 then goto 1
3if STATUS_REG(7) = 1 then some data have been overwritten
4read OUTX_L
5read OUTX_H
6read OUTY_L
7read OUTY_H
8read OUTZ_L
9read OUTZ_H
10data processing
11goto 1
The check performed at step 3 determines whether the reading rate is adequate compared
to the data production rate. In cases where one or more acceleration samples have been
overwritten by new data due to an excessively slow reading rate, the ZYXOR bit of the
STATUS_REG register is set to 1.
The overrun bits are automatically cleared when all the data present inside the device have
been read and new data have not been produced in the meantime.
2.1.2 Using the data-ready signal
The device may be configured to have one HW signal to determine when a new set of
measurement data is available for reading. This signal is represented by the XYZDA bit of
the STATUS_REG register. The signal can be driven to the INT1 or INT2 pins and its polarity
set to active-low or active-high through the CTRL_REG3 register. The interrupt is reset
when the higher part of the data of all the enabled channels has been read.
2.1.3 Using the block data update feature
If the reading of the acceleration data is particularly slow and cannot be (or does not need to
be) synchronized with either the XYZDA bit within the STATUS_REG or with the RDY signal,
it is strongly recommended to set the BDU (block data update) bit in CTRL_REG4 to 1.
This feature prevents the need to read the values (most significant and least significant parts
of the acceleration data) related to different samples. In particular, when the BDU is
activated, the data registers related to each channel always contain the most recent
acceleration data produced by the device. But if the reading of a given pair (i.e. OUTX_H
and OUTX_L, OUTY_H and OUTY_L, OUTZ_H and OUTZ_L) is initiated, the refresh for
that pair is blocked until both the MSB and LSB parts of the data are read.
8/31Doc ID 15136 Rev 2
AN2847Start-up sequence
Note:BDU only guarantees that OUTX(Y, Z)_L and OUTX(X,Z)_H have been sampled at the
same moment. If the reading speed is too low, it is possible, for example, to read X and Y
sampled at T1 and Z sampled at T2.
2.2 Output data rate selection and reading timing
The output data rate is user selectable through the DRx bits of the CTRL_REG1 (20h)
register. At power-on-reset, the DRx are reset to 0, thus providing a default output data rate
of 50 Hz.
The analog signal coming from the mechanical sensor is filtered by a low pass filter before
being converted by the internal ADC. The frequency at -3 dB of the low pass filter
determines the effective system resolution. The cut-off frequency depends on the DR<1:0>
bits in the CTRL_REG1 (20h) register (Table 2).
Table 2.Output data rate
DR1, DR0Output data rate
0050 Hz37 Hz
01100 Hz74 Hz
10400 Hz292 Hz
111000 Hz780 Hz
Analog filter
cut-off frequency (-3 dB)
Note:The output data rate precision is related to the internal oscillator; an error of +/- 10% should
be taken into account.
A typical reading period is defined which is 616 µs shorter than the output data rate period,
in order to prevent the loss of any data produced. During this time period the reading of the
data must be performed and the DataReady signal can be used as a trigger to begin the
reading sequence. At the end of the complete sequence, the DataReady signal goes down
and the rising edge that follows signals that new data are available. If this minimum reading
frequency is not observed, some data loss is possible and the DataReady signal is no
longer considered a trigger signal. The status register can be used to infer the occurrence of
an overrun.
Figure 1.Reading timing
4
44
.EWDATAAVAILABLE
$ATA2EADY
Table 3.Timing value to prevent data loss
TimeDescriptionTyp
T0Data rate1/ODR
Doc ID 15136 Rev 29/31
".W
Start-up sequenceAN2847
Table 3.Timing value to prevent data loss
TimeDescriptionTyp
T1Reading periodT0-T2
T2New data generation616 µs
2.3 Data ready vs. interrupt signal
The device has two pins which can be activated to generate either the data-ready signal or
the interrupt signal. The functionality of the pins is selected acting on bit I1(2)_CFGx bits of
the CTRL_REG3 register, according to Table 4 and the block diagram shown in Figure 2.
Table 4.Data signal on INT 1 and INT 2 pads
I1(2)_CFG1I1(2)_CFG0INT 1(2) Pin
00Interrupt 1 (2) source
01Interrupt 1 source OR Interrupt 2 source
10Data ready
11Boot running
Figure 2.Interrupt and DataReady signal generation block diagram
/$2#LOCK
&REE&ALL
7AKE5P
)NTERRUPT
'ENERATOR
&REE&ALL
7AKE5P
)NTERRUPT
'ENERATOR
)!
).4?32#
/$2#LOCK
)!
).4?32#
#OUNTER
).4X?$52!4 )/.
#OUNTER
).4X?$52!4)/.
,ATCH
#42,?2%',)2
,ATCH
#42,?2%',)2
$ATA2EADY
3IGNAL
'ENERATOR
$ATA2EADYSIGNAL
"//4
TO
).4
0AD
)?#&'
)?#&'
".W
In particular, the data-ready (DR) signal rises to 1 when a new set of acceleration data has
been generated and is available for reading. The signal is reset after all the enabled
channels are read through the serial interface.
10/31Doc ID 15136 Rev 2
Loading...
+ 21 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.