STMicroelectronics ISM303DAC Datasheet
إعلان
إعلان
ISM303DAC
High-performance, low-power, compact
3D accelerometer and 3D magnetometer module
Datasheet
-
production data
/*$[[PP
Features
3 magnetic field channels and 3 acceleration channels
Up to ±50 gauss magnetic dynamic range
±2/±4/±8/ 16 g selectable acceleration full scales
Dynamic switching between high-resolution, high-frequency and low-power modes
16-bit data output
SPI / I
2
C serial interfaces
Analog supply voltage 1.71 V to 1.98 V
Programmable interrupt generators for freefall, motion and magnetic field detection
Embedded self-test both for the accelerometer and magnetometer
Embedded 256-level FIFO
Embedded temperature sensor
ECOPACK
®
, RoHS and “Green” compliant
Description
The ISM303DAC is a high-performance, lowpower system-in-package featuring a 3D digital linear acceleration sensor and a 3D digital magnetic sensor.
The ISM303DAC has user-selectable linear acceleration full scales of ±2 g /±4 g /±8 g / 16 g and is capable of measuring accelerations with output data rates from 1 Hz to 6400 Hz. The device has a magnetic field dynamic range of up to
±50 gauss with output data rates from10 Hz to
150 Hz . The ISM303DAC includes an I 2 C serial bus interface that supports standard, fast mode, fast mode plus, and high-speed (100 kHz,
400 kHz, 1 MHz, and 3.4 MHz) and an SPI serial standard interface.
The ISM303DAC has an integrated 256-level firstin, first-out (FIFO) buffer for the accelerometer data which can be used to limit the intervention of the host processor.
The embedded self-test capability allows the user to check the functioning of the sensor in the final application.
The system can be configured to generate an interrupt signal for free-fall, motion detection and magnetic field detection. The magnetic and accelerometer blocks can be enabled or put into power-down mode separately.
The ISM303DAC is available in a plastic land grid array package (LGA) and is guaranteed to operate over an extended temperature range from -40 °C to +85 °C.
Applications
Dual mode anti-tampering in smart meters
Antenna pointing
Motion tracking
Robotics and appliances
Positioning and navigation systems
Positional and distance sensor
Table 1. Device summary
Part number
Temp. range [°C]
Package Packaging
ISM303DACTR -40 to +85 LGA-12
Tape and reel
October 2017
This is information on a product in full production.
DocID030988 Rev 2 1/80 www.st.com
Contents
Contents
ISM303DAC
Block diagram and pin description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Temperature sensor characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Communication interface characteristics . . . . . . . . . . . . . . . . . . . . . . . . . 17
SPI - serial peripheral interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
C - inter-IC control interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Linear acceleration sensor sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Magnetic sensor sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Magnetic dynamic range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Magnetometer power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Magnetometer offset cancellation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Magnetometer interrupt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Magnetometer hard-iron compensation . . . . . . . . . . . . . . . . . . . . . . . . . 27
Magnetometer self-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Accelerometer power modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Accelerometer bandwidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Accelerometer 6D / 4D orientation detection . . . . . . . . . . . . . . . . . . . . . 33
Accelerometer activity/inactivity function . . . . . . . . . . . . . . . . . . . . . . . . 33
2/80 DocID030988 Rev 2
ISM303DAC
Contents
Accelerometer self-test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Accelerometer data stabilization time vs. ODR setting . . . . . . . . . . . . . 35
Continuous-to-FIFO mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Bypass-to-Continuous mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
C serial interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
C operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Accelerometer SPI write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Accelerometer SPI read in 3-wire mode . . . . . . . . . . . . . . . . . . . . . . . . 48
Magnetometer SPI write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Magnetometer SPI write in 3-wire mode . . . . . . . . . . . . . . . . . . . . . . . . 50
WHO_AM_I_A (0Fh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
FIFO_CTRL_A (25h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
DocID030988 Rev 2 3/80
80
Contents ISM303DAC
FIFO_SAMPLES_A (30h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
TAP_6D_THS_A (31h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
WAKE_UP_THS_A (33h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
WAKE_UP_DUR_A (34h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
FREE_FALL_A (35h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
STATUS_DUP_A (36h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
WAKE_UP_SRC_A (37h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
FUNC_SRC_A (3Eh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
FUNC_CTRL_A (3Fh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
OFFSET_X_REG_L_M (45h) and OFFSET_X_REG_H_M (46h) . . . . . . 69
OFFSET_Y_REG_L_M (47h) and OFFSET_Y_REG_H_M (48h) . . . . . . 69
OFFSET_Z_REG_L_M (49h) and OFFSET_Z_REG_H_M (4Ah) . . . . . . 69
WHO_AM_I_M (4Fh) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
CFG_REG_A_M (60h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
CFG_REG_B_M (61h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
CFG_REG_C_M (62h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
INT_CTRL_REG_M (63h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
INT_SOURCE_REG_M (64h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
INT_THS_L_REG_M (65h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
INT_THS_H_REG_M (66h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
4/80 DocID030988 Rev 2
ISM303DAC
Contents
STATUS_REG_M (67h) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
OUTX_L_REG_M, OUTX_H_REG_M (68h - 69h) . . . . . . . . . . . . . . . . . . 74
OUTY_L_REG_M, OUTY_H_REG_M (6Ah - 6Bh) . . . . . . . . . . . . . . . . . 75
OUTZ_L_REG_M, OUTZ_H_REG_M (6Ch - 6Dh) . . . . . . . . . . . . . . . . . 75
LGA-12 package information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
LGA-12 packing information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
DocID030988 Rev 2 5/80
80
List of tables
List of tables
ISM303DAC
C slave timing values (standard and fast mode) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
C slave timing values (fast mode plus and high speed) . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Maximum ODR in single measurement mode (HR and LP modes) . . . . . . . . . . . . . . . . . . 23
Low-pass filter in low-power, high-resolution and high-frequency modes . . . . . . . . . . . . . 30
C terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Transfer when master is receiving (reading) one byte of data from slave . . . . . . . . . . . . . 44
Transfer when master is receiving (reading) multiple bytes of data from slave . . . . . . . . . 45
6/80 DocID030988 Rev 2
ISM303DAC List of tables
DocID030988 Rev 2 7/80
80
List of tables ISM303DAC
8/80 DocID030988 Rev 2
ISM303DAC
List of figures
List of figures
C slave timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Read and write protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
DocID030988 Rev 2 9/80
80
Block diagram and pin description
1 Block diagram and pin description
ISM303DAC
D
Figure 1. Block diagram
=
<
;
;
<
=
08;
&+$5*(
$03/,),(5
$17,$/,$6
$'
&219(57(5
',*,7$/),/7(5
&21752/
/2*,&
,17B;/
,17B;/
,&
63,
&6
6&/63&
6'$6',6'2
,0
=
<
;
;
<
=
08;
&+$5*(
$03/,),(5
$'
&219(57(5
7(036(1625 6(/)7(67 5()(5(1&(
75,00,1*
&,5&8,76
&/2&.
&21752/
/2*,&
),)2
,17B0$*'5'<
10/80 DocID030988 Rev 2
ISM303DAC Block diagram and pin description
=
Figure 2. Pin connections
<
7239,(:
',5(&7,212)
'(7(&7$%/(
$&&(/(5$7,216
=
;
9GGB,2
9GG
*1'
,17B0$*'5'<
%277209,(:
6&/63&
&6
5HVHUYHG
6'$6',6'2
<
7239,(:
',5(&7,212)
'(7(&7$%/(
0$*1(7,&),(/'6
;
DocID030988 Rev 2 11/80
80
Block diagram and pin description
Pin#
1
4
10
11
8
9
12
5
6
7
2
3
ISM303DAC
Name
SCL
SPC
CS
Table 2. Pin description
Reserved
SDA
SDI
SDO
C1
Function
I
2
C serial clock (SCL)
SPI serial port clock (SPC)
I
2
C/SPI mode selection
(1: SPI idle mode / I
2
C communication enabled;
0: SPI communication mode / I
2
C disabled)
Reserved, connected to GND
I
2
C serial data (SDA)
SPI serial data input (SDI)
3-wire interface serial data output (SDO)
Capacitor connection (C1 = 220 nF)
GND
INT_MAG/DRDY
GND
Vdd
Vdd_IO
INT2_XL
INT1_XL
0 V
Magnetometer interrupt/data-ready signal
0 V
Power supply
Power supply for I/O pins
Accelerometer interrupt 2
Accelerometer interrupt 1
12/80 DocID030988 Rev 2
ISM303DAC Module specifications
Symbol
LA_FS
@ Vdd = 1.8 V, T = 25 °C unless otherwise noted
(a)
.
Noise density is the same for all ODR.
Table 3. Sensor characteristics
Parameter Test conditions Min.
(1)
Linear acceleration measurement range
M_FS Magnetic dynamic range
(3)
LA_So Sensitivity 16-bit
(4)(5)
@ FS ±2 g
@ FS ±4 g
@ FS ±8 g
@ FS ±16 g
Typ.
(2)
±2
±4
±8
±16
±25 ±49.152
-7%
-7%
0.061
0.122
-7%
-7%
0.244
0.488
Max.
+7%
+7%
+7%
+7%
Unit g gauss m g /digit
M_So Magnetic sensitivity
-10% 1.5
+10% mgauss/
LSB
LA_TCSo
Linear acceleration sensitivity change vs. temperature
(6)
M_TCSo
Magnetic sensitivity change vs. temperature
LA_TyOff
Typical zerog level offset accuracy
(7)(8)
M_TyOff Magnetic sensor offset
LA_TCOff Zerog level change vs. temp.
With offset cancellation
(9)(10)
Max. delta from 25 °C
M_TCOff
Magnetic sensor offset change vs. temp.
LA_AN
LA_RMS
Noise density - highperformance mode (HR or HF mode)
(11)
RMS noise - low-power mode
(12)
@ FS ±2 g
@ FS ±4 g
@ FS ±8 g
@ FS ±16 g
@ FS ±2 g
@ FS ±4 g
@ FS ±8 g
@ FS ±16 g
-80
-60
-0.3
0.01
±0.03
±30
0
±0.2
6.3
8.2
11
17
120
150
200
300
+80
+60
+0.3
%/°C
%/°C m g mgauss m g /°C mgauss/
°C
μ g / √ Hz m g (RMS) a. The product is factory calibrated at 1.8 V. The operational power supply range is from 1.71 V to 1.98 V.
DocID030988 Rev 2 13/80
80
Module specifications ISM303DAC
Symbol
Table 3. Sensor characteristics (continued)
Parameter Test conditions Min.
(1)
Typ.
(2)
Max.
(1)
Unit
M_R Magnetic RMS noise
(13)
High-performance mode 3 5 mgauss
(RMS)
ST
Self-test positive difference
(14)
(accelerometer only)
M_ST Magnetic self-test
(15)
Top Operating temperature range
70
15
-40
1500
500
+85 m g mgauss
°C
1. Min/Max values are based on characterization results, not tested in production and not guaranteed.
2. Typical specifications are not guaranteed.
3. The typical value of the magnetic dynamic range applies when the magnetic field is fully aligned with one of the sensitive axes. In presence of a stray field in the cross-axis direction, the magnetic dynamic range (max module) can decrease down to the min value.
4. Sensitivity calculated at 16-bit.
5. Values after calibration test and trimming.
6. Measurements are performed in a uniform temperature setup and they are based on characterization data in a limited number of samples, not measured during final test for production.
7. Typical zerog level offset value after calibration and trimming.
8. Offset can be eliminated by enabling the slope filter.
9. Based on characterization data on a limited number of samples, not measured during final test for production.
10. Excluding drift due to magnetic shock.
11. Noise density is the same for all ODR.
12. RMS noise is the same for all ODR.
13. With low-pass filter or offset cancellation enabled.
14. “Self-test positive difference” is defined as: OUTPUT[m g ]
(CTRL3 ST2, ST1 bits=01)
- OUTPUT[m g ]
(CTRL3 ST2, ST1 bits=00)
.
15. Magnetic “self-test” is defined as OUTPUT[gauss]
(self-test enabled)
- OUTPUT[gauss]
(self-test disabled).
14/80 DocID030988 Rev 2
ISM303DAC Module specifications
2.2 Temperature sensor characteristics
@ Vdd = 1.8 V, T = 25 °C unless otherwise noted.
(b)
Symbol
Table 4. Temperature sensor characteristics
Parameter
TSDr Temperature sensor output change vs. temp.
TODR Temperature refresh rate
Top Operating temperature range
1. Typical specifications are not guaranteed.
2. 8-bit resolution.
Test conditions Min.
Typ.
(1)
-40
1
12.5
Max.
+85
Unit digit/°C
(2)
Hz
°C
@ Vdd = 1.8 V, T = 25 °C unless otherwise noted.
(b)
Symbol
Table 5. Electrical characteristics
Parameter
Vdd Supply voltage
Vdd_IO Module power supply for I/O
LA_Idd_HR
Accelerometer current consumption in high-resolution mode
Magnetic sensor in power-down
Test conditions
12.5Hz-6400Hz
ODR range
Min.
(1)
1.71
1.71
LA_Idd_LP
Accelerometer current consumption in low-power mode
Magnetic sensor in power-down.
100 Hz ODR
50 Hz ODR
12.5 Hz ODR
1 Hz ODR
M_Idd_HR
Magnetic current consumption in highresolution mode
Accelerometer in power-down mode
ODR = 100 Hz
M_Idd_LP
Idd_PD
VIH
VIL
VOH
Magnetic current consumption in lowpower mode
(3)
Linear accel. in power-down mode
Current consumption in power-down
Digital high-level input voltage
Digital low-level input voltage
High-level output voltage
ODR = 10 Hz
IOH = 4 mA
0.8*Vdd_IO
Vdd_IO - 0.2
Typ.
(2)
1.8
162
16
10
6
4.5
1180
25
2.5
Max.
1.98
Vdd+0.1
Unit
V
V
μ A
μ A
μ A
μ A
μ A
μ A
μ A
μ A
V
0.2*Vdd_IO V
V b. The product is factory calibrated at 1.8 V.The operational power supply range is from 1.71 V to 1.98 V.
DocID030988 Rev 2 15/80
80
Module specifications ISM303DAC
Symbol
Table 5. Electrical characteristics
Parameter Test conditions Min.
(1)
Typ.
(2)
VOL Low-level output voltage IOL = 4 mA
T
OP
Operating temperature range -40
1. Min/Max values are based on characterization results, not tested in production and not guaranteed.
2.
Typical specifications are not guaranteed .
3. Offset cancellation turned off.
Max.
(1)
0.2
+85
Unit
V
°C
16/80 DocID030988 Rev 2
ISM303DAC Module specifications
2.4 Communication interface characteristics
2.4.1
Symbol t c(SPC) f c(SPC) t su(CS) t h(CS) t su(SI) t h(SI) t v(SO) t h(SO) t dis(SO)
SPI - serial peripheral interface
Subject to general operating conditions for Vdd and Top.
Table 6. SPI slave timing values
Parameter
SPI clock cycle
SPI clock frequency
CS setup time
CS hold time
SDI input setup time
SDI input hold time
SDO valid output time
SDO output hold time
SDO output disable time
Figure 3. SPI slave timing diagram
5
20
5
15
Min
100
Value
( 1 )
Max
10
50
5
50
Unit ns
MHz ns
&6
W
VX&6
W
F63&
W
K&6
63&
6',
W
VX6,
W
K6,
06%,1 /6%,1
W
Y62
W
K62
W
GLV62
6'2 06%287 /6%287
Note: Values are guaranteed at 10 MHz clock frequency for SPI with 3 wires, based on characterization results, not tested in production.
Measurement points are done at 0.2·Vdd_IO and 0.8·Vdd_IO, for both input and output ports.
DocID030988 Rev 2 17/80
80
Module specifications ISM303DAC
2.4.2 I
2
C - inter-IC control interface
Subject to general operating conditions for Vdd and Top.
Symbol
Table 7. I 2 C slave timing values (standard and fast mode)
I
2
C standard mode
(1)
Parameter
I
2
C fast mode
(1)
Min Max Min Max f
(SCL) t w(SCLL) t w(SCLH) t su(SDA)
SCL clock frequency
Low period of the SCL clock
High period of the SCL clock
Data setup time
0
4.7
4.0
250 t h(SDA) t h(ST) t su(SR) t su(SP)
Data hold time
START condition hold time
Setup time for a repeated START condition
Setup time for STOP condition
0
4
4.7
4 t w(SP:SR)
Bus free time between STOP and START condition 4.7
1. Data based on standard I 2 C protocol requirement, not tested in production.
100
3.45
0
1.3
0.6
100
0
0.6
0.6
0.6
1.3
400
0.9
Unit kHz
μ s ns
μ s
Symbol
Table 8. I
2
C slave timing values (fast mode plus and high speed)
Parameter
I
2
C fast mode plus
(1)
I
2
Min Max Min Max f
(SCL) t w(SCLL) t w(SCLH) t su(SDA) t h(SDA) t h(ST) t su(SR) t su(SP) t w(SP:SR)
SCL clock frequency
Low period of the SCL clock
High period of the SCL clock
Data setup time
Data hold time
START condition hold time
Setup time for a repeated START condition
Setup time for STOP condition
Bus free time between STOP and START condition
0
0.5
0.26
50
0
0.26
0.26
0.26
0.5
1. Data based on standard I
2
C protocol requirement, not tested in production.
1 0
0.16
0.06
10
0
0.16
0.16
0.16
3.4
0.07
Unit
MHz
μ s ns
μ s
18/80 DocID030988 Rev 2
ISM303DAC Module specifications
Figure 4. I 2 C slave timing diagram
67$57
W
VX65
W
Z6365
5(3($7('
67$57
67$57
6'$
W
VX6'$
W
K6'$
W
VX63
6723
6&/
Note:
W
K67
W
Z6&//
W
Z6&/+
Measurement points are done at 0.2·Vdd_IO and 0.8·Vdd_IO, for both ports.
DocID030988 Rev 2 19/80
80
Module specifications
2.5
Note:
Absolute maximum ratings
ISM303DAC
Stresses above those listed as “absolute maximum ratings” may cause permanent damage to the device. This is a stress rating only and functional operation of the device under these conditions is not implied. Exposure to maximum rating conditions for extended periods may affect device reliability.
Symbol
Table 9. Absolute maximum ratings
Ratings
Vdd Supply voltage
Vdd_IO I/O pins supply voltage
Vin
Input voltage on any control pin
(CS, SCL/SPC, SDA/SDI/SDO)
Maximum value
-0.3 to 2.2
-0.3 to 2.2
-0.3 to Vdd_IO +0.3
A
POW
A
UNP
M
EF
T
OP
T
STG
ESD
Acceleration (any axis, powered, Vdd = 1.8 V)
Acceleration (any axis, unpowered)
Maximum exposed field
Operating temperature range
Storage temperature range
Electrostatic discharge protection (HBM)
3000 for 0.5 ms
10000 for 0.2 ms
3000 for 0.5 ms
10000 for 0.2 ms
10000
-40 to +85
-40 to +125
2
Supply voltage on any pin should never exceed 2.2 V.
This device is sensitive to mechanical shock, improper handling can cause permanent damage to the part.
This device is sensitive to electrostatic discharge (ESD), improper handling can cause permanent damage to the part.
Unit
V
V
V g g g g gauss
°C
°C kV
20/80 DocID030988 Rev 2
ISM303DAC
3 Terminology
Terminology
3.1 Sensitivity
3.1.1
3.1.2
Linear acceleration sensor sensitivity
Sensitivity describes the gain of the sensor and can be determined by applying 1 g acceleration to it. As the sensor can measure DC accelerations this can be done easily by pointing the axis of interest towards the center of the Earth, noting the output value, rotating the sensor by 180 degrees (pointing to the sky) and noting the output value again. By doing so, ±1 g acceleration is applied to the sensor. Subtracting the larger output value from the smaller one, and dividing the result by 2, leads to the actual sensitivity of the sensor. This value changes very little over temperature and time. The sensitivity tolerance describes the range of sensitivities of a large population of sensors.
Magnetic sensor sensitivity
Sensitivity describes the ratio of the output digital data expressed in LSB units and the applied magnetic field expressed in mG (milligauss). It can be measured, for example, by applying a known magnetic field along one axis and measuring the digital output of the device.
3.2 Zero-
g
level
The zerog level offset (LA_TyOff) describes the deviation of an actual output signal from the ideal output signal if no acceleration is present. A sensor in a steady state on a horizontal surface will measure 0 g on the X-axis and 0 g on the Y-axis whereas the Z-axis will measure 1 g . The output is ideally in the middle of the dynamic range of the sensor
(content of OUT registers 00h, data expressed as two’s complement number). A deviation from the ideal value in this case is called zerog offset. Offset is to some extent a result of stress to MEMS sensor and therefore the offset can slightly change after mounting the sensor onto a printed circuit board or exposing it to extensive mechanical stress. Offset
changes little with temperature, see Table 3 “Zero-
g level change vs. temperature”
(LA_TCOff). The zerog level tolerance (TyOff) describes the standard deviation of the range of zerog levels of a population of sensors.
3.3 Zero-
gauss
level
Zerog auss level offset (M_TyOff) describes the deviation of an actual output signal from the ideal output if no magnetic field is present.
3.4 Magnetic dynamic range
The magnetic dynamic range of the sensor can be fully exploited when the applied magnetic field is entirely aligned with one of the sensitive axes of the sensor.
In presence of a stray field in the cross-axis direction, the exploitable magnetic dynamic range (maximum module) can decrease.
DocID030988 Rev 2 21/80
80
Functionality
4 Functionality
ISM303DAC
4.1 Magnetometer
4.1.1 Magnetometer power modes
The ISM303DAC magnetometer provides two different power modes: high-resolution and low-power modes.
The tables below summarize the magnetometer RMS noise values and current consumption in different product configurations.
When the low-pass filter is enabled, the bandwidth is reduced while noise performance is improved without any increase in power consumption.
CFG_REG_B_M[LPF] or
CFG_REG_B_M[OFF_CANC]
Table 10. RMS noise of operating modes
(CFG_REG_A_M [LP = 0]) high-resolution mode
BW [Hz] Noise RMS [m g ]
(CFG_REG_A_M [LP = 1]) low-power mode
BW [Hz] Noise RMS [m g ]
0 (disable)
1 (enable)
ODR/2
ODR/4
4.5
3
ODR/2
ODR/4
9
6
10
20
50
100
ODR
(Hz)
Table 11. Current consumption of operating modes
Current consumption
( μ A)
(CFG_REG_A_M
[LP] = 0) high-resolution
CFG_REG_B_M
[OFF_CANC] = 0
Current consumption
( μ A)
(CFG_REG_A_M
[LP] = 1) low-power
CFG_REG_B_M
[OFF_CANC] = 0
Current consumption
( μ A)
(CFG_REG_A_M
[LP] = 0) high-resolution
CFG_REG_B_M
[OFF_CANC] = 1
100
200
475
950
25
50
125
250
125
240
590
1180
Current consumption
( μ A)
(CFG_REG_A_M
[LP] = 1) low-power
CFG_REG_B_M
[OFF_CANC] = 1
55
105
255
505
22/80 DocID030988 Rev 2
ISM303DAC Functionality
The following table summarizes the turn-on time of the magnetometer in the two different power modes with the offset cancellation function enabled or disabled (see
Magnetometer offset cancellation ).
Operating mode
Table 12. Operating mode and turn-on time
Turn-on time
CFG_REG_A_M[LP] CFG_REG_A_M[OFF_CANC = 0] CFG_REG_A_M[OFF_CANC = 1]
0 (high-resolution)
1 (low-power)
9.4 ms
6.4 ms
9.4 ms + 1/ODR
6.4 ms + 1/ODR
The ISM303DAC offers single measurement mode in both high-resolution and low-power modes.
Single measurement mode is enabled by writing bits MD[1:0] to '01' in
.
In single measurement mode, once the measurement has been performed, the DRDY pin is set to high, data is available in the output register and the ISM303DAC is automatically configured in idle mode by setting the MD[1] bit to '1'.
Single measurement is independent of the programmed ODR but depends on the frequency at which the MD[1:0] bits are written by the microcontroller/application processor.
Maximum ODR frequency achievable in single mode measurement is given in the following table.
Table 13. Maximum ODR in single measurement mode (HR and LP modes)
Maximum ODR Power mode (CFG_REG_A_M[LP])
100 Hz
150 Hz
High resolution (LP = ‘0’)
Low power (LP = ‘1’)
In single measurement mode, for ODR < 10 Hz, current consumption can be calculated with the following formula:
(Current_consumption_10Hz - Current_consumption_in_power_down) / (10 Hz / ODR) +
Current_consumption_in_power_down
Where Current_consumption_in_power_down and Current_consumption_10Hz can be found, respectively, in
DocID030988 Rev 2 23/80
80
Functionality
4.1.2
ISM303DAC
Magnetometer offset cancellation
The ISM303DAC is based on AMR technology: a set pulse is needed to set an initial operating condition.
Offset cancellation is the result of performing a set and reset pulse in the magnetic sensor and it can be enabled to remove the intrinsic sensor offset.
The offset cancellation technique is defined as follows:
H out
=
H n
–
H
2 where H n
and H n-1
are two consecutive magnetic field measurements, one after a set pulse, the other after a reset pulse.
Considering a magnetic offset (H off
), the two magnetic field measurements are:
Set: H n
= H + H off
Reset: H n-1
= –H + H off
The offset is cancelled according to the offset cancellation technique:
H out
=
H
–
H
2
=
2H H
2
+
–
H
=
H
If the device is operating in Continous mode, the offset cancellation is enabled by setting the
OFF_CANC bit to 1 in CFG_REG_B_M (61h) . In this case, set/reset pulses are
continuously performed; a set pulse is applied to one measurement, a reset pulse is applied to the next measurement. If the offset cancellation is disabled (OFF_CANC = 0) and
Continuous mode is selected, the set pulse frequency can be configured by setting the
Set_FREQ bit in
CFG_REG_B_M (61h) . If Set_FREQ is set to 0, the set pulse is released
every 63 ODR, otherwise if Set_FREQ is set to 1, the set pulse is released only at power-on from Idle mode (a set of the magnetic sensor is performed anyway, even if the offset cancellation is disabled).
If the device is operating in Single mode, in order to enable the offset cancellation, both
OFF_CANC and OFF_CANC_ONE_SHOT bits must be set to 1 in CFG_REG_B_M (61h) .
Enabling these bits, the impulse polarity is inverted between a single read and the next one.
While offset cancellation is automatically managed by the device in Continuous mode, if this feature is enabled in Single mode, the user has to remove the offset manually using the formula below:
H out
=
H n
–
H
2
Offset cancellation using single reads is effective only if the reads are close in time, thus ensuring the offset does not drift between two consecutive reads.
24/80 DocID030988 Rev 2
ISM303DAC Functionality
In LSM303AH magnetometer interrupt signal generation is based on the comparison between data and a programmable threshold.
To enable the interrupt function, in INT_CTRL_REG_M register (63h) the "IEN" bit must be set to '1'.
In the LSM303AH the user can select the axis/axes in which the interrupt function can be enabled. In order to do this, the XIEN, YIEN, and ZIEN bits in
need be set properly.
The threshold value can be programmed by setting the
INT_THS_H_REG_M (66h) registers.
The threshold is expressed in absolute value as a 15-bit unsigned number. The threshold has the same sensitivity as the magnetic data.
When magnetic data exceeds the positive or the negative threshold, the interrupt signal is generated and the information about the type of interrupt is stored in the
INT_SOURCE_REG_M (64h) register. In particular, when magnetic data exceeds the
positive threshold the P_TH_S_axis bit is set to '1', while if data exceeds the negative threshold the N_TH_S_axis bit is set to '1'. If magnetic data lay between the positive and the negative thresholds, no interrupt signal is released.
Figure 5. Interrupt function
Two different approaches for the interrupt function are available:
Typical: comparison is between magnetic data read by the sensor and the programmable threshold;
Advanced: comparison is made between magnetic data after hard-iron correction and the programmable threshold.
These approaches are configurable by setting the INT_on_DataOFF bit in
.
DocID030988 Rev 2 25/80
80
Functionality ISM303DAC
If INT_on_DataOFF is set to '0' the typical approach is selected, otherwise if it is set to '1' the advanced approach is selected.
Two different interrupts are available:
Pulsed interrupt signal: it goes high when the magnetic data exceed one of the two thresholds and goes low when the magnetic data are between the two thresholds. This kind of interrupt is selected by setting the IEL bit in
Latched interrupt signal: it goes high when the data exceed one of the two thresholds but is reset only once the source register is read and not when the magnetic data returns between the two thresholds. This kind of interrupt is selected by setting the IEL bit in
to '1'.
The interrupt signal polarity can be set using the IEA bit in INT_CTRL_REG_M (63h) .
If IEA is set to '1' then the interrupt signal is active high, while if it is set to '0' the interrupt signal is active low.
In order to drive the interrupt signal from the DRDY pad, the INT_MAG_PIN bit in
CFG_REG_C_M (62h) must be set to '1'.
26/80 DocID030988 Rev 2
ISM303DAC
4.1.4
Functionality
Magnetometer hard-iron compensation
Hard-iron distortion occurs when a magnetic object is placed near the magnetometer and appears as a permanent bias in the sensor’s outputs.
The hard-iron correction consists of compensating magnetic data from hard-iron distortion.
The operation is defined as follows:
H out
= H read
– H
HI where:
H read is the generic uncompensated magnetic field data, as read by the sensor;
H
HI is the hard-iron distortion field;
H out is the compensated magnetic data.
The computation of the hard-iron distortion field should be performed by an external processor. After the computation of the hard iron-distortion field has been performed, the measured magnetic data can be compensated.
The ISM303DAC offers the possibility of storing hard-iron data inside six dedicated registers from 45h to 4Ah.
Each register contains eight bits so that the hard-iron data can be expressed as a 16-bit two’s complement number. The OFFSET_axis_REG_H registers contain the MSBs of the hard-iron data, while the OFFSET_axis_REG_L registers contain the LSBs.
Hard-iron data have the same format and weight of the magnetic output data. The hard-iron values stored in dedicated registers are automatically subtracted from the output data.
The self-test function is available for the magnetic sensor. When the magnetic self-test is enabled, a current is forced into a coil inside the device. This current will generate a magnetic field that will produce a variation of the magnetometer output signals. If the output signals change within the amplitude limits specified in
then the sensor is working properly and the parameters of the interface chip are within the defined specifications.
When the magnetometer self-test is activated, the sensor output level is given by the algebraic sum of the signals produced by the magnetic field acting on the sensor and by the forced current.
The self-test procedure is described in the following figure.
DocID030988 Rev 2 27/80
80
Functionality
28/80
Figure 6. Magnetometer self-test procedure
:ULWH&KWR&)*B5(*B$B0K
:ULWHKWR&)*B5(*B%B0K
:ULWHKWR&)*B5(*B&B0K
Æ ,QLWLDOL]H VHQVRUWXUQRQVHQVRU
Æ &203B7(03B(1 %'8&RQWLQXRXV&RQYHUVLRQPRGH
(QDEOHRIIVHWFDQFHOODWLRQ2'5 +]
3RZHUXSZDLWPVIRUVWDEOHRXWSXW
&KHFN=\[GD LQ67$786B5(*B0K± 0DJ'DWD5HDG\%LW
5HDG0DJ287;287<287=WRFOHDU=\[GD ELWLQUHJLVWHU
67$786B5(*B0K ZDLWIRUWKHILUVWVDPSOH Æ 'LVFDUGGDWD
5HDGWKHRXWSXWUHJLVWHUVDIWHUFKHFNLQJ=\[GD ELWWLPHV
:KHQ=\[GD
5HDG287;B/B5(*B0K287;B+B5(*B0K 6WRUHGDWDLQ287;B1267
5HDG287<B/B5(*B0$K287<B+B5(*B0%K 6WRUHGDWDLQ287<B1267
5HDG287=B/B5(*B0&K287=B+B5(*B0'K 6WRUHGDWDLQ287=B1267
7KHELWGDWDLVH[SUHVVHGLQWZR¶VFRPSOHPHQW
$YHUDJHWKHVWRUHGGDWDRQHDFKD[LV
:ULWHKWR&)*B5(*B&B0K
Æ (QDEOHVHOIWHVW
:DLWIRUPV
&KHFN=\[GD LQ67$786B5(*B0K± 0DJ'DWD5HDG\%LW
5HDG0DJ287;287<287=WRFOHDU=\[GD ELWLQUHJLVWHU
67$786B5(*B0K ZDLWIRUWKHILUVWVDPSOH Æ 'LVFDUGGDWD
5HDGWKHRXWSXWUHJLVWHUVDIWHUFKHFNLQJ=\[GD ELWWLPHV
:KHQ=\[GD
5HDG287;B/B5(*B0K287;B+B5(*B0K 6WRUHGDWDLQ287;B67
5HDG287<B/B5(*B0$K287<B+B5(*B0%K 6WRUHGDWDLQ287<B67
5HDG287=B/B5(*B0&K287=B+B5(*B0'K 6WRUHGDWDLQ287=B67
7KHELW GDWDLVH[SUHVVHGLQWZR¶VFRPSOHPHQW
$YHUDJHWKHVWRUHGGDWDRQHDFKD[LV
0LQ67B; _287;B67 287;B1267_ 0D[67B;
$1'
0LQ67B< _287<B67 287<B1267_ 0D[67B<
$1'
0LQ67B= _287=B67 287=B1267_ 0$;67B=
<(63$66 12)$,/
:ULWHKWR&)*B5(*B&B0K 'LVDEOHVHOIWHVW
:ULWHKWR&)*B5(*B$B0K ,GOHPRGH
ISM303DAC
DocID030988 Rev 2
ISM303DAC Functionality
4.2 Accelerometer
4.2.1 Accelerometer power modes
The ISM303DAC accelerometer provides two different power modes: high-resolution
(including high-frequency mode) and low-power modes.
The following tables summarize the selection of the different operating modes as well as the low-pass filter and current consumption.
Table 14. Accelerometer operating modes
CTRL1_A(ODR[3:1]) CTRL1_A(HF_ODR) ODR selection [Hz] Bit resolution
Accelerometer low-power mode
0000
1000
1001
1010
1011
1100
1101
1110
1111
Accelerometer high-resolution mode
-
-
-
-
-
-
-
-
-
0001
0010
0011
0100
0101
0110
0111
0101
0110
0111
0
1
0
0
1
1
-
-
-
12.5
25
50
100
200
400
800
1600
3200
6400
50
100
200
400
800
-
1
12.5
25
-
10
14
12
Mode
PD
LP
HR
HF
DocID030988 Rev 2 29/80
80
Functionality ISM303DAC
Table 15. Low-pass filter in low-power, high-resolution and high-frequency modes
ODR [Hz] LPF cutoff [Hz]
Low-power mode
High-resolution mode
800
400
200
100
50
25
12.5
50
25
12.5
1
800
400
200
100
High-frequency mode
6400
3200
1600
3200
355
177
88
44
22
11
5.5
2840
1420
710
1
12.5
25
50
100
200
400
800
1600
3200
6400
ODR (Hz)
Table 16. Current consumption of operating modes
Typical current consumption in high-resolution/high-frequency mode
[ μ A]
Typical current consumption in low-power mode
[ μ A]
-
162
4.5
6
7.5
10
16
26.5
48.5
92.5
30/80 DocID030988 Rev 2
ISM303DAC Functionality
The accelerometer sampling chain (
Figure 7: Accelerometer sampling chain
) is represented by a cascade of a few blocks: an ADC converter, a digital low-pass filter and a digital slope filter.
Figure 7. Accelerometer sampling chain
'LJLWDO
6ORSH)LOWHU
+3)
:DNHXS
'RXEOHWDS
$FWLYLW\
,QDFWLYLW\
'LJLWDO
/3)LOWHU
/3)
WR287UHJLVWHUV
RU),)2
$'&
'
2'5>@
)UHHIDOO
)'6B6/23(
&75/B$UHJLVWHU
The digital signal is filtered by a low-pass digital filter (LPF) whose cutoff frequency depends
on the selected accelerometer ODR, as shown in Table 17
.
Mode
LP
HR
HF
Table 17. Accelerometer LPF cutoff frequency
ODR selection [Hz] LPF cutoff [Hz]
800
12.5
25
50
100
200
400
800
1
12.5
25
50
100
200
400
1600
3200
6400
3200
5.5
11
22
44
88
177
355
3200
3200
3200
3200
3200
3200
3200
710
1420
2840
DocID030988 Rev 2 31/80
80
Functionality ISM303DAC
The selection of the signal (LPF or HPF) which is sent to the OUT registers is determined by the FDS_SLOPE bit of
CTRL2_A (21h) register. When it is logic ‘1’, the HPF signal is
selected, LPF otherwise.
The signal that is sent to the digital functions (wakeup, double-tap, activity/inactivity and 6D orientation) is always the HPF signal. Anti-aliasing filtering is guaranteed by the ADC sampling frequency and the digital LPF cutoff frequency. Anti-aliasing filtering is available in
HR/HF mode only. When the accelerometer is in LP mode, the circuitry is periodically turned on/off (reducing power consumption) with a fixed on-time and a period that is a function of the selected ODR. For this reason the LPF cutoff is fixed to 3.2 kHz, so the user must take care to select the proper ODR value Vs application sampling frequency in order to avoid aliasing (based on the noise characteristics of the system in use).
Accelerometer slope filter
As shown in
, the ISM303DAC device embeds a digital slope filter which is used for wakeup and single/double-tap features. The slope filter output data is computed using the following formula: slope(t n
) = [ acc(t n
) - acc(t n-1
) ] / 2
An example of a slope data signal is illustrated in Figure 8 .
Figure 8. Accelerometer slope filter
$&&(/(5$7,21
DFFW
Q
DFFW
Q
6ORSHW
Q
>DFFW
Q
DFFW
Q
@
6/23(
32/80
Slope filter bandwidth is ~ ODR/4 and its data is available in the output registers and FIFO
by setting the FDS_SLOPE bit of CTRL2_A (21h)
to '1'.
DocID030988 Rev 2
ISM303DAC
4.2.3
4.2.4
Functionality
Accelerometer 6D / 4D orientation detection
The ISM303DAC includes 6D / 4D orientation detection which applies only to the accelerometer.
In this configuration the interrupt is generated when the device is stable in a known direction. In 4D configuration, detection of the position of the Z-axis is disabled.
Accelerometer activity/inactivity function
The Activity/Inactivity recognition function allows reducing the power consumption of the system in order to develop new smart applications and is applicable only to the accelerometer block of the device.
When the Activity/Inactivity recognition function is activated, the ISM303DAC is able to automatically go to 12.5 Hz sampling rate and to wake up as soon as the interrupt event has been detected, increasing the output data rate and bandwidth.
With this feature the system may be efficiently switched from low-power mode to full performance depending on user-selectable positioning and acceleration events, thus ensuring power saving and flexibility.
The Activity/Inactivity recognition function is activated by writing the desired threshold in the
WAKE_UP_THS_A (33h) register. The high-pass filter is automatically enabled.
If the device is in Sleep (Inactivity) mode, when at least one of the axes exceeds the threshold in the
WAKE_UP_THS_A (33h) the device goes into Sleep-to-Wake (as Wake-
Up).
Activity/Inactivity threshold and duration can be configured in the control registers:
The self-test allows the user to check the sensor functionality without moving it. When the self-test is enabled, an actuation force is applied to the sensor, simulating a definite input acceleration. In this case the sensor outputs will exhibit a change in their DC levels which are related to the selected full scale through the device sensitivity. When the self-test is activated, the device output level is given by the algebraic sum of the signals produced by the acceleration acting on the sensor and by the electrostatic test-force. If the output signals change within the amplitude specified inside
, then the sensor is working properly and the parameters of the interface chip are within the defined specifications.
The self-test procedure is described in the following figure.
DocID030988 Rev 2 33/80
80
Functionality
34/80
Figure 9. Accelerometer self-test procedure
:ULWHKWR&75/B$K
Æ ,QLWLDOL]H6HQVRUWXUQRQVHQVRU
Æ 6HW%'8 2'5 +])6 J
3RZHUXSZDLWIRUPVIRUVWDEOHRXWSXW
&KHFN'5'<LQUHJLVWHU67$786B$K± $FF 'DWD5HDG\%LW
5HDG$FF 287;287<287=WRFOHDU'5'<ELWLQUHJLVWHU 67$786B$
K ZDLWIRUWKHILUVWVDPSOH Æ 'LVFDUGRXWSXWGDWD
5HDGWKHRXWSXWUHJLVWHUVDIWHUFKHFNLQJ'5'<ELWWLPHV
:KHQ'5'<
5HDG287B;B/B$K287B;B+B$K 6WRUHGDWDLQ287;B1267
5HDG287B<B/B$$K287B<B+B$%K 6WRUHGDWDLQ287<B1267
5HDG287B=B/B$&K287B=B+B$'K 6WRUHGDWDLQ287=B1267
7KH ELWGDWDOHIWMXVWLILHGLVH[SUHVVHGLQWZR¶VFRPSOHPHQW
$YHUDJHWKHVWRUHGGDWDRQHDFKD[LV
:ULWHKWR&75/B$K
Æ (QDEOH6HOI7HVW
:DLWIRUPV
&KHFN'5'<LQUHJLVWHU67$786B$K± $FF 'DWD5HDG\%LW
5HDG$FF 287;287<287=WRFOHDU'5'<ELWLQUHJLVWHU 67$786B$
K ZDLWIRUWKHILUVWVDPSOH Æ 'LVFDUGRXWSXWGDWD
5HDGWKHRXWSXWUHJLVWHUVDIWHUFKHFNLQJ'5'<ELWWLPHV
:KHQ'5'<
5HDG287B;B/B$K287B;B+B$K 6WRUHGDWDLQ287;B67
5HDG287B<B/B$$K287B<B+B$%K 6WRUHGDWDLQ287<B67
5HDG287B=B/B$&K287B=B+B$ 'K 6WRUHGDWDLQ287=B67
7KHELWGDWDOHIWMXVWLILHGLVH[SUHVVHGLQWZR¶VFRPSOHPHQW
$YHUDJHWKHVWRUHGGDWDRQHDFKD[LV
_0LQ67B;_ _287;B67287;B1267_ _0D[67B;_
$1'
_0LQ67B< _287<B67287<B1267_ _0D[67B<_
$1'
_0LQ67B=_ _287=B67287=B1267_ _0$;67B=_
<(63$66 12)$,/
:ULWHKWR&75/B$K 'LVDEOHVHOIWHVW
:ULWHKWR&75/B$K 'LVDEOHVHQVRU
DocID030988 Rev 2
ISM303DAC
ISM303DAC
4.2.6
Functionality
50
25
12.5
1
6400
3200
1600
800
400
200
100
Accelerometer data stabilization time vs. ODR setting
The data stabilization time required when an ODR change is applied in order to have valid usable data depends on the ODR selected and accelerometer setting.
The table below provides the number of samples to be discarded in order to obtain valid usable data for the accelerometer.
ODR [Hz]
Table 18. Number of samples to be discarded
HF HR
-
-
-
-
6
2
1
-
-
-
-
1
1
1
1
-
-
-
-
0
0
0
0
0
0
0
-
-
-
0
0
0
0
LP
The complete measurement chain is composed of a low-noise capacitive amplifier which converts the capacitive unbalancing of the MEMS sensor into an analog voltage using an analog-to-digital converter.
The acceleration and magnetic data may be accessed through an I
2
C/SPI interface, thus making the device particularly suitable for direct interfacing with a microcontroller.
The ISM303DAC features a data-ready signal which indicates when new sets of measured acceleration and magnetic data are available, thus simplifying data synchronization in the digital system that uses the device.
DocID030988 Rev 2 35/80
80
Functionality ISM303DAC
4.4 FIFO
The FIFO buffer applies only to the accelerometer. The ISM303DAC embeds 256 slots of
14-bit data FIFO for each of the three output channels, X, Y and Z of the acceleration module. This allows consistent power saving for the system, since the host processor does not need to continuously poll data from the sensor, but it can wake up only when needed and burst the significant data out from the FIFO.
The internal FIFO allows collecting 256 samples (14-bit size data) for each axis or storing the output of the module computation up to 768 samples (14-bit size data).
This buffer can work according to the following 5 different modes:
Bypass mode
FIFO mode
Continuous-to-FIFO
Bypass-to-Continuous
Continuous
Each mode is selected by the FIFO_MODE bits in the FIFO_CTRL_A (25h) register.
Programmable FIFO threshold status, FIFO overrun events and the number of unread samples stored are available in the
registers and can be set to generate dedicated interrupts on the INT1 and INT2 pins using the
CTRL4_A (23h) and CTRL5_A (24h) registers.
(FIFO_FTH) goes to '1' when the number of unread samples
FIFO_SAMPLES_A (30h) (Diff[8:0]) is greater than or equal to FTH
[7:0] in
If FTH [7:0] is equal to '0', FIFO_SRC_A (2Fh)
(FIFO_FTH) goes to '0'.
(FIFO_OVRN) is equal to '1' if a FIFO slot is overwritten.
and
FIFO_SAMPLES_A (30h) (Diff[8:0]) contain stored data levels of
unread samples. When Diff[8:0] is equal to '000000000', FIFO is empty. When Diff[8:0] is equal to '100000000', FIFO is full and the unread samples are 256.
To guarantee the correct acquisition of data during the switching into and out of FIFO mode, the first sample acquired must be discarded.
When the FIFO threshold status flag is '0'-logic, FIFO filling is lower than the threshold level and when '1'-logic, FIFO filling is equal to or higher than the threshold level.
In Bypass mode ( FIFO_CTRL_A (25h) (FMODE [2:0])= 000), the FIFO is not operational, no
data is collected in FIFO memory, and it remains empty with the only actual sample available in the output registers.
Bypass mode is also used to reset the FIFO when in FIFO mode.
For each channel only the first address is used. When new data is available, the old data is overwritten.
36/80 DocID030988 Rev 2
ISM303DAC Functionality
In FIFO mode (
FIFO_CTRL_A (25h) (FMODE [2:0])= 001) data from the X, Y and Z
channels are stored in the FIFO until it is full, when 256 unread samples are stored in memory, data collecting is stopped.
To reset the FIFO content, Bypass mode should be written in the
register, setting the FMODE [2:0] bits to '000'. After this reset command, it is possible to
restart FIFO mode, writing the value '001' in FIFO_CTRL_A (25h) (FMODE [2:0]).
The FIFO buffer can memorize 256 slots of X, Y and Z data.
Continuous mode ( FIFO_CTRL_A (25h) (FMODE[2:0] = 110) provides a continuous FIFO
update: when 256 unread samples are stored in memory, as new data arrives the oldest data is discarded and overwritten by the newer.
A FIFO threshold flag
(FIFO_FTH) is asserted when the number of unread samples in FIFO is greater than or equal to
It is possible to route
(FTH) to the INT1 pin by writing the INT1_FTH bit to '1' in register
or to the INT2 pin by writing the INT2_FTH bit to '1' in
.
If an overrun occurs, the oldest sample in FIFO is overwritten and the FIFO_OVR flag in
is asserted.
In order to empty the FIFO before it is full, it is also possible to pull from FIFO the number of unread samples available in
FIFO_SAMPLES_A (30h) (Diff[8:0]).
In Continuous-to-FIFO mode FIFO_CTRL_A (25h) (FMODE [2:0] = 011), FIFO operates in
Continuous mode and FIFO mode starts upon an internal trigger event. When the FIFO is full, data collecting is stopped.
Figure 10. Continuous-to-FIFO mode x i
,y i
,z i x i
,y i
,z i x
0 x
1 x
2 y
0 y
1 y
2 z
0 z
1 z
2 x
0 x
1 x
2 y
0 y
1 y
2 z
0 z
1 z
2 x
30 x
31 y
30 y
31 z
30 z
31 x
31 y
31 z
31
Continuous Mode
Trigger event
FIFO Mode
DocID030988 Rev 2 37/80
80
Functionality
Figure 11. Trigger event to FIFO for Continuous-to-FIFO mode
ISM303DAC
38/80 DocID030988 Rev 2
ISM303DAC Functionality
In Bypass-to-Continuous mode ( FIFO_CTRL_A (25h)
(FMODE[2:0] = '100'), data measurement storage inside FIFO starts in Continuous mode upon an internal trigger event, then the sample that follows the trigger is available in FIFO.
Figure 12. Bypass-to-Continuous mode x i
,y i
,z i empty x
0 x
1 x
2 i 0 y
1 y
2 z
0 z
1 z
2 x i
,y i
,z i x
0 x
1 x
2 y
0 y
1 y
2 z
0 z
1 z
2 x
30 x
31 y
30 y
31 z
30 z
31 x
31 y
31 z
31
Bypass Mode Continuous Mode
Trigger event
Figure 13. Trigger event to FIFO for Bypass-to-Continuous mode
DocID030988 Rev 2 39/80
80
Functionality ISM303DAC
4.4.6 Module-to-FIFO
When the MODULE_TO_FIFO bit in the
register is set to '1', the 14-bit magnitude of the vector of the current axes is sent as FIFO input instead of axes data. X-, Y- and Z-axis data are replaced with 3 times the adjacent data generated by the module routine, as shown in
Figure 14 , so a row of FIFO is written every 3 axes data ready.
The module routine must be previously enabled by writing to the FUNC_CTRL_A (3Fh)
register.
The module data in FIFO can be read as output data in the registers 28h-2Dh.
The ISM303DAC calculates the vector sum of the acceleration of the X-, Y-, Z-axis using the following formula: module (14-bit) = Sqrt(x
2
+y
2
+z
2
)
The implementation is based on an approximation of this formula (error below noise level).
, when module-to-FIFO is enabled, each row of FIFO contains 3 values of the module, related to 3 consecutive ODR.
Figure 14. Module-to-FIFO mode example
;
;
1
;
1
;
1
),)2GDWDVORWV
<
<
1
<
1
<
1
=
=
1
=
1
=
1
;
0RGXOH
1
0RGXOH
1
0RGXOH
1
),)2GDWDVORWV
<
0RGXOH
1
=
0RGXOH
1
0RGXOH
0RGXOH
1
1
0RGXOH
0RGXOH
1
1
The IC interface is factory calibrated for sensitivity (LA_So, M_GN), Zerog level (LA_TyOff) and Zerogauss level (M_TyOff).
The trim values are stored inside the device in nonvolatile memory. Anytime the device is turned on, the trim parameters are downloaded into the registers to be used during active operation. This allows using the device without further calibration.
40/80 DocID030988 Rev 2
ISM303DAC Application hints
Figure 15. ISM303DAC electrical connections
9GGB,2
& Q)
9GG
6&/63&
&6
5(6(59('
6'$6',6'2
7239,(:
& )
9GGB,2
9GG
*1'
,17B0$*'5'<
& Q)
& & Q)
*1'
'LJLWDOVLJQDOIURPWRVLJQDOFRQWUROOHU6LJQDO OHYHOVDUHGHILQHGE\SURSHUVHOHFWLRQRI9GGB,2
The device core is supplied through the Vdd line while the I/O pads are supplied through the
Vdd_IO line. Power supply decoupling capacitors (100 nF ceramic, 10 μ F aluminum) should be placed as near as possible to pin 9 of the device (common design practice).
It is possible to remove Vdd, maintaining Vdd_IO, without blocking the communication bus, in this condition the measurement chain is powered off.
The following recommendations apply to capacitor C1:
It must be connected as close as possible to pins 5 and 6 since very high current pulses flow from C1 to pin 5 and 6. This avoid problems caused by inductive effects due to the length of the copper strips.
It is highly recommended to use low ESR (max 200 mOhm)
The functionality of the device and the measured acceleration data are selectable and accessible through the I 2 C or SPI interfaces. When using the I 2 C, CS must be tied high (i.e. connected to Vdd_IO).
The functions, the threshold and the timing of the three interrupt pins (INT1_XL, INT2_XL, and INT_MAG/DRDY) can be completely programmed by the user through the I 2 C/SPI interface.
DocID030988 Rev 2 41/80
80
Application hints ISM303DAC
5
9
10
11
12
6
7
8
Pin#
1
2
3
4
Name
Table 19. Pin status
Function Status
SCL
SPC
CS
Reserved
SDA
SDI
SDO
C1
I
2
C serial clock (SCL)
SPI serial port clock (SPC)
I
2
C/SPI mode selection
(1: SPI idle mode / I
2
C communication enabled;
0: SPI communication mode / I
2
C disabled)
Default: input without pull-up
Default: input without pull-up
Reserved, connected to GND
I
2
C serial data (SDA)
SPI serial data input (SDI)
3-wire interface serial data output (SDO)
Default: (SDA) input without pull-up
Capacitor connection (C1 = 220 nF)
External cap, voltage forced by the device
0 V GND
INT_MAG/DRDY Magnetometer interrupt/data-ready signal
GND 0 V
Default: output high impedance
Vdd
Vdd_IO
INT2_XL
INT1_XL
Power supply
Power supply for I/O pins
Accelerometer interrupt 2
Accelerometer interrupt 1
Default: output forced to ground
Default: output forced to ground
Note: In order to program INT_MAG/DRDY as a push-pull output, write the INT_MAG bit to 1 in
5.2
The LGA package is compliant with the ECOPACK
®
, RoHS and “Green” standards.
It is qualified for soldering heat resistance according to JEDEC J-STD-020.
Land pattern and soldering recommendations are available at www.st.com
.
High-current wiring effects
High current in wiring and printed circuit traces can be culprits in causing errors in magnetic field measurements for compassing.
Conductor-generated magnetic fields will add to the Earth’s magnetic field, leading to errors in compass heading computation.
Keep currents higher than 10 mA a few millimeters away from the sensor IC.
42/80 DocID030988 Rev 2
ISM303DAC Digital interfaces
The registers embedded inside the ISM303DAC may be accessed through both the I 2 C and
SPI serial interfaces. The latter may be SW-configured to operate in 3-wire interface mode.
The serial interfaces are mapped to the same pins. To select/exploit the I 2 C interface, the
CS line must be tied high (i.e. connected to Vdd_IO).
Pin name
CS
SCL
SPC
SDA
SDI
SDO
Table 20. Serial interface pin description
Pin description
SPI enable
I
2
C/SPI mode selection (1: SPI idle mode / I
2
C communication enabled; 0: SPI communication mode / I
2
C disabled)
I
2
C serial clock (SCL)
SPI serial port clock (SPC)
I
2
C serial data (SDA)
SPI serial data input (SDI)
3-wire interface serial data output (SDO)
6.1 I
2
C serial interface
The ISM303DAC I
2
C is a bus slave. The I
2
C is employed to write data into registers whose content can also be read back.
The relevant I
2
C terminology is given in the table below.
Term
Transmitter
Receiver
Master
Slave
Table 21. I
2
C terminology
Description
The device which sends data to the bus
The device which receives data from the bus
The device which initiates a transfer, generates clock signals and terminates a transfer
The device addressed by the master
There are two signals associated with the I 2 C bus: the serial clock line (SCL) and the serial data line (SDA). The latter is a bidirectional line used for sending and receiving the data to/from the interface. Both the lines must be connected to Vdd_IO through an external pullup resistor. When the bus is free, both the lines are high.
The I 2 C interface is compliant with fast mode (400 kHz) I 2 C standards as well as with the normal mode.
DocID030988 Rev 2 43/80
80
Digital interfaces ISM303DAC
6.1.1 I
2
C operation
The transaction on the bus is started through a START (ST) signal. A START condition is defined as a high-to-low transition on the data line while the SCL line is held high. After this has been transmitted by the master, the bus is considered busy. The next byte of data transmitted after the start condition contains the address of the slave in the first 7 bits and the eighth bit tells whether the master is receiving data from the slave or transmitting data to the slave. When an address is sent, each device in the system compares the first seven bits after a start condition with its address. If they match, the device considers itself addressed by the master.
Data transfer with acknowledge is mandatory. The transmitter must release the SDA line during the acknowledge pulse. The receiver must then pull the data line LOW so that it remains stable low during the high period of the acknowledge clock pulse. A receiver which has been addressed is obliged to generate an acknowledge after each byte of data received.
The I 2 C embedded inside the magnetometer block of the ISM303DAC behaves like a slave device and the following protocol must be adhered to. After the start condition (ST) a slave address is sent, once a slave acknowledge (SAK) has been returned, an 8-bit sub-address
(SUB) is transmitted: the 7 LSb represent the actual register address.
The I 2 C embedded inside the accelerometer block of the ISM303DAC behaves like a slave device and the following protocol must be adhered to. After the start condition (ST) a slave address is sent. Once a slave acknowledge (SAK) has been returned, an 8-bit sub-address
(SUB) is transmitted: the 7 LSb represent the actual register address while the IF_ADD_INC bit in
CTRL2_A (21h) defines the increase in the address.
The slave address is completed with a Read/Write bit. If the bit was ‘1’ (Read), a repeated
START (SR) condition must be issued after the two sub-address bytes; if the bit is ‘0’ (Write) the master will transmit to the slave with direction unchanged.
SAD+read/write bit pattern is composed, listing all the possible configurations.
Master
Slave
ST
Table 22. Transfer when master is writing one byte to slave
SAD + W SUB DATA
SAK SAK SAK
SP
Master
Slave
ST
Table 23. Transfer when master is writing multiple bytes to slave
SAD + W SUB DATA DATA
SAK SAK SAK SAK
SP
Master
Table 24. Transfer when master is receiving (reading) one byte of data from slave
ST SAD + W SUB SR SAD + R NMAK
Slave SAK SAK SAK DATA
SP
44/80 DocID030988 Rev 2
ISM303DAC Digital interfaces
Table 25. Transfer when master is receiving (reading) multiple bytes of data from slave
Master ST SAD+W SUB SR SAD+R MAK MAK NMAK SP
Slave SAK SAK SAK DATA
DAT
A
DATA
Data are transmitted in byte format (DATA). Each data transfer contains 8 bits. The number of bytes transferred per transfer is unlimited. Data is transferred with the Most Significant bit
(MSb) first. If a receiver can’t receive another complete byte of data until it has performed some other function, it can hold the clock line SCL low to force the transmitter into a wait state. Data transfer only continues when the receiver is ready for another byte and releases the data line. If a slave receiver doesn’t acknowledge the slave address (i.e. it is not able to receive because it is performing some real-time function) the data line must be left high by the slave. The master can then abort the transfer. A low-to-high transition on the SDA line while the SCL line is high is defined as a STOP condition. Each data transfer must be terminated by the generation of a STOP (SP) condition.
In the presented communication format MAK is Master acknowledge and NMAK is No
Master Acknowledge.
Default address:
The accelerometer sensor slave address is 0011101b while magnetic sensor slave address is 0011110b.
The slave addresses are completed with a Read/Write bit. If the bit was ‘1’ (Read), a repeated START (SR) condition must be issued after the two sub-address bytes. If the bit is
‘0’ (Write) the master will transmit to the slave with direction unchanged. Table 26
and
explain how the SAD+Read/Write bit patterns are composed, listing all the possible configurations.
Linear acceleration sensor: the default (factory setting) 7-bit slave address is
0011101b.
Command
Read
Write
Table 26. SAD+Read/Write patterns
SAD[6:0] R/W
0011101
0011101
1
0
SAD+R/W
00111 011
00111 010
Magnetic field sensor: the default (factory setting) 7-bit slave address is 0011110b.
Command
Read
Write
Table 27. SAD + Read/Write patterns
SAD[6:0]
0011110
0011110
R/W
1
0
SAD + R/W
00111101 (3Dh)
00111100 (3Ch)
DocID030988 Rev 2 45/80
80
Digital interfaces
6.2 SPI bus interface
ISM303DAC
The ISM303DAC SPI is a bus slave. The SPI allows writing to and reading from the registers of the device.
The serial interface interacts with the application using 3 wires: CS , SPC , SDI and SDO
(refer to
Figure 16. Read and write protocol
&6
63&
6',
5:
$' $' $' $' $' $' $'
', ', ', ', ', ', ', ',
6'2
'2 '2 '2 '2 '2 '2 '2 '2
CS is the serial port enable and it is controlled by the SPI master. It goes low at the start of the transmission and goes back high at the end. SPC is the serial port clock and it is controlled by the SPI master. It is stopped high when CS is high (no transmission). SDI and
SDO are respectively the serial port data input and output. Those lines are driven at the falling edge of SPC and should be captured at the rising edge of SPC .
Both the read register and write register commands are completed in 16 clock pulses or in multiples of 8 in case of multiple read/write bytes. Bit duration is the time between two falling edges of SPC . The first bit (bit 0) starts at the first falling edge of SPC after the falling edge of CS while the last bit (bit 15, bit 23, ...) starts at the last falling edge of SPC just before the rising edge of CS .
bit 0 : RW bit. When 0, the data DI(7:0) is written into the device. When 1, the data DO(7:0) from the device is read. In latter case, the chip will drive SDO at the start of bit 8.
bit 1-7 : address AD(6:0). This is the address field of the indexed register.
bit 8-15 : data DI(7:0) (write mode). This is the data that is written into the device (MSb first).
bit 8-15 : data DO(7:0) (read mode). This is the data that is read from the device (MSb first).
In multiple read/write commands additional blocks of 8 clock periods will be added. For the accelerometer when the
(IF_ADD_INC) bit is ‘1’, the address used to read/write data is increased at every block.
The function and the behavior of SDI and SDO remain unchanged.
46/80 DocID030988 Rev 2
ISM303DAC
6.2.1 Accelerometer SPI write
Figure 17. Accelerometer SPI write protocol
Digital interfaces
&6
63&
6',
5:
$' $' $' $' $' $' $'
', ', ', ', ', ', ', ',
The SPI write command is performed with 16 clock pulses. A multiple byte write command is performed by adding blocks of 8 clock pulses to the previous one.
bit 0 : WRITE bit. The value is 0.
bit 1 -7 : address AD(6:0). This is the address field of the indexed register.
bit 8-15 : data DI(7:0) (write mode). This is the data that is written inside the device (MSb first).
bit 16-... : data DI(...-8). Additional data in multiple byte writes.
The accelerometer address auto increment is enabled by default (volatile bit IF_ADD_INC in
must be set to ‘0’ to disable).
Figure 18. Accelerometer multiple byte SPI write protocol (2-byte example)
&6
63&
6',
5:
$' $' $' $' $' $' $'
', ', ', ', ', ', ', ', ', ', ', ', ', ', ', ',
DocID030988 Rev 2 47/80
80
Digital interfaces
6.2.2 Accelerometer SPI read in 3-wire mode
ISM303DAC
3-wire mode is entered by setting the
CTRL2_A (21h) (SPI_ENABLE) bit equal to ‘1’ (SPI
serial interface read enable).
Figure 19. Accelerometer SPI read protocol in 3-wire mode
&6
63&
6',2
5:
$' $' $' $' $' $' $'
'2 '2 '2 '2 '2 '2 '2 '2
The SPI read command is performed with 16 clock pulses: bit 0 : READ bit. The value is 1.
bit 1-7 : address AD(6:0). This is the address field of the indexed register. bit 8-15 : data DO(7:0) (read mode). This is the data that is read from the device (MSb first).
A multiple read command is also available in 3-wire mode.
The accelerometer address auto increment is enabled by default (volatile bit IF_ADD_INC in
must be set to ‘0’ to disable).
48/80 DocID030988 Rev 2
ISM303DAC
6.2.3 Magnetometer SPI write
Figure 20. Magnetometer SPI write protocol
Digital interfaces
CS
SPC
SDI
CS
SPC
SDI
RW
AD6 AD5 AD 4 AD 3 AD2 AD 1 AD0
D I7 D I6 D I5 D I4 DI3 DI2 DI1 DI0
The SPI write command is performed with 16 clock pulses. The multiple byte write command is performed by adding blocks of 8 clock pulses to the previous one.
bit 0 : WRITE bit. The value is 0.
bit 1-7 : address AD(6:0). This is the address field of the indexed register. bit 8-15 : data DI(7:0) (write mode). This is the data that is written inside the device (MSb first).
bit 16-... : data DI(...-8). Further data in multiple byte writes.
Figure 21. Magnetometer multiple byte SPI write protocol (2-byte example)
RW
AD6 AD5 AD4 AD3 AD2 AD1 AD 0
DI7 D I6 DI5 D I4 DI3 DI2 DI1 DI0 DI15 D I1 4 DI13 D I1 2 DI11 DI10 DI9 DI8
DocID030988 Rev 2 49/80
80
Digital interfaces ISM303DAC
6.2.4
CS
Magnetometer SPI write in 3-wire mode
Figure 22. Magnetometer SPI read protocol in 3-wire mode
SPC
SDI/O
RW
AD6 AD5 AD 4 AD 3 AD2 AD1 AD 0
D O7 D O6 D O5 DO4 DO3 DO2 DO1 DO0
The SPI read command is performed with 16 clock pulses: bit 0 : WRITE bit. The value is 0.
bit 1-7 : address AD(6:0). This is the address field of the indexed register. bit 8-15 : data DO(7:0) (read mode). This is the data that is read from the device (MSb first).
The multiple read command is available in 3-wire mode.
50/80 DocID030988 Rev 2
ISM303DAC Register mapping
RESERVED
Module_8bit_A
RESERVED
WHO_AM_I_A
RESERVED
CTRL1_A
CTRL2_A
CTRL3_A
CTRL4_A
CTRL5_A
FIFO_CTRL_A
OUT_T_A
STATUS_A
OUT_X_L_A
OUT_X_H_A
OUT_Y_L_A
OUT_Y_H_A
OUT_Z_L_A
OUT_Z_H_A
FIFO_THS_A
FIFO_SRC_A
FIFO_SAMPLES_A
The table given below provides a list of the 8-bit registers embedded in the device and the corresponding addresses. Registers 00h through 3Fh are dedicated to the accelerometer while registers 40h through 6Fh are dedicated to the magnetometer.
Name Type
(1)
Table 28. Register map
Register address
Hex Binary
R
R
R
R
R/W
R/W
R/W
R/W
R
-
R/W
R/W
-
R
-
R
R
R
R
R/W
R
00001100
00001111
26
27
28
29
22
23
24
25
00-0B
0C
0D-0E
0F
10-1F
20
21
2A
2B
2C
2D
2E
2F
00100000
00100001
00100010
00100011
00100100
00100101
00100110
00100111
00101000
00101001
00101010
00101011
00101100
00101101
00101110
00101111
Default
output
-
01000011
-
00000000
00000100
00000000
00000000
00000000
00000000 output output output
00000000 output
Comment
RESERVED
RESERVED
Who I am ID
RESERVED
Control registers
FIFO control reg
Temp sensor output
Status data register
Output registers
TAP_6D_THS_A R/W
INT_DUR_A R/W
WAKE_UP_THS_A
R/W
R/W
30
31
32
33
00110000
00110001
00110010
00110011
00000000
00000000
00000000
00000000
FIFO registers
FIFO SRC
Unread samples stored in FIFO
TAP, 4D, 6D threshold
Interrupt duration
TAP/D-TAP selection, Inactivity
EN,
Wakeup threshold
DocID030988 Rev 2 51/80
80
Register mapping ISM303DAC
Name
Table 28. Register map (continued)
Register address
Type
(1)
Default
Hex Binary
WAKE_UP_DUR_A
FREE_FALL_A
STATUS_DUP_A
WAKE_UP_SRC_A
TAP_SRC_A
6D_SRC_A
RESERVED
FUNC_CTRL_A R/W
RESERVED
OFFSET_X_REG_L_M R/W
OFFSET_X_REG_H_M R/W
OFFSET_Y_REG_L_M R/W
OFFSET_Y_REG_H_M R/W
OFFSET_Z_REG_L_M R/W
OFFSET_Z_REG_H_M R/W
R
R
R
R/W
R/W
R
RESERVED
WHO_AM_I_M
RESERVED
CFG_REG_A_M
CFG_REG_B_M
CFG_REG_C_M
INT_CRTL_REG_M
INT_SOURCE_REG_M
INT_THS_L_REG_M
INT_THS_H_REG_M
STATUS_REG_M
OUTX_L_REG_M
OUTX_H_REG_M
OUTY_L_REG_M
OUTY_H_REG_M
OUTZ_L_REG_M
OUTZ_H_REG_M
RESERVED
R
R
R
R
R
R
R
R
R/W
R/W
R/W
R/W
R
R/W
R/W
1. R = read-only register, RW = readable/writable register
69
6A
6B
6C
65
66
67
68
6D
6E-6F
61
62
63
64
4B-4C
4F
50-5F
60
47
48
49
4A
3F
40-44
45
46
34
35
36
37
38
39
3A-3E
00110100
00110101
00110110
00110111
00111000
00111001
00000100
01000101
01000110
01000111
01001000
01001001
01001010
01001111
00000000
00000000 output output output output
00000000
00000000
00000000
00000000
00000000
00000000
00000000
01000000
01100000
01100011
01100100
00000011
01100001 00000000
01100010 00000000
11100000
01100101
01100110
01100111
01101000
00000000
00000000
01101001
01101010
01101010
01101100
01101101 output output output output output output
Comment
Wakeup duration
Free-fall config.
Status register
Wakeup SRC
TAP SRC
6D SRC
Magnetometer hard-iron registers
Who I am ID
Magnetometer configuration registers
Magnetometer interrupt configuration registers
Magnetometer output registers
52/80 DocID030988 Rev 2
ISM303DAC Register mapping
Registers marked as Reserved must not be changed. Writing to those registers may cause permanent damage to the device.
The content of the registers that are loaded at boot should not be changed. They contain the factory calibration values. Their content is automatically restored when the device is powered up.
DocID030988 Rev 2 53/80
80
Register description ISM303DAC
Module out value (r). This register is a read-only register.
Table 29. Module_8bit_A register
Module_7 Module_6 Module_5 Module_4 Module_3 Module_2 Module_1 Module_0
Table 30. Module_8bit_A register description
Module [7:0] Module output value (8-bit). Default value: 0
Who_AM_I register (r). This register is a read-only register. Its value is fixed at 43h.
0 1
Table 31. WHO_AM_I_A register default values
0 0 0 0 1 1
54/80
Control register 1 (r/w)
ODR3 ODR2 ODR1
Table 32. CTRL1_A register
ODR0 FS1 FS0 HF_ODR BDU
ODR [3:0]
FS [1:0]
HF_ODR
BDU
Table 33. CTRL1_A register description
Output data rate & power mode selection . Default value: 0000 (see
Full-scale selection. Default value: 00 (00: ±2 g ; 01: ±16 g ; 10: ±4 g ; 11: ±8 g )
High-frequency ODR mode enable. Default value: 0
Block data update. Default value: 0
(0: continuous update; 1: output registers not updated until MSB and LSB read)
ODR [3:0] is used to set the power mode and ODR selection. The following table lists the bit settings for power-down mode and each available frequency.
Table 34. ODR register setting: power down (PD) and low power (LP)
ODR[3:0] HF_ODR ODR selection [Hz] Bit resolution Mode
0000
1000
1001
1010
-
-
-
-
-
1
12.5
25
-
10
10
10
PD
LP
LP
LP
DocID030988 Rev 2
ISM303DAC Register description
Table 34. ODR register setting: power down (PD) and low power (LP) (continued)
ODR[3:0] HF_ODR ODR selection [Hz] Bit resolution Mode
1011
1100
1101
1110
1111
-
-
-
-
-
50
100
200
400
800
10
10
10
10
10
LP
LP
LP
LP
LP
Table 35. ODR register setting: high resolution (HR) and high frequencies (HF)
ODR[3:0] HF_ODR ODR selection [Hz] Bit resolution Mode
0001
0010
0011
0100
0101
0110
0111
0101
0110
0111
0
1
0
0
1
1
-
-
-
12.5
25
50
100
200
400
800
1600
3200
6400
14
14
14
12
14
14
14
14
12
12
HR
HR
HR
HF
HR
HR
HR
HR
HF
HF
The BDU bit is used to inhibit the update of the output registers until both upper and lower register parts are read. In default mode (BDU = ‘0’) the output register values are updated continuously. When the BDU is activated (BDU = ‘1’), the content of the output registers is not updated until both MSB and LSB are read which avoids reading values related to different sample times.
DocID030988 Rev 2 55/80
80
Register description ISM303DAC
Control register 2 (r/w)
BOOT
SOFT_
RESET
0
(1)
Table 36. CTRL2_A register
0
FDS_
SLOPE
IF_ADD_
INC
1. This bit must be set to ‘0’ for the correct operation of the device.
I2C_
DISABLE
SPI_
ENABLE
BOOT
Table 37. CTRL2_A register description
Reboot memory content. Default value: 0
(0: normal mode; 1: reboot memory content)
SOFT_RESET Soft reset acts as reset for all control registers, then goes to 0.
Default value: 0 (0: disabled; 1: enabled)
FDS_SLOPE
High-pass filter data selection on output register and FIFO. Default value: 0
(0: internal filter bypassed; 1: internal filter enabled on output register and FIFO)
IF_ADD_INC Register address automatically incremented during multiple byte access with a serial interface (I
2
C or SPI). Default value: 1 (0: disabled; 1: enabled)
I2C_DISABLE
Disable I
2
C communication protocol. Default value: 0
(0: SPI and I
2
C interfaces enabled; 1: I
2
C mode disabled)
SPI_ENABLE 3-wire SPI interface read enable. Default value: 0
0: SPI read disabled
1: SPI read enabled
56/80 DocID030988 Rev 2
ISM303DAC Register description
Control register 3 (r/w)
ST2 ST1
Table 38. CTRL3_A register
TAP_X_EN TAP_Y_EN TAP_Z_EN LIR H_LACTIVE PP_OD
0
0
1
1
ST [2:1]
Table 39. CTRL3_A register description
Self-test enable. Default value: 00
(00: Self-test disabled; Other: see
TAP_X_EN Tap recognition on X direction enable. Default value: 0
(0: disabled; 1: enabled)
TAP_Y_EN Tap recognition on Y direction enable. Default value: 0
(0: disabled; 1: enabled)
TAP_Z_EN Tap recognition on Z direction enable. Default value: 0
(0: disabled; 1: enabled)
LIR Latched Interrupt. Switches between latched ('1'-logic) and pulsed ('0'-logic) mode for function source signals and interrupts routed to pins (wakeup, tap, double-tap, tilt, pedometer, significant motion). Default value: 0
(0: interrupt request not latched; 1: interrupt request latched)
H_LACTIVE 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)
ST2
0
1
0
1
Table 40. Self-test mode selection
ST1 Self-test mode
Normal mode
Positive sign self-test
Negative sign self-test
Not allowed
DocID030988 Rev 2 57/80
80
Register description ISM303DAC
Control register 4 (r/w): interrupt 1 configuration
0
(1)
Table 41. CTRL4_A register
INT1_S_TAP INT1_WU INT1_FF INT1_TAP INT1_6D INT1_FTH INT1_DRDY
1. This bit must be set to '0' for correct device operation.
Table 42. CTRL4_A register description
INT1_S_TAP Single-tap recognition is routed on INT1 pad. Default value: 0
(0: disabled; 1: enabled)
INT1_WU
INT1_FF
INT1_TAP
INT1_6D
INT1_FTH
Wakeup recognition is routed on INT1 pad. Default value: 0
(0: disabled; 1: enabled)
Free-fall recognition is routed on INT1 pad. Default value: 0
(0: disabled; 1: enabled)
Double-tap recognition is routed on INT1 pad. Default value: 0
(0: disabled; 1: enabled)
6D recognition is routed on INT1 pad. Default value: 0
(0: disabled; 1: enabled)
FIFO threshold interrupt is routed on INT1 pad. Default value: 0
(0: disabled; 1: enabled)
INT1_DRDY Data-Ready is routed on INT1 pad. Default value: 0
(0: disabled; 1: enabled)
58/80
Control register 5 (r/w): interrupt 2 configuration
DRDY_
PULSED
INT2_
BOOT
Table 43. CTRL5_A register
INT2_
ON_INT1
0
(1)
1. This bit must be set to '0' for correct device operation.
0
INT2_
FTH
INT2_
DRDY
DRDY_
PULSED
Table 44. CTRL5_A register description
Data-ready interrupt mode selection: latched mode / pulsed mode. Default value: 0
(0: latched mode; 1: pulsed mode for data-ready)
INT2 _BOOT
INT2 _ON INT1 All signals routed on INT2 are also routed on INT1. Default value: 0
(0: disabled; 1: enabled)
INT2_FTH
Boot state routed on INT2 pad. Default value: 0
(0: disabled; 1: enabled)
FIFO threshold interrupt is routed on INT2 pad. Default value: 0
(0: disabled; 1: enabled)
INT2_DRDY Data-Ready is routed on INT2 pad. Default value: 0
(0: disabled; 1: enabled)
DocID030988 Rev 2
ISM303DAC Register description
FIFO control register 5 (r/w).
Table 45. FIFO_CTRL_A register
FMODE2 FMODE1 FMODE0 0
(1)
MODULE_
TO_FIFO
0
1. This bit must be set to '0' for correct device operation.
IF_CS_PU
_ DIS
FMODE [2:0]
MODULE_TO_
FIFO
Table 46. FIFO_CTRL_A register description
FIFO mode selection bits. Default: 000. For further details refer to Table 47.
When set to '1'-logic, module routine result is send to FIFO instead of X,Y,Z acceleration data
IF_CS_PU_DIS When '1'-logic disconnects pull-up in if_cs pad. Default: 0
When the FIFO has been enabled, data acquired has been stored at the accelerometer
ODR and the trigger signal of FIFO writing is the accelerometer internal data-ready.
FIFO data can be stored in default configuration where inertial data as been stored as X, Y,
Z data or in module configuration:
Default configuration: 256-level inertial data (14-bit stored data for X, Y, Z)
User-selectable: 768 module data (14-bit each module)
1
1
1
0
0
0
0
FMODE2 FMODE1
0
0
1
1
1
0
0
1
1
0
1
0
1
0
1
0
1
Table 47. FIFO mode selection
FMODE0 Mode
Bypass mode: FIFO turned off
FIFO mode: Stops collecting data when FIFO is full.
Reserved
Continuous-to-FIFO: Stream mode until trigger is deasserted, then FIFO mode
Bypass-to-Continuous: Bypass mode until trigger is deasserted, then FIFO mode
Reserved
Continuous mode: data If the FIFO is full, the new sample overwrites the older sample.
Reserved
DocID030988 Rev 2 59/80
80
Register description ISM303DAC
Temperature output register (r).
TEMP7 TEMP6
Table 48. OUT_T_A register
TEMP5 TEMP4 TEMP3 TEMP2
Temp [7:0]
TEMP1 TEMP0
Table 49. OUT_T_A register description
Temperature sensor output data.
The value is expressed as two’s complement sign. Sensitivity = 1 °C/LSB
0 LSB represents T=25 °C ambient.
Status register (r)
FIFO_THS WU_IA
Table 50. STATUS_A register
SLEEP_
STATE
DOUBLE_
TAP
SINGLE_
TAP
6D_IA FF_IA DRDY
Table 51. STATUS_A register description
FIFO_THS FIFO threshold status flag.
(0: FIFO filling is lower than threshold level; 1: FIFO filling is equal to or higher than the threshold level.)
WU_IA
SLEEP_
STATE
DOUBLE_
TAP
SINGLE_
TAP
6D_IA
Wakeup event detection status.
(0: WU event not detected; 1: Wakeup event detected)
Sleep event status.
(0: Sleep event not detected; 1: Sleep event detected)
Double-tap event status
(0: Double-tap event not detected; 1: Double-tap event detected)
Single-tap event status
(0: Single-tap event not detected; 1: Single-tap event detected)
Source of change in position portrait/landscape/face-up/face-down.
(0: no event detected; 1: a change in position detected)
FF_IA
DRDY
Free-fall event detection status.
(0: free-fall event not detected; 1: free-fall event detected)
Data-ready status.
(0: not ready; 1: X-, Y- and Z-axis new data available)
60/80 DocID030988 Rev 2
ISM303DAC Register description
X-axis LSB output register (r)
X_L7 X_L6
Table 52. OUT_X_L_A register default values
X_L5
(2)
X_L4
(2)
1. If 12-bit mode is enabled, this bit is set to 0.
2. If 10-bit mode is enabled, this bit is set to 0.
X_L3
X_L2
(1)(2)
0 0
The 8 least significant bits of linear acceleration sensor X-axis output. Together with the
register it forms the output value expressed as a 16-bit word in 2's complement.
X-axis MSB output register (r)
X_H7 X_H6
Table 53. OUT_X_H_A register default values
X_H5 X_H4 X_H3 X_H2 X_H1 X_H0
The 8 most significant bits of linear acceleration sensor X-axis output. Together with the
OUT_X_L_A (28h) register it forms the output value expressed as a 16-bit word in 2's
complement.
Y-axis LSB output register (r)
Y_L7 Y_L6
Table 54. OUT_Y_L_A register default values
Y_L5
(2)
Y_L4
(2)
1. If 12-bit mode is enabled, this bit is set to 0.
2. If 10-bit mode is enabled, this bit is set to 0.
Y_L3
(1)(2)
Y_L2
(1)(2)
0 0
The 8 least significant bits of linear acceleration sensor Y-axis output. Together with the
OUT_Y_H_A (2Bh) register it forms the output value expressed as a 16-bit word in 2's
complement.
Y-axis MSB output register (r)
Y_H7 Y_H6
Table 55. OUT_Y_H_A register default values
Y_H5 Y_H4 Y_H3 Y_H2 Y_H1 Y_H0
The 8 most significant bits of linear acceleration sensor Y-axis output. Together with the
OUT_Y_L_A (2Ah) register it forms the output value expressed as a 16-bit word in 2's
complement.
DocID030988 Rev 2 61/80
80
Register description ISM303DAC
Z-axis LSB output register (r)
Z_L7 Z_L6
Table 56. OUT_Z_L_A register default values
Z_L5
(2)
Z_L4
(2)
1. If 12-bit mode is enabled, this bit is set to 0.
2. If 10-bit mode is enabled, this bit is set to 0.
Z_L3
Z_L2
(1)(2)
0 0
The 8 least significant bits of linear acceleration sensor Z-axis output. Together with the
OUT_Z_H_A (2Dh) register it forms the output value expressed as a 16-bit word in 2's
complement.
Z-axis MSB output register (r)
Z_H7 Z_H6
Table 57. OUT_Z_H_A register default values
Z_H5 Z_H4 Z_H3 Z_H2 Z_H1 Z_H0
The 8 most significant bits of linear acceleration sensor Z-axis output. Together with the
OUT_Z_L_A (2Ch) register it forms the output value expressed as a 16-bit word in 2's
complement.
8.17 FIFO_THS_A
FIFO threshold level setting (r/w).
FTH7 FTH6
Table 58. FIFO_THS_A register
FTH5 FTH4 FTH3 FTH2 FTH1 FTH0
FIFO_SRC register (r)
FTH FIFO OVR
Table 59. FIFO_SRC_A register
DIFF8 -
62/80 DocID030988 Rev 2
ISM303DAC
FTH
OVR
DIFF8
Register description
Table 60. FIFO_SRC register description
FIFO threshold status.
(0: FIFO filling is lower than FTH level; 1: FIFO filling is equal to or higher than threshold level)
FIFO overrun status. (0: FIFO is not completely filled; 1: FIFO is completely filled and at least one sample has been overwritten)
Concatenated with FIFO_SAMPLES_A (30h) register, it represents the number of
unread samples stored in FIFO. (000000000 = FIFO empty; 100000000 = FIFO full, 256 unread samples).
FIFO_SAMPLES control register (r)
DIFF7 DIFF6
Table 61. FIFO_SAMPLES_A register
DIFF5 DIFF4 DIFF3 DIFF2
DIFF [7:0]
DIFF1 DIFF0
Table 62. FIFO_SAMPLES_A register description
Concatenated with DIFF8 bit in FIFO_SRC_A (2Fh) register, it represents the
number of unread samples stored in FIFO. (000000000 = FIFO empty;
100000000 = FIFO full, 256 unread samples).
4D configuration enable and TAP threshold configuration (r/w)
Table 63. TAP_6D_THS_A register
4D_EN 6D_THS1 6D_THS0
TAP_
THS4
TAP_
THS3
TAP_
THS2
TAP_
THS1
4D_EN
6D_THS [1:0]
Table 64. TAP_6D_THS_A register description
4D detection portrait/landscape position enable.
(0: no position detected;
1: portrait/landscape detection and face-up/face-down position enabled).
Thresholds for 4D/6D function @ FS=2 g (refer to
TAP_THS [4:0] Threshold for TAP recognition @ FS=2 g
TAP_
THS0
6D_THS1
0
0
1
1
Table 65. 4D/6D threshold setting FS @ 2 g
6D_THS0 Threshold decoding (degrees)
0
1
0
1
6 (80 degrees)
11 (70 degrees)
16 (60 degrees)
21 (50 degrees)
DocID030988 Rev 2 63/80
80
Register description ISM303DAC
Interrupt duration register (r/w)
LAT3 LAT2
Table 66. INT_DUR_A register
LAT1 LAT0 QUIET1 QUIET0 SHOCK1 SHOCK0
LAT [3:1]
QUIET [1:0]
SHOCK [4:0]
Table 67. INT_DUR_A register description
Duration of maximum time gap for double-tap recognition. When double-tap recognition is enabled, this register expresses the maximum time between two successive detected taps to determine a double-tap event.
1 LSB = 32 TODR.
Expected quiet time after a tap detection: this register represents the time after the first detected tap in which there must not be any over-threshold event.
1 LSB = 4 TODR.
Maximum duration of over-threshold event: this register represents the maximum time of an over-threshold signal detection to be recognized as a tap event.
1 LSB = 8 TODR
Wakeup threshold register (r/w)
SINGLE_
DOUBLE_
TAP
SLEEP_
ON
Table 68. WAKE_UP_THS_A register
WU_
THS_ 5
WU_
THS_4
WU_
THS_3
WU_
THS 2
SINGLE_
DOUBLE_
TAP
SLEEP_ON
WU_THS [5:0]
Table 69. WAKE_UP_THS_A register description
Double/single-tap event detection:
(0: double-tap event detection; 1: single-tap event detection)
Sleep (inactivity) enable
(0: sleep disabled; 1: sleep enabled)
Wakeup threshold
WU_
THS 1
WU_
THS 0
64/80 DocID030988 Rev 2
ISM303DAC Register description
Wakeup and sleep duration configuration register (r/w)
Table 70. WAKE_UP_DUR_A register
FF_DUR5 WU_DUR1 WU_DUR0
INT1_
FSS7
SLEEP_
DUR3
SLEEP_
DUR2
SLEEP_
DUR1
SLEEP_
DUR0
FF DUR5
Table 71. WAKE_UP_DUR_A register description
Free-fall duration. In conjunction with FF_DUR [4:0] bit in FREE_FALL_A
register. 1 LSB = 1 TODR
Wakeup duration. 1 LSB = 1 TODR WU_DUR [1:0]
INT1_FSS7 FF interrupt is routed on INT1 pad
(0: disabled; 1: enabled)
SLEEP_DUR[5:0] Duration to go in sleep mode. 1 LSB = 512 TODR
Free-fall duration and threshold configuration register (r/w)
Table 72. FREE_FALL_A register
FF_DUR4 FF_DUR3 FF_DUR2 FF_DUR1 FF_DUR0 FF_THS2 FF_THS1 FF_THS0
FF_DUR [4:0]
FF_THS [2:0]
Table 73. FREE_FALL_A register description
Free-fall duration. In conjunction with FF_DUR5 bit in WAKE_UP_DUR_A (34h)
register. 1 LSB = 1 TODR.
Free-fall threshold @ FS = 2 g (refer to
FF_THS1
0
0
0
1
1
0
1
1
Table 74. FREE_FALL_A threshold decoding @ 2 g FS
FF_THS1 FF_THS0 Threshold decoding (degrees)
0 0 5
0
1
1
1
0
0
1
1
0
1
1
0
1
0
13
15
16
10
11
7
8
DocID030988 Rev 2 65/80
80
Register description ISM303DAC
Event detection status register (r)
OVR WU_IA
Table 75. STATUS_DUP_A register
SLEEP_
STATE
DOUBLE_
TAP
SINGLE_
TAP
6D_IA FF_IA DRDY
OVR
WU_IA
SLEEP_
STATE
DOUBLE_
TAP
SINGLE_
TAP
6D_IA
FF_IA
DRDY
Table 76. STATUS_DUP_A register description
FIFO overrun status flag.
(0: FIFO filling is not completely filled; 1: FIFO is completely filled and at least one sample has been overwritten)
Wakeup event detection status.
(0: WU event not detected; 1: Wake up event detected)
Sleep event status.
(0: Sleep event not detected; 1: Sleep event detected)
Double-tap event status:
(0: Double-tap event not detected; 1: Double-tap event detected)
Single-tap event status:
(0: Single-tap event not detected; 1: Single-tap event detected)
Source of change in position portrait/landscape/face-up/face-down.
(0: no event detected; 1: a change in position is detected)
Free-fall event detection status.
(0: free-fall event not detected; 1: free-fall event detected)
Data-ready status.
(0: not ready; 1: X-, Y- and Z-axis new data available)
66/80 DocID030988 Rev 2
ISM303DAC Register description
Wakeup source register (r)
-
Table 77. WAKE_UP_SRC_A register
FF_IA
SLEEP
STATE IA
WU_IA X_WU Y_WU
FF_IA
SLEEP
STATE IA
WU_IA
X_WU
Y_WU
Z_WU
Table 78. WAKE_UP_SRC_A register description
Free-fall event detection status.
(0: FF event not detected; 1: FF event detected)
Sleep event status.
(0: Sleep event not detected; 1: Sleep event detected)
Wakeup event detection status.
(0: Wakeup event not detected; 1: Wakeup event is detected)
Wakeup event detection status on X-axis.
(0: Wakeup event on X not detected; 1: Wakeup event on X-axis is detected)
Wakeup event detection status on Y-axis.
(0: Wakeup event on Y not detected; 1: Wake up event on Y-axis is detected)
Wakeup event detection status on Z-axis.
(0: Wakeup event on Z not detected; 1: Wake up event on Z-axis is detected)
Z_WU
TAP source register (r)
TAP_IA
Table 79. TAP_SRC_A register
SINGLE
TAP
DOUBLE
TAP
TAP SIGN X_TAP Y_TAP Z_TAP
TAP_IA
Table 80. TAP_SRC_A register description
TAP event status.
(0: Tap event not detected; 1: Tap event detected)
SINGLE
TAP
DOUBLE
TAP
TAP_SIGN Sign of acceleration detected by tap event.
(0: positive sign of acceleration detected; 1: negative sign of acceleration detected).
X_TAP Tap event detection status on X-axis.
(0: Tap event on X not detected; 1: Tap event on X-axis is detected)
Y_TAP
Single-tap event status.
(0: Single-tap event not detected; 1: Single-tap event detected)
Double-tap event status.
(0: Double-tap event not detected; 1: Double-tap event detected)
Z_TAP
Tap event detection status on Y-axis.
(0: Tap event on Y not detected; 1: TAP event on Y-axis is detected)
Tap event detection status on Z-axis.
(0: Tap event on Z not detected; 1: Tap event on Z-axis is detected)
DocID030988 Rev 2 67/80
80
Register description ISM303DAC
YL
XH
XL
6D_IA
ZH
ZL
YH
6D source register (r)
6D_IA ZH
Table 81. 6D_SRC_A register
ZL YH YL
Table 82. 6D_SRC_A register description
Source of change in position portrait/landscape/face-up/face-down.
(0: no event detected; 1: a change in position is detected)
ZH overthreshold
(0: ZH does not exceed the threshold; 1: ZH is over the threshold)
ZL overthreshold
(0: ZL does not exceed the threshold; 1: ZL is over the threshold)
YH overthreshold
(0: YH does not exceed the threshold; 1: YH is over the threshold)
YL overthreshold
(0: YL does not exceed the threshold; 1: YL is over the threshold)
XH overthreshold:
(0: XH does not exceed the threshold; 1: XH is over the threshold)
XL overthreshold
(0: XL does not exceed the threshold; 1: XL is over the threshold)
XH XL
Functional source register (r)
-
Table 83. FUNC_SRC_A register
0
MODULE_
READY
-
MODULE_READY
Table 84. FUNC_SRC_A register description
Module status.
(0: new module data not available, 1: new module data available)
68/80 DocID030988 Rev 2
ISM303DAC Register description
Functional control register (r/w)
0
(1)
0
Table 85. FUNC_CTRL_A register
MODULE_
ON
0
0
1. This bit must be set to '0' for the correct operation of the device.
MODULE_ON
Table 86. FUNC_CTRL_A register description
Module processing enable. Default value: 0
(0: disabled; 1: module)
0
8.31 OFFSET_X_REG_L_M (45h) and OFFSET_X_REG_H_M (46h)
These registers comprise a 16-bit register and represent X hard-iron offset in order to compensate environmental effects (data in two’s complement). These values act on the magnetic output data value in order to delete the environmental offset.
8.32 OFFSET_Y_REG_L_M (47h) and OFFSET_Y_REG_H_M (48h)
These registers comprise a 16-bit register and represent Y hard-iron offset in order to compensate environmental effects (data in two’s complement). These values act on the magnetic output data value in order to delete the environmental offset.
8.33 OFFSET_Z_REG_L_M (49h) and OFFSET_Z_REG_H_M (4Ah)
These registers comprise a 16-bit register and represent Z hard-iron offset in order to compensate environmental effects (data in two’s complement). These values act on the magnetic output data value in order to delete the environmental offset.
The identification register is used to identify the device (read-only register).
0 1 0 0 0 0 0 0
DocID030988 Rev 2 69/80
80
Register description ISM303DAC
The configuration register is used to configure the output data rate and the measurement configuration.
COMP_
TEMP_EN
Table 87. CFG_REG_A_M register
REBOOT SOFT_RST LP ODR1 ODR0 MD1 MD0
COMP_
TEMP_EN
(1)
REBOOT
SOFT_RST
LP
ODR[1:0]
MD[1:0]
Table 88. CFG_REG_A_M register description
Enable the magnetometer temperature compensation. Default value: 0
(0: temperature compensation disabled; 1: temperature compensation enabled)
Reboot magnetometer memory content. Default value: 0
(0: normal mode; 1: reboot memory content)
When this bit is set, the configuration registers and user registers are reset.
Flash registers keep their values.
Low-power mode enable. Default: 0
0: high-resolution mode 1: low-power mode enabled
Output data rate configuration (see
Table 89: Output data rate configuration )
Mode select bit. These bits select the mode of operation of the device (see
1. For proper operation, this bit must be set to '1'.
0
1
1
ODR1
1
1
0
0
MD1
0
1
0
1
Table 89. Output data rate configuration
ODR0 ODR (Hz)
0
1
0
1
10 (default)
20
50
100
MD0
0
Table 90. System mode
Mode
Continuous mode. In continuous mode the device continuously performs measurements and places the result in the data register.
The data-ready signal is generated when a new data set is ready to be read. This signal can be available on the external pin by setting the INT_MAG bit in
.
Single mode. When single mode is selected, the device performs a single measurement, sets DRDY high and returns to idle mode.
Mode register return to idle mode bit values.
Idle mode. Device is placed in idle mode. I
2
C and SPI active.
Idle mode. Device is placed in idle mode. I
2
C and SPI active.
70/80 DocID030988 Rev 2
ISM303DAC Register description
0 0 0
Table 91. CFG_REG_B_M register
OFF_
CANC_
ONE_
SHOT
INT_on_
DataOFF
Set_FREQ OFF_CANC LPF
OFF_CANC_
ONE_SHOT
INT_on_
DataOFF
Set_FREQ
OFF_CANC
LPF
Table 92. CFG_REG_B_M register description
Enables offset cancellation in single measurement mode. The OFF_CANC bit must be set to 1 when enabling offset cancellation in single measurement mode.
0: offset cancellation in single measurement mode disabled;
1: offset cancellation in single measurement mode enabled.
If ‘1’, the interrupt block recognition checks data after the hard-iron correction to discover the interrupt.
Selects the frequency of the set pulse.
0: set pulse is released every 63 ODR;
1: set pulse is released only at power-on after PD condition.
Enables offset cancellation.
Low-pass filter enable (see Table 93
)
0: digital filter disabled; 1: digital filter enabled
Table 93. Digital low-pass filter
CFG_REG_B[LPF]
0 (disable)
1 (enable)
BW [Hz]
ODR/2
ODR/4
DocID030988 Rev 2 71/80
80
Register description ISM303DAC
0
INT_MAG
_PIN
Table 94. CFG_REG_C_M register
I2C_DIS BDU BLE
1. This bit must be set to ‘0’ for the correct operation of the device.
0
(1)
Self_test INT_MAG
Table 95. CFG_REG_C_M register description
INT_MAG_PIN
If '1', the INTERRUPT signal (INT bit inside INT_SOURCE_REG_M (64h) is
driven on INT_MAG_PIN.
I2C_DIS If ‘1’, the I
2
C interface is inhibited. Only the SPI interface can be used.
BDU
BLE
Self_test
INT_MAG
If enabled, reading of incorrect data is avoided when the user reads asynchronously. In fact if the read request arrives during an update of the output data, a latch is possible, reading incoherent high and low parts of the same register. Only one part is updated and the other one remains old.
If ‘1’, an inversion of the low and high parts of the data occurs.
If ‘1’, the self-test is enabled.
If ‘1’, the DRDY pin is configured as a digital output.
72/80
XIEN
YIEN
ZIEN
IEA
The interrupt control register is used to enable and to configure the interrupt recognition.
XIEN YIEN
Table 96. INT_CRTL_REG_M register
ZIEN 0
(1)
0
1. This bit must be set to ‘0’ for the correct operation of the device.
IEA IEL IEN
IEL
IEN
Table 97. INT_CTRL_REG_M register description
Enables the interrupt recognition for the X-axis. Default: 0
1: enabled; 0: disabled.
Enables the interrupt recognition for the Y-axis. Default: 0
1: enabled; 0: disabled.
Enables the interrupt recognition for the Z-axis. Default: 0
1: enabled; 0: disabled.
Controls the polarity of the INT bit (
INT_SOURCE_REG_M (64h) ) when an interrupt
occurs. Default: 0
If IEA = 0, then INT = 0 signals an interrupt
If IEA = 1, then INT = 1 signals an interrupt
Controls whether the INT bit (
INT_SOURCE_REG_M (64h) ) is latched or pulsed.
Default: 0
If IEL = 0, then INT is pulsed.
If IEL = 1, then INT is latched.
Once latched, INT remains in the same state until INT_SOURCE_REG_M (64h) is read.
Interrupt enable. When set, enables the interrupt generation. The INT bit is in
. Default: 0
DocID030988 Rev 2
ISM303DAC Register description
When interrupt latched is selected, reading this register resets all the bits in this register.
P_TH_S_
X
P_TH_S_
Y
Table 98. INT_SOURCE_REG_M register
P_TH_S_
Z
N_TH_S_
X
N_TH_S_
Y
N_TH_S_
Z
MROI INT
P_TH_S_X
P_TH_S_Y
P_TH_S_Z
N_TH_S_X
N_TH_S_Y
N_TH_S_Z
MROI
INT
Table 99. INT_SOURCE_REG_M register description
X-axis value exceeds the threshold positive side
Y-axis value exceeds the threshold positive side
Z-axis value exceeds the threshold positive side
X-axis value exceeds the threshold negative side
Y-axis value exceeds the threshold negative side
Z-axis value exceeds the threshold negative side
MROI flag generation is alway enabled.This flag is reset by reading
This bit signals when the interrupt event occurs.
This register contains the least significant bits of the threshold value chosen for the interrupt.
TH7 THS6
Table 100. INT_THS_L_REG_M register
TH5 TH4 TH3 TH2 TH1 TH0
TH[7:0]
Table 101. INT_THS_L_REG_M register description
Threshold value for the interrupt.
This register contains the most significant bits of the threshold value chosen for the interrupt.
TH15 THS14
Table 102. INT_THS_H_REG_M register
TH13 TH12 TH11 TH10 TH9 TH8
TH[15:8]
Table 103. INT_THS_H_REG_M register description
Threshold value for the interrupt.
These registers set the threshold value for the output to generate the interrupt (INT bit in
INT_SOURCE_REG_M (64h) ). This threshold is common to all three (axes) output values
and is unsigned unipolar. The threshold value is correlated to the current gain and it is unsigned because the threshold is considered as an absolute value but crossing the threshold is detected for both positive and negative sides.
DocID030988 Rev 2 73/80
80
Register description ISM303DAC
The status register is an 8-bit read-only register. This register is used to indicate device status. SR0 through SR7 indicate bit locations, with SR denoting the bits that are in the status register. SR7 denotes the first bit of the data stream.
Zyxor zor
Table 104. STATUS_REG_M register yor xor Zyxda zda yda xda
Zyxor zor yor xor
Zyxda zda yda xda
Table 105. STATUS_REG_M register description
X-, Y- and Z-axis data overrun. Default value: 0
(0: no overrun has occurred; 1: a new set of data has overwritten the previous set).
Z-axis data overrun. Default value: 0
(0: no overrun has occurred; 1: new data for the Z-axis has overwritten the previous data).
Y-axis data overrun. Default value: 0
(0: no overrun has occurred; 1: new data for the Y-axis has overwritten the previous data).
X-axis data overrun. Default value: 0
(0: no overrun has occurred; 1: new data for the X-axis has overwritten the previous data).
X-, Y- and Z-axis new data available. Default value: 0
(0: a new set of data is not yet available; 1: a new set of data is available).
Z-axis new data available. Default value: 0
(0: a new data for the Z-axis is not yet available; 1: a new data for the Z-axis is available)
Y-axis new data available. Default value: 0
(0: a new data for the Y-axis is not yet available; 1: a new data for the Y-axis is available)
X-axis new data available. Default value: 0
(0: a new data for the X-axis is not yet available; 1: a new data for the X-axis is available)
8.43 OUTX_L_REG_M, OUTX_H_REG_M (68h - 69h)
The data output X registers are two 8-bit registers, data output ch1 MSB register (69h) and output X LSB register (68h).
The output data represents the raw magnetic data only if OFFSET_X_REG is equal to zero, otherwise hard-iron calibration is included.
0 0
Table 106. OUTX_L_REG_M register
0 0 0 0 0 0
0 0
Table 107. OUTX_H_REG_M register
0 0 0 0 0 0
The value of the magnetic field is expressed in two’s complement. This register contains the
X component of the magnetic data.
74/80 DocID030988 Rev 2
ISM303DAC Register description
8.44 OUTY_L_REG_M, OUTY_H_REG_M (6Ah - 6Bh)
The data output Y registers are two 8-bit registers, data output ch1 MSB register (6Bh) and output Y LSB register (6Ah).
The output data represents the raw magnetic data only if OFFSET_Y_REG is equal to zero, otherwise hard-iron calibration is included.
0 0
Table 108. OUTY_L_REG_M register
0 0 0 0 0 0
0 0
Table 109. OUTY_H_REG_M register
0 0 0 0 0 0
The value of the magnetic field is expressed in two’s complement. This register contains the
Y component of the magnetic data.
8.45 OUTZ_L_REG_M, OUTZ_H_REG_M (6Ch - 6Dh)
The data output Z registers are two 8-bit registers, data output ch1 MSB register (6Bh) and output Z LSB register (6Ah).
The output data represents the raw magnetic data only if OFFSET_Z_REG is equal to zero, otherwise hard-iron calibration is included.
0 0
Table 110. OUTZ_L_REG_M register
0 0 0 0 0 0
0 0
Table 111. OUTZ_H_REG_M register
0 0 0 0 0 0
The value of the magnetic field is expressed in two’s complement. This register contains the
Z component of the magnetic data.
DocID030988 Rev 2 75/80
80
Package information ISM303DAC
9.1
In order to meet environmental requirements, ST offers these devices in different grades of
ECOPACK ® packages, depending on their level of environmental compliance. ECOPACK ® specifications, grade definitions and product status are available at: www.st.com
.
ECOPACK is an ST trademark.
LGA-12 package information
Figure 23. LGA-12 2x2x1 mm package outline and mechanical data
76/80
/ H
,7(0
Q J W K > / @
: L G W K
+ H L J K W
> : @
> + @
'LPHQVLRQVDUHLQPLOOLPHWHUXQOHVVRWKHUZLVHVSHFLILHG
*HQHUDO7ROHUDQFHLVPPXQOHVVRWKHUZLVHVSHFLILHG
287(5',0(16,216
',0(16,21>PP@ 72/(5$1&(>PP@
0 $ ;
B
DocID030988 Rev 2
ISM303DAC
9.2 LGA-12 packing information
Figure 24. Carrier tape information for LGA-12 package
Package information
Figure 25. LGA-12 package orientation in carrier tape
DocID030988 Rev 2 77/80
80
Package information
Figure 26. Reel information for carrier tape of LGA-12 package
7
ISM303DAC
PPPLQ
$FFHVVKROHDW
VORWORFDWLRQ
%
&
1
$
'
)XOOUDGLXV
*PHDVXUHGDWKXE
7DSHVORW
LQFRUHIRU
WDSHVWDUW
PPPLQZLGWK
Table 112. Reel dimensions for carrier tape of LGA-12 package
Reel dimensions (mm)
A (max)
B (min)
C
D (min)
N (min)
G
T (max)
330
1.5
13 ±0.25
20.2
60
12.4 +2/-0
18.4
78/80 DocID030988 Rev 2
ISM303DAC
Date
16-Oct-2017
31-Oct-2017
Revision
1
2
Table 113. Document revision history
Changes
Initial release
Document status promoted to “Datasheet - production data”
Revision history
DocID030988 Rev 2 79/80
80
ISM303DAC
IMPORTANT NOTICE – PLEASE READ CAREFULLY
STMicroelectronics NV and its subsidiaries (“ST”) reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on
ST products before placing orders. ST products are sold pursuant to ST’s terms and conditions of sale in place at the time of order acknowledgement.
Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of Purchasers’ products.
No license, express or implied, to any intellectual property right is granted by ST herein.
Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product.
ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners.
Information in this document supersedes and replaces information previously supplied in any prior versions of this document.
© 2017 STMicroelectronics – All rights reserved
80/80 DocID030988 Rev 2
تنزيل
إعلان