cd00196199

AN2768
Application note
LIS331DL 3-axis digital MEMS accelerometer:
translates finger taps into actions
Introduction
This document is intended to provide application information for the LIS331DL low-voltage
3-axis digital output linear MEMS accelerometer housed in an LGA package.
The LIS331DL is an ultra-compact low-power 3-axis linear accelerometer that includes a
sensing element and an IC interface capable taking information from the sensing element
and providing the measured acceleration data to external applications via an I2C/SPI serial
interface.
The sensing element used to detect acceleration is manufactured using a dedicated process
developed by ST to produce inertial sensors and actuators in silicon.
The IC interface is instead manufactured using a CMOS process that allows a high level of
integration to design a dedicated circuit which is factory trimmed to better match the sensing
element characteristics.
The LIS331DL has a user-selectable full scale of ±2 g and ±8 g and is capable of measuring
accelerations with an output data rate of 100 Hz or 400 Hz. A self-test capability allows the
user to check that the system is operating correctly.
The device features two independent, highly programmable interrupt sources that can be
configured either to generate an inertial wake-up interrupt signal when a programmable
acceleration threshold is exceeded along one of the three axes, to detect a free-fall or to
recognize single/double click events.
Two independent pins can be configured to provide interrupt signals to connected devices.
The LIS331DL is available in a plastic SMD package and is designed to operate over a
temperature range extending from -40 °C to +85 °C.
The ultra small size and weight of the SMD package make it an ideal choice for handheld
portable applications such as cell phones and PDAs, or any other application where
reduced package size and weight are required.
June 2008
Rev 1
1/17
www.st.com
Contents
AN2768
Contents
1
2
3
4
2/17
Theory of operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1
Single click . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2
Double click . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1
CLICK_CFG (38h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2
CLICK_SRC (39h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3
CLICK_THSY_X (3Bh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.4
CLICK_THSZ (3Ch) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5
CLICK_TimeLimit (3Dh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.6
CLICK_Latency (3Eh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.7
CLICK_Window (3Fh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.8
CTRL_REG3 [Interrupt CTRL register] (22h) . . . . . . . . . . . . . . . . . . . . . . . 9
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1
Playing with CLICK_TimeLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.2
Playing with CLICK_Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3
Playing with CLICK_Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Revision history . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
AN2768
List of figures
List of figures
Figure 1.
Figure 2.
Figure 3.
Figure 4.
Figure 5.
Figure 6.
Figure 7.
Figure 8.
Figure 9.
Single click event with non latched interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Single and double click recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Double click recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Short TimeLimit. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Long TimeLimit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Short Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Long Latency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Short Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Long Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3/17
Theory of operation
1
AN2768
Theory of operation
The single click and double click recognition functions featured in the LIS331DL help to
create a man-machine interface with little software loading. The device can be configured to
output an interrupt signal on a dedicated pin when tapped in any direction.
If the sensor is exposed to a single input stimulus, it generates an interrupt request on
inertial interrupt pin INT1 and/or INT2. A more advanced feature allows the generation of an
interrupt request when a double input stimulus with programmable time between the two
events is recognized, enabling a mouse button-like functionality.
This function can be fully programmed by the user in terms of expected amplitude and
timing of the stimuli by means of the dedicated set of registers described in Chapter 2:
Register description.
The single and double click recognition works independently on the selected output data
rate.
1.1
Single click
If the device is configured for single click event detection, an interrupt is generated when the
input acceleration on the selected channel exceeds the programmed threshold, and returns
below it within a time window defined by the TimeLimit register.
If the LIR bit of the CLICK_CFG register is not set, the interrupt is kept high for the duration
of the Latency window. If the LIR bit is set, the interrupt is kept high until the CLICK_SRC
register is read.
Figure 1.
Single click event with non latched interrupt
(a)
(b)
In Figure 1(a) the click has been recognized, while in Figure 1(b) the click has not been
recognized because the acceleration goes under the threshold after the TimeLimit has
expired.
4/17
AN2768
1.2
Theory of operation
Double click
If the device is configured for double click event detection, an interrupt is generated when,
after a first click, a second click is recognized. The recognition of the second click occurs
only if the event satisfies the rules defined by the Latency and Windows registers.
In particular, after the first click has been recognized, the second click detection procedure
is delayed for an interval defined by the Latency register. This means that after the first click
has been recognized, the second click detection procedure will start only if the input
acceleration exceeds the threshold after the Latency window but before the Window has
expired [Figure 2 (a)] or if the acceleration is still above the threshold after the Latency has
expired [Figure 3 (b)].
Once the second click detection procedure is initiated, the second click will be recognized
with the same rule as the first: the acceleration must return below the threshold before the
TimeLimit has expired.
Appropriately defining the Latency window is important to avoid unwanted clicks due to
spurious bouncing of the input signal.
Figure 2.
Single and double click recognition
(a)
(b)
Figure 2 illustrates a single click event (a) and a double click event (b). The device is able to
distinguish between (a) and (b) by changing the settings of the CLICK_CFG register from
single to double click recognition.
5/17
Theory of operation
Figure 3.
AN2768
Double click recognition
(a)
(b)
In Figure 3(a) the double click event has been correctly recognized, while in Figure 3(b) the
interrupt has not been generated because the input acceleration exceeds the threshold after
the Window interval has expired.
6/17
AN2768
Register description
2
Register description
2.1
CLICK_CFG (38h)
Table 1.
-
Register
LIR
Table 2.
Double_Z
Double_Y
Single_Y
Double_X
Single_X
Description
LIR
Latch interrupt request to CLICK_SRC reg with the CLICK_SRC reg
refreshed by reading CLICK_SRC reg. Default value: 0
(0: interrupt request not latched; 1: interrupt request latched)
Double_Z
Enable interrupt generation on double click event on Z axis. Default value: 0
(0: disable interrupt request; 1: enable interrupt request)
Single_Z
Enable interrupt generation on single click event on Z axis. Default value: 0
(0: disable interrupt request; 1: enable interrupt request)
Double_Y
Enable interrupt generation on double click event on Y axis. Default value: 0
(0: disable interrupt request; 1: enable interrupt request)
Single_Y
Enable interrupt generation on single click event on Y axis. Default value: 0
(0: disable interrupt request; 1: enable interrupt request)
Double_X
Enable interrupt generation on double click event on X axis. Default value: 0
(0: disable interrupt request; 1: enable interrupt request)
Single_X
Enable interrupt generation on single click event on X axis. Default value: 0
(0: disable interrupt request; 1: enable interrupt request)
Table 3.
Truth table
Double_Z / Y / X
2.2
Single_Z
Single_Z / Y / X
Click output
0
0
0
0
1
Single
1
0
Double
1
1
Single or double
CLICK_SRC (39h)
Table 4.
X
Register
IA
Double_Z
Single_Z
Double_Y
Single_Y
Double_X
Single_X
7/17
Register description
Table 5.
2.3
Description
IA
Interrupt active. Default value: 0
(0: no interrupt has been generated;
1: one or more interrupt events have been generated)
Double_Z
Double click on Z axis event. Default value: 0
(0: no interrupt; 1: Double Z event has occurred)
Single_Z
Single click on Z axis event. Default value: 0
(0: no interrupt; 1: Single Z event has occurred)
Double_Y
Double click on Y axis event. Default value: 0
(0: no interrupt; 1: Double Y event has occurred)
Single_Y
Single click on Y axis event.Default value: 0
(0: no interrupt; 1: Single Y event has occurred)
Double_X
Double click on X axis event. Default value: 0
(0: no interrupt; 1: Double X event has occurred)
Single_X
Single click on X axis event. Default value: 0
(0: no interrupt; 1: Single X event has occurred)
IA
Interrupt active. Default value: 0
(0: no interrupt has been generated;
1: one or more interrupt events have been generated)
CLICK_THSY_X (3Bh)
Table 6.
THSy3
Table 7.
2.4
AN2768
Register
THSy2
THSy1
THSy0
THSx3
THSx2
THSx1
THSx0
Description
THSy3, THSy0
Click threshold on Y axis. Default value: 0000
THSx3, THSx0
Click threshold on X axis. Default value: 0000
CLICK_THSZ (3Ch)
Table 8.
Register
X
Table 9.
X
X
X
THSz3
THSz2
THSz1
THSz0
Description
THSz3, THSz0
Click threshold on Z axis. Default value: 0000
From 0.5g(0001) to 7.5g(1111) with increments of 0.5g.
The THSx, THSy and THSz registers define the threshold which is used by the system to
start the click detection procedure. The threshold value is expressed over 4 bits as an
unsigned number.
8/17
AN2768
2.5
Register description
CLICK_TimeLimit (3Dh)
Table 10.
Dur7
Register
Dur6
Dur5
Dur4
Dur3
Dur2
Dur1
Dur0
From 0 to 127.5 ms in increments of 0.5 ms.
Dur7 through Dur0 define the maximum time interval that can elapse between the start of
the click detection procedure (the acceleration on the selected channel exceeds the
programmed threshold) and when the acceleration goes back below the threshold.
2.6
CLICK_Latency (3Eh)
Table 11.
Lat7
Register
Lat6
Lat5
Lat4
Lat3
Lat2
Lat1
Lat0
From 0 to 255 ms in increments of 1 msec.
Lat7 through Lat0 define the time interval that starts after the first click detection where the
click detection procedure is disabled, in cases where the device is configured for double
click detection.
2.7
CLICK_Window (3Fh)
Table 12.
Win7
Register
Win6
Win5
Win4
Win3
Win2
Win1
Win0
From 0 to 255 ms in increments of 1 ms.
Win7 through Win0 define the maximum interval of time that can elapse after the end of the
latency interval in which the click detection procedure can start, in cases where the device is
configured for double click detection.
2.8
CTRL_REG3 [Interrupt CTRL register] (22h)
Table 13.
IHL
Table 14.
Register
PP_OD
I2CFG2
I2CFG1
I2CFG0
I1CFG2
I1CFG1
I1CFG0
Description
IHL
Interrupt active high/low. Default value 0.
(0: active high; 1: active low)
PP_OD
Push-pull/open drain selection on interrupt pad. Default value 0.
(0: push-pull; 1: open drain)
9/17
Register description
AN2768
Table 14.
Description (continued)
I2CFG2
I2CFG1
I2CFG0
Data signal on Int2 pad control bits. Default value 000.
(see table below)
I1CFG2
I1CFG1
I1CFG0
Data signal on Int1 pad control bits. Default value 000.
(see table below)
Table 15.
10/17
Truth table
I1(2)_CFG2
I1(2)_CFG1
I1(2)_CFG0
Int1(2) Pad
0
0
0
GND
0
0
1
FF_WU_1
0
1
0
FF_WU_2
0
1
1
FF_WU_1 or FF_WU_2
1
0
0
Data ready
1
1
1
Click interrupt
AN2768
3
Examples
Examples
The following figures show the click interrupt generation in different conditions. The
illustrations have been captured on a PC running the EK302DL GUI interface. The content
of the LIS331DL registers have been modified via the dedicated panel of the software
interface that allows the user to evaluate all the different settings and features of the click
embedded function. In the following examples, only the Y axis has been enabled for the click
interrupt generation.
3.1
Playing with CLICK_TimeLimit
Figure 4 shows an acquisition carried out with CLICK_TimeLimit = 02h (1 ms). With this
setting, the single click recognition window is short and often the acceleration does not
return below the threshold in time.
In Figure 5 an acquisition done with CLICK_TimeLimit = FFh (127 ms) is shown. With this
setting the single click recognition window is longer, and it is easier for the event to be
recognized.
Figure 4.
Short TimeLimit
11/17
Examples
AN2768
Figure 5.
3.2
Long TimeLimit
Playing with CLICK_Latency
Figure 6 illustrates an acquisition done with CLICK_Latency = 06h (6 ms). With this setting
the device recognizes as a click nearly every acceleration peak. In Figure 7 an acquisition
carried out with CLICK_Latency = ffh (255 ms) is displayed. With this setting the device
recognizes as a click one peak in every two.
12/17
AN2768
Examples
Figure 6.
Short Latency
Figure 7.
Long Latency
13/17
Examples
3.3
AN2768
Playing with CLICK_Window
In cases of double click recognition, the CLICK _Latency + CLICK_Window defines the
maximum distance between two consecutive clicks to be recognized as a double click event.
By fixing the latency to avoid spurious bouncing of the signal, one can play with the
CLICK_Window as with the “double-click speed” settings of the mouse properties on the
PC.
Figure 8 shows an acquisition done with CLICK_Window = 10h (10 ms). With this setting the
two consecutive peaks of acceleration are too far apart and the second one occurs outside
of the Window.
In Figure 9 an acquisition carried out with CLICK_Window = ffh (255 ms) is shown. With this
setting the device correctly generates the double click interrupt after the second acceleration
peak.
Figure 8.
14/17
Short Window
AN2768
Examples
Figure 9.
Long Window
15/17
Revision history
4
AN2768
Revision history
Table 16.
16/17
Document revision history
Date
Revision
24-Jun-2008
1
Changes
Initial release.
AN2768
Please Read Carefully:
Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries (“ST”) reserve the
right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any
time, without notice.
All ST products are sold pursuant to ST’s terms and conditions of sale.
Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no
liability whatsoever relating to the choice, selection or use of the ST products and services described herein.
No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this
document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products
or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such
third party products or services or any intellectual property contained therein.
UNLESS OTHERWISE SET FORTH IN ST’S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED
WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS
OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT.
UNLESS EXPRESSLY APPROVED IN WRITING BY AN AUTHORIZED ST REPRESENTATIVE, ST PRODUCTS ARE NOT
RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING
APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY,
DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE
GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER’S OWN RISK.
Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void
any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any
liability of ST.
ST and the ST logo are trademarks or registered trademarks of ST in various countries.
Information in this document supersedes and replaces all information previously supplied.
The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners.
© 2008 STMicroelectronics - All rights reserved
STMicroelectronics group of companies
Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan Malaysia - Malta - Morocco - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America
www.st.com
17/17