ICM-20789
7-Axis, High Performance Integrated 6-Axis Inertial
and Barometric Pressure Sensor
GENERAL DESCRIPTION
APPLICATIONS
The 7-Axis ICM-20789 is an integrated 6-axis inertial device
that combines a 3-axis gyroscope, 3-axis accelerometer, and
an ultra-low noise MEMS capacitive pressure sensor in a 24pin LGA package. This unique 7-Axis device offers
performance of discrete components in a single small
footprint for tracking rotational and linear motion as well as
pressure differences with an accuracy of ±1 Pa, an accuracy
enabling altitude measurement differentials as small as
8.5 cm.
The pressure sensor’s MEMS capacitive architecture provides
the industry’s lowest noise at the lowest power, high sensor
throughput, and temperature coefficient offset of ±0.5 Pa/°C.
The pressure sensor’s combination of high accuracy elevation
measurements, low power, and temperature stability
complemented by the motion tracking 6-axis inertial sensor in
a small footprint, make it ideal for a wide range of motion
tracking applications.
The embedded 6-axis MotionTracking device combines a 3axis gyroscope, 3-axis accelerometer, and a Digital Motion
Processor™ (DMP). An available large 4 kB FIFO reduces
traffic on the serial bus interface, and power consumption
through burst sensor data transmission. The Gyroscope has
programmable FSR of ±250 dps, ±500 dps, ±1000 dps and
±2000 dps. The Accelerometer FSR is programmable to ±2g,
±4g, ±8g and ±16g
ICM-20789 has 16-bit ADC for the 6-axis inertial sensor and
24-bit ADC for the pressure Sensor, programmable digital
filters, two temperature sensors – one each in 6-axis Inertial
and Pressure sensor. The device features an operating
voltage of 1.8V. Communication port includes I2C at 400 kHz
(6-axis and Pressure) and 8 MHz SPI (6-axis only). The package
is 4x4x1.365 mm 24-pin to minimize board area
requirements.
AP/HUB
FEATURES
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Pressure operating range: 30 to 110 kPa
Noise and current consumption
o 3.2 Pa @ 1.3 µA (LP mode)
o 0.8 Pa @ 5.2 µA (LN mode)
o 0.4 Pa @ 10.4 µA (ULN mode)
Pressure Sensor Relative Accuracy: ±1 Pa for any
10 hPa change over 950 hPa-1050 hPa at 25°C
Pressure Sensor Absolute Accuracy: ±1 hPa over
950 hPa-1050 hPa, 0°C to 65°C
Pressure Sensor Temperature Coefficient Offset:
±0.5 Pa/°C over 25°C to 45°C at 100 kPa
Gyroscope programmable FSR of ±250 dps,
±500 dps, ±1000 dps, and ±2000 dps
Accelerometer with Programmable FSR of ±2g, ±4g,
±8g, and ±16g
Large 4 kB FIFO reduces traffic on the serial bus
interface
EIS FSYNC support
User-programmable interrupts
Wake-on-motion interrupt for low power operation
of applications processor
Host interface: 400 kHz Fast Mode I2C & 8 MHz SPI
(see datasheet for ICM-20689)
Digital-output temperature sensor (x2)
Nominal VDD operation at 1.8V
RoHS and Green compliant
I2C
PART
TEMP RANGE
PACKAGE
ICM-20789†
−40°C to +85°C
24-Pin LGA
†Denotes RoHS and Green-Compliant Package
SPI (6-Axis only)
6-Axis
Motion
Drones and Flying Toys
Motion-based gaming controllers
Virtual Reality headsets and controllers
Indoor/Outdoor Navigation (dead-reckoning,
floor/elevator/step detection)
ORDERING INFORMATION
BLOCK DIAGRAM
I2C
•
•
•
•
I2C
Pressure
Sensor
ICM-20789
InvenSense reserves the right to change the detail
specifications as may be required to permit
improvements in the design of its products.
TDK Corporation
1745 Technology Drive, San Jose, CA 95110 U.S.A
+1(408) 988–7339
www.invensense.com
Document Number: DS-000169
Revision: 1.3
Revision Date: 10/31/2017
ICM-20789
TABLE OF CONTENTS
General Description ............................................................................................................................................. 1
Block Diagram ...................................................................................................................................................... 1
Applications ......................................................................................................................................................... 1
Features ............................................................................................................................................................... 1
Ordering Information ........................................................................................................................................... 1
1
2
3
4
Introduction ......................................................................................................................................................... 7
1.1
Purpose and Scope .................................................................................................................................... 7
1.2
Product Overview...................................................................................................................................... 7
1.3
Applications............................................................................................................................................... 7
Features ............................................................................................................................................................... 8
2.1
Gyroscope Features .................................................................................................................................. 8
2.2
Accelerometer Features ............................................................................................................................ 8
2.3
Pressure sensor Features .......................................................................................................................... 8
2.4
Additional Features ................................................................................................................................... 8
2.5
Motion Processing .................................................................................................................................... 8
Electrical Characteristics ...................................................................................................................................... 9
3.1
Gyroscope Specifications .......................................................................................................................... 9
3.2
Accelerometer Specifications.................................................................................................................. 10
3.3
Pressure Sensor Specifications................................................................................................................ 11
3.4
Electrical Specifications ........................................................................................................................... 12
3.5
I2C Timing Characterization ..................................................................................................................... 14
3.6
Absolute Maximum Ratings .................................................................................................................... 16
Applications Information ................................................................................................................................... 17
4.1
Pin Out Diagram and Signal Description ................................................................................................. 17
4.2
Typical Operating Circuit ......................................................................................................................... 18
4.3
Bill of Materials for External Components .............................................................................................. 21
4.4
Block Diagram ......................................................................................................................................... 22
4.5
Overview ................................................................................................................................................. 23
4.6
Three-Axis MEMS Gyroscope with 16-bit ADCs and Signal Conditioning ............................................... 24
4.7
Three-Axis MEMS Accelerometer with 16-bit ADCs and Signal Conditioning......................................... 24
4.8
Digital Motion Processor ......................................................................................................................... 24
4.9
Pressure Sensor ....................................................................................................................................... 24
4.10
I2C Serial Communications Interface .................................................................................................. 24
4.11
Self-Test .............................................................................................................................................. 25
4.12
Clocking............................................................................................................................................... 26
4.13
Sensor Data Registers ......................................................................................................................... 26
4.14
FIFO ..................................................................................................................................................... 26
4.15
Interrupts ............................................................................................................................................ 26
4.16
Digital-Output Temperature Sensor ................................................................................................... 26
Document Number: DS-000169
Revision: 1.3
Page 2 of 62
ICM-20789
5
4.17
Bias and LDOs ..................................................................................................................................... 26
4.18
Charge Pump ...................................................................................................................................... 26
4.19
Standard Power Modes – Update the power modes ......................................................................... 27
Programmable Interrupts .................................................................................................................................. 28
5.1
6
7
Per Axis Wake-on-Motion Interrupt ....................................................................................................... 28
Digital Interface ................................................................................................................................................. 29
6.1
I2C Serial Interface ................................................................................................................................... 29
6.2
I2C Interface............................................................................................................................................. 29
6.3
I2C Communications Protocol (6-Axis only. For pressure please see chapter 10) ................................... 29
6.4
I2C Terms ................................................................................................................................................. 31
Serial Interface Considerations .......................................................................................................................... 33
7.1
ICM-20789 Supported Interfaces ............................................................................................................ 33
8
Register Map ...................................................................................................................................................... 34
9
Register Descriptions ......................................................................................................................................... 36
9.1
Registers Descriptions ............................................................................................................................. 36
9.2
Registers 0 to 2 – Self-Test Registers ...................................................................................................... 36
9.3
Registers 13 to 15.................................................................................................................................... 36
9.4
Register 19 – Gyro Offset Adjustment Register ...................................................................................... 36
9.5
Register 20 – Gyro Offset Adjustment Register ...................................................................................... 36
9.6
Register 21 – Gyro Offset Adjustment Register ...................................................................................... 37
9.7
Register 22 – Gyro Offset Adjustment Register ...................................................................................... 37
9.8
Register 23 – Gyro Offset Adjustment Register ...................................................................................... 37
9.9
Register 24 – Gyro Offset Adjustment Register ...................................................................................... 37
9.10
Register 25 – Sample Rate Divider. ..................................................................................................... 37
9.11
Register 26 – Configuration ................................................................................................................ 38
9.12
Register 27 – Gyroscope Configuration .............................................................................................. 38
9.13
Register 28 – Accelerometer Configuration ....................................................................................... 39
9.14
Register 29 – Accelerometer Configuration 2..................................................................................... 39
9.15
Register 30 – Low Power Mode Configuration ................................................................................... 40
9.16
Register 32 – Wake on Motion Threshold .......................................................................................... 41
9.17
Register 33 – Wake on Motion Threshold .......................................................................................... 41
9.18
Register 34 – Wake on Motion Threshold .......................................................................................... 41
9.19
Register 35 – FIFO Enable ................................................................................................................... 42
9.20
Register 55 – Interrupt/Bypass Pin Configuration .............................................................................. 42
9.21
Register 56 – Interrupt Enable ............................................................................................................ 43
9.22
Register 57 – DMP Interrupt Status .................................................................................................... 43
9.23
Register 58 – Interrupt Status ............................................................................................................. 43
9.24
Register 59 – Accelerometer Measurements ..................................................................................... 43
9.25
Register 60 – Accelerometer Measurements ..................................................................................... 43
9.26
Register 61 – Accelerometer Measurements ..................................................................................... 44
Document Number: DS-000169
Revision: 1.3
Page 3 of 62
ICM-20789
10
9.27
Register 62 – Accelerometer Measurements ..................................................................................... 44
9.28
Register 63 – Accelerometer Measurements ..................................................................................... 44
9.29
Register 64 – Accelerometer Measurements ..................................................................................... 44
9.30
Register 65 – Temperature Measurement ......................................................................................... 44
9.31
Register 66 – Temperature Measurement ......................................................................................... 44
9.32
Register 67 – Gyroscope Measurement ............................................................................................. 44
9.33
Register 68 – Gyroscope Measurement ............................................................................................. 45
9.34
Register 69 – Gyroscope Measurement ............................................................................................. 45
9.35
Register 70 – Gyroscope Measurement ............................................................................................. 45
9.36
Register 71 – Gyroscope Measurement ............................................................................................. 45
9.37
Register 72 – Gyroscope Measurement ............................................................................................. 45
9.38
Register 104 – Signal Path Reset......................................................................................................... 45
9.39
Register 105 – Accelerometer Intelligence Control ............................................................................ 46
9.40
Register 106 – User Control ................................................................................................................ 46
9.41
Register 107 – Power Management 1 ................................................................................................ 47
9.42
Register 108 – Power Management 2 ................................................................................................ 47
9.43
Register 114 – FIFO Count Registers ................................................................................................... 47
9.44
Register 115 – FIFO Count Registers ................................................................................................... 48
9.45
Register 116 – FIFO Read Write .......................................................................................................... 48
9.46
Register 117 – Who Am I .................................................................................................................... 48
9.47
Register 119 – Accelerometer Offset Register.................................................................................... 48
9.48
Register 120 – Accelerometer Offset Register.................................................................................... 49
9.49
Register 122 – Accelerometer Offset Register.................................................................................... 49
9.50
Register 123 – Accelerometer Offset Register.................................................................................... 49
9.51
Register 125 – Accelerometer Offset Register.................................................................................... 49
9.52
Register 126 – Accelerometer Offset Register.................................................................................... 49
Pressure sensor – How to Read ......................................................................................................................... 50
10.1
11
I2C Operation And Communication .................................................................................................... 50
Assembly ............................................................................................................................................................ 55
11.1
Orientation of Axes ............................................................................................................................. 55
11.2
Implementation and usage recommendations .................................................................................. 55
11.3
Package Dimensions ........................................................................................................................... 56
12
Part Number Package Marking .......................................................................................................................... 58
13
Ordering Guide .................................................................................................................................................. 59
14
Reference ........................................................................................................................................................... 60
15
Revision History ................................................................................................................................................. 61
Document Number: DS-000169
Revision: 1.3
Page 4 of 62
ICM-20789
LIST OF FIGURES
Figure 1. I2C Bus Timing Diagram ............................................................................................................................................................. 15
Figure 2. Pin out Diagram for ICM-20789 ................................................................................................................................................ 17
Figure 3. I2C Communication – 1.8V Supply Schematic ........................................................................................................................... 18
Figure 4. I2C Communication MCU Interface at 3V or 1.8V Schematic .................................................................................................... 19
Figure 5. SPI Communication for Gyro/Accel; I2C for Pressure Schematic .............................................................................................. 20
Figure 6. SPI Communication for Gyro/Accel; I2C Pressure; MCU Digital Interface: 1.8V Schematic ...................................................... 20
Figure 7. SPI Communication for Gyro/Accel; I2C for Pressure; MCU Digital Interface: 3.0V Schematic................................................. 21
Figure 8. ICM-20789 Block Diagram (I2C interface).................................................................................................................................. 22
Figure 9. ICM-20789 Block Diagram (SPI/ I2C interface) .......................................................................................................................... 23
Figure 10. ICM-20789 Solution Using I2C Interface .................................................................................................................................. 25
Figure 11. START and STOP Conditions .................................................................................................................................................... 29
Figure 12. Acknowledge on the I2C Bus ................................................................................................................................................... 30
Figure 13. Complete I2C Data Transfer ..................................................................................................................................................... 30
Figure 14. I/O Levels and Connections..................................................................................................................................................... 33
Figure 15. Communication Sequence for starting a measurement and reading measurement results .................................................. 54
Figure 16. Orientation of Axes of Sensitivity and Polarity of Rotation .................................................................................................... 55
Figure 17. Package Dimensions................................................................................................................................................................ 56
Figure 18. ICM-20789 recommended PCB land pattern .......................................................................................................................... 57
Figure 19. Part Number Package Marking ............................................................................................................................................... 58
Document Number: DS-000169
Revision: 1.3
Page 5 of 62
ICM-20789
LIST OF TABLES
Table 1. Gyroscope Specifications ............................................................................................................................................................. 9
Table 2. Accelerometer Specifications ..................................................................................................................................................... 10
Table 3. Operation Ranges ....................................................................................................................................................................... 11
Table 4. Operation Modes ....................................................................................................................................................................... 11
Table 5. Pressure Sensor Specifications ................................................................................................................................................... 11
Table 6. Temperature Sensor Specifications............................................................................................................................................ 12
Table 7. D.C. Electrical Characteristics ..................................................................................................................................................... 12
Table 8. A.C. Electrical Characteristics (6-Axis) ........................................................................................................................................ 13
Table 9. Electrical Characteristics (Pressure sensor) ................................................................................................................................ 14
Table 10. Other Electrical Specifications .................................................................................................................................................. 14
Table 11. I2C Timing Characteristics ......................................................................................................................................................... 15
Table 12. Absolute Maximum Ratings (6-Axis) ........................................................................................................................................ 16
Table 13. Absolute Maximum Ratings (pressure sensor)......................................................................................................................... 16
Table 14. Signal Descriptions ................................................................................................................................................................... 17
Table 15. Bill of Materials ........................................................................................................................................................................ 21
Table 16. Standard Power Modes for ICM-20789.................................................................................................................................... 27
Table 17. Table of Interrupt Sources........................................................................................................................................................ 28
Table 18. Serial Interface ......................................................................................................................................................................... 29
Table 19. I2C Term SPI Interface ............................................................................................................................................................... 31
Table 20. Register Map ............................................................................................................................................................................ 35
Table 21. Accelerometer Data Rates and Bandwidths (Low Noise Mode) .............................................................................................. 39
Table 22. Accelerometer Data Rates and Bandwidths (Low-Power Mode) ............................................................................................. 40
Table 23. ICM-20789 I2C Device Address ................................................................................................................................................. 50
Table 24. Measurement Commands ........................................................................................................................................................ 50
Table 25. Soft Reset Command ................................................................................................................................................................ 51
Table 26. Read-Out Command of ID Register .......................................................................................................................................... 51
Table 27. Structure of the 16-bit ID ......................................................................................................................................................... 51
Table 28. ICM-20789 I2C CRC Properties .................................................................................................................................................. 51
Table 29. Package Dimensions Table ....................................................................................................................................................... 56
Document Number: DS-000169
Revision: 1.3
Page 6 of 62
ICM-20789
1 INTRODUCTION
1.1 PURPOSE AND SCOPE
This document is a product specification, providing a description, specifications, and design related information on the ICM-20789, a
6-axis inertial and pressure sensor device. The device is packaged in a 4 mm x 4 mm x 1.365 mm 24-pin LGA package.
1.2 PRODUCT OVERVIEW
The ICM-20789 is a 6-axis inertial sensor, 3-axis gyroscope and a 3-axis accelerometer, ultra-low noise MEMS capacitive barometric
pressure sensor in a 4 mm x 4 mm x 1.365 mm (24-pin LGA) package. It features a 4 KB FIFO that can lower the traffic on the serial
bus interface.
The digital output barometric pressure sensor is based on an ultra-low noise innovative MEMS capacitive technology that can
measure pressure differences with an accuracy of ±1 Pa, an accuracy enabling altitude measurement differentials as small as 8.5 cm
without the penalty of increased power consumption or reduced sensor throughput. The capacitive pressure sensor has a ±1 hPa
absolute accuracy over its full range of 300 hPa -1100 hPa. The pressure sensor offers industry leading temperature stability of the
pressure sensor with a temperature coefficient offset of ±0.5 Pa/°C, embedded temperature sensor and 400 kHz I2C bus for
communication.
The gyroscope has a programmable full-scale range of ±250 dps, ±500 dps, ±1000 dps, and ±2000 dps. The accelerometer has a userprogrammable full-scale range of ±2g, ±4g, ±8g, and ±16g. Factory-calibrated initial sensitivity of both sensors reduces productionline calibration requirements. Other features include on-chip 16-bit ADCs, programmable digital filters, another embedded
temperature sensor, and programmable interrupts. The device features I2C serial interface to access its registers at 400 kHz as well
as at 8 MHz SPI.
By leveraging its patented and volume-proven CMOS-MEMS fabrication platform, which integrates MEMS wafers with companion
CMOS electronics through wafer-level bonding, TDK has driven the package size down to a footprint and thickness of
4 mm x 4 mm x 1.365 mm (24-pin LGA), to provide an integrated high-performance package. The device provides high robustness by
supporting 10,000g shock reliability.
1.3 APPLICATIONS
•
•
•
•
Drones and Flying Toys
Motion-based gaming controllers
Virtual Reality Headsets & Controllers
Indoor/Outdoor Navigation (dead-reckoning, floor/elevation/step detection)
Document Number: DS-000169
Revision: 1.3
Page 7 of 62
ICM-20789
2 FEATURES
2.1 GYROSCOPE FEATURES
•
•
•
•
•
Digital-output X-, Y-, and Z-axis angular rate sensors (gyroscopes) with a user-programmable full-scale range of ±250 dps,
±500 dps, ±1000 dps, and ±2000 dps and integrated 16-bit ADCs
Digitally-programmable low-pass filter
Low-power gyroscope operation
Factory calibrated sensitivity scale factor
Self-test
2.2 ACCELEROMETER FEATURES
•
•
•
•
Digital-output X-, Y-, and Z-axis accelerometer with a programmable full scale range of ±2g, ±4g, ±8g, and ±16g and integrated
16-bit ADCs
User-programmable interrupts
Wake-on-motion interrupt for low power operation of applications processor
Self-test
2.3 PRESSURE SENSOR FEATURES
•
•
•
•
•
•
•
Pressure operating range: 30 kPa to 110 kPa
4 operating modes to optimize noise and power, 3 example modes:
o 3.2 Pa @ 1.3 µA (LP mode)
o 0.8 Pa @ 5.2 µA (LN mode)
o 0.4 Pa @ 10.4 µA (ULN mode)
Relative accuracy: ±1 Pa for any 10 hPa change over 950 hPa-1050 hPa at 25°C
Absolute accuracy: ±1 hPa over 950 hPa-1050 hPa, 0°C to 65°C
Temperature Coefficient Offset: ±0.5 Pa/°C over 25°C to 45°C at 100 kPa
I2C at 400 kHz
Temperature sensor accuracy: ±0.4°C
2.4 ADDITIONAL FEATURES
•
•
•
•
•
•
•
Minimal cross-axis sensitivity between the accelerometer and gyroscope axes
4 kB FIFO buffer enables the applications processor to read the data in bursts
Digital-output temperature sensor
User-programmable digital filters for gyroscope, accelerometer, and temp sensor
10,000g shock tolerant
400 kHz Fast Mode I2C for communicating with all registers
RoHS and Green compliant
2.5 MOTION PROCESSING
•
•
Internal Digital Motion Processing™ (DMP™) engine supports advanced MotionProcessing and low power functions
DMP operation is possible in low-power gyroscope and low-power accelerometer modes
Document Number: DS-000169
Revision: 1.3
Page 8 of 62
ICM-20789
3 ELECTRICAL CHARACTERISTICS
3.1 GYROSCOPE SPECIFICATIONS
Typical Operating Circuit Figure 3, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted.
PARAMETER
Full-Scale Range
CONDITIONS
MIN
UNITS
NOTES
±250
±500
±1000
dps
dps
dps
3
3
3
FS_SEL=0
±2000
16
131
dps
bits
LSB/(dps)
3
3
3
FS_SEL=1
FS_SEL=2
65.5
32.8
LSB/(dps)
LSB/(dps)
3
3
FS_SEL=3
Component-Level, 25°C
-40°C to +85°C
16.4
±2
±1.5
LSB/(dps)
%
%
3
2
1
Best fit straight line; 25°C
±0.1
%
1
±2
%
1
±5
±0.05
dps
dps/°C
2
1
GYROSCOPE SENSITIVITY
FS_SEL=0
FS_SEL=1
FS_SEL=2
FS_SEL=3
Gyroscope ADC Word Length
Sensitivity Scale Factor
Sensitivity Scale Factor Tolerance
Sensitivity Scale Factor Variation Over
Temperature
Nonlinearity
Cross-Axis Sensitivity
Initial ZRO Tolerance
ZRO Variation Over Temperature
ZERO-RATE OUTPUT (ZRO)
Component-Level, 25°C
-40°C to +85°C
TYP
MAX
GYROSCOPE NOISE PERFORMANCE (FS_SEL=0)
Noise Spectral Density
Gyroscope Mechanical Frequencies
Low Pass Filter Response
Gyroscope Start-Up Time
Output Data Rate
0.006
Programmable Range
From Sleep mode
Standard (duty-cycled) mode
Low-Noise (active) mode
25
5
27
29
250
35
3.91
4
500
8000
dps/√Hz
1
kHz
Hz
ms
Hz
Hz
2
3
1
1
1
Table 1. Gyroscope Specifications
Notes:
1.
2.
3.
Derived from validation or characterization of parts, not guaranteed in production.
Tested in production.
Guaranteed by design.
Document Number: DS-000169
Revision: 1.3
Page 9 of 62
ICM-20789
3.2 ACCELEROMETER SPECIFICATIONS
Typical Operating Circuit Figure 3, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted.
PARAMETER
CONDITIONS
MIN
TYP
MAX
UNITS
NOTES
ACCELEROMETER SENSITIVITY
AFS_SEL=0
AFS_SEL=1
±2
±4
g
g
3
3
AFS_SEL=2
±8
g
3
AFS_SEL=3
Output in two’s complement format
±16
16
g
bits
3
3
AFS_SEL=0
AFS_SEL=1
16,384
8,192
LSB/g
LSB/g
3
3
Sensitivity Initial Tolerance
AFS_SEL=2
AFS_SEL=3
Component-Level, 25°C
4,096
2,048
±2
LSB/g
LSB/g
%
3
3
2
Sensitivity Change vs. Temperature
-40°C to +85°C
±1
%
1
Nonlinearity
Cross-Axis Sensitivity
Best Fit Straight Line
±0.5
±2
%
%
1
1
±80
mg
2
±0.75
mg/°C
1
150
µg/√Hz
1
Hz
mg/LSB
ms
ms
Hz
Hz
3
3
1
1
Full-Scale Range
ADC Word Length
Sensitivity Scale Factor
Offset Initial Tolerance
ZERO-G OUTPUT
Component-Level, 25°C
Zero-G Level Change vs. Temperature
-5°C to +85°C
NOISE PERFORMANCE
Noise Spectral Density
Low Pass Filter Response
Intelligence Function Increment
Accelerometer Startup Time
Output Data Rate
Notes:
1.
2.
3.
Programmable Range
From Sleep mode
From Cold Start, 1 ms VDD ramp
Standard (duty-cycled) mode
Low-Noise (active) mode
5
218
4
20
30
0.24
4
500
4000
Table 2. Accelerometer Specifications
Derived from validation or characterization of parts, not guaranteed in production.
Tested in production.
Guaranteed by design.
Document Number: DS-000169
Revision: 1.3
Page 10 of 62
1
ICM-20789
3.3 PRESSURE SENSOR SPECIFICATIONS
Typical Operating Circuit Figure 3, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted.
OPERATION RANGE
PRESSURE (kPa)
TEMPERATURE (°C)
Normal
70 to 110
0 to 65
Extended
30 to 110
0 to 65
Maximum
25 to 115
-40 to 85
Table 3. Operation Ranges
PRESSURE
PARAMETER
Conversion Time
Current
Consumption
Pressure RMS
Noise
CONDITIONS
Sensor Mode
TYP
MAX
Time between sending last
bit of measurement
command, and sensor data
ready for measurement
Low Power (LP)
Normal (N)
Low Noise (LN)
Ultra Low Noise
(ULN)
Low Power (LP)
Normal (N)
Low Noise (LN)
Ultra Low Noise
(ULN)
Low Power (LP)
Normal
Low Noise (LN)
Ultra Low Noise
(ULN)
1.6
5.6
20.8
1.8
6.3
23.8
83.2
94.5
1 Hz ODR
Valid for P = 100 kPa, T =
25°C, and U = 1.8V
1.3
2.6
5.2
UNITS
NOTES
1
1
1
ms
1
µA
10.4
3.2
1.6
0.8
Pa
0.4
Table 4. Operation Modes
Notes:
1.
Guaranteed by design.
PARAMETER
Absolute Accuracy
Relative Accuracy
Long-term drift
During 1 year
Solder drift
Temperature coefficient offset
Resolution
CONDITIONS
Normal range
Extended range
Any step ≤ 1 kPa, 25 °C
Any step ≤ 10 kPa, 25 °C
TYP
±1
±1.5
±1
±3
UNITS
hPa
Extended range
±1
hPa/y
1.5
hPa
±0.5
Pa/°C
0.01
Pa
P = 100 kPa
25°C … 45°C
Maximum range
NOTES
1
Pa
1, 2
Table 5. Pressure Sensor Specifications
Notes:
1.
2.
Absolute accuracy may be improved through One Point Calibration
Sensor accuracy post Solder reflow may be improved through One Point Calibration
Document Number: DS-000169
Revision: 1.3
Page 11 of 62
ICM-20789
Temperature PARAMETER
Absolute Accuracy
Repeatability
Resolution
Long-term drift
CONDITIONS
Extended range
Extended range
Maximum range
Normal range
TYP
±0.4
±0.1
0.01
Vpor
After soft reset
AD0 = 0
AD0 = 1
VIH, High-Level Input Voltage
Output Leakage Current
tINT, INT Pulse Width
TYP
0
0.4
3
6
100
20+0.1Cb
V
V
V
V
mA
mA
nA
300
ns
Table 8. A.C. Electrical Characteristics (6-Axis)
Notes:
1.
Guaranteed by design
Document Number: DS-000169
Revision: 1.3
1
Page 13 of 62
1
ICM-20789
PARAMETER
SYMBOL
Supply voltage
VDD
Power-up/down level
VPOR
Supply current
CONDITIONS
MIN
TYP
MAX
UNITS
1.71
1.8
1.89
V
Static power supply
1.0
1.25
1.5
V
Idle state
-
1.0
2.5
µA
Measurement
-
210
300
µA
Current consumption while
sensor is measuring.
-
1.3
-
µA
Current consumption in
continuous operation @ 1 Hz
ODR in LP Mode
-
5.2
-
µA
Current consumption in
continuous operation @1 Hz
ODR in LN Mode
IDD
Average
Low level input voltage
VIL
0
-
0.3 VDD
V
High level input voltage
VIH
0.7 VDD
-
VDD
V
Low level output voltage
VOL
0 < IOL < 3 mA
-
-
0.2 VDD
V
Output Sink Current
IOL
VOL = 0.4V
3.1
4.1
-
mA
VOL = 0.6V
3.5
4.5
-
mA
COMMENTS
Table 9. Electrical Characteristics (Pressure sensor)
Other Electrical Specifications
Typical Operating Circuit Figure 3, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted.
PARAMETER
I2C Operating Frequency
CONDITIONS
MIN
TYP
SERIAL INTERFACE
All registers, Fast-mode
All registers, Standard-mode
MAX
UNITS
NOTES
400
100
kHz
kHz
1
1
MAX
UNITS
NOTES
400
1
1
Table 10. Other Electrical Specifications
Notes:
1.
Derived from validation or characterization of parts, not guaranteed in production.
3.5 I2C TIMING CHARACTERIZATION
Typical Operating Circuit Figure 3, VDD = 1.8V, VDDIO = 1.8V, TA=25°C, unless otherwise noted.
PARAMETERS
I2C
TIMING
I2C
CONDITIONS
FAST-MODE
MIN
TYP
fSCL, SCL Clock Frequency
tHD.STA, (Repeated) START Condition Hold Time
0.6
kHz
µs
tLOW, SCL Low Period
1.3
µs
1
tHIGH, SCL High Period
tSU.STA, Repeated START Condition Setup Time
tHD.DAT, SDA Data Hold Time
0.6
0.6
0
µs
µs
µs
1
1
1
ns
ns
1
1
ns
µs
1
1
µs
1
pF
1
tSU.DAT, SDA Data Setup Time
tr, SDA and SCL Rise Time
tf, SDA and SCL Fall Time
tSU.STO, STOP Condition Setup Time
tBUF, Bus Free Time Between STOP and START
Condition
Cb, Capacitive Load for each Bus Line
Document Number: DS-000169
Revision: 1.3
Cb bus cap. from 10 to 400 pF
Cb bus cap. from 10 to 400 pF
100
20+0.1Cb
300
20+0.1Cb
0.6
300
1.3
< 400
Page 14 of 62
ICM-20789
PARAMETERS
CONDITIONS
I2C
I2C
TIMING
tVD.DAT, Data Valid Time
tVD.ACK, Data Valid Acknowledge Time
MIN
TYP
MAX
UNITS
NOTES
0.9
0.9
µs
µs
1
1
FAST-MODE
Table 11. I2C Timing Characteristics
Notes:
1.
Based on characterization of 5 parts over temperature and voltage as mounted on evaluation board or in sockets
tf
SDA
tSU.DAT
tr
70%
30%
70%
30%
continued below at
tf
SCL
tr
70%
30%
S
tHD.STA
tVD.DAT
70%
30%
tHD.DAT
1/fSCL
tLOW
1st clock cycle
9th clock cycle
tHIGH
tBUF
SDA
70%
30%
A
tHD.STA
tSU.STA
SCL
70%
30%
Sr
tSU.STO
tVD.ACK
9th clock cycle
P
S
Figure 1. I2C Bus Timing Diagram
Document Number: DS-000169
Revision: 1.3
Page 15 of 62
A
ICM-20789
3.6 ABSOLUTE MAXIMUM RATINGS
Stress above those listed as “Absolute Maximum Ratings” may cause permanent damage to the device. These are stress ratings only
and functional operation of the device at these conditions is not implied. Exposure to the absolute maximum ratings conditions for
extended periods may affect device reliability.
PARAMETER
RATING
Supply Voltage, VDD (for 6-axis MEMS)
-0.5V to +4V
Supply Voltage, VDDIO (for Pressure Sensor VDD and I/O)
-0.5V to +2.16V
REGOUT
-0.5V to 2V
Input Voltage Level (AD0, FSYNC, SCL, SDA)
-0.5V to VDD + 0.5V
Acceleration (Any Axis, unpowered)
10,000g for 0.2 ms
Operating Temperature Range
-40°C to +85°C
Storage Temperature Range
-40°C to +125°C
2 kV (HBM);
Electrostatic Discharge (ESD) Protection
250V (MM)
JEDEC Class II (2),125°C
Latch-up
±100 mA
Table 12. Absolute Maximum Ratings (6-Axis)
PARAMETER
Supply voltage, VDD
RATING
-0.3V to +2.16V
Supply Voltage, SCL & SDA
-0.3V to VDD +0.3V
Operating temperature range
-40°C to +85°C
Storage temperature range
-40°C to +125°C
ESD HBM
1.0 kV
ESD CDM
250V
Latch up, JESD78 Class II, 85°C
100 mA
Overpressure
>600 kPa
Table 13. Absolute Maximum Ratings (pressure sensor)
Document Number: DS-000169
Revision: 1.3
Page 16 of 62
ICM-20789
4 APPLICATIONS INFORMATION
4.1 PIN OUT DIAGRAM AND SIGNAL DESCRIPTION
PIN NUMBER
PIN NAME
PIN DESCRIPTION
6
PR_DA
I2C interface data pin for Pressure Sensor access
7
PR_CL
I2C interface clock pin for Pressure Sensor access
8
VDDIO
9
AD0/SDO
I2C slave address LSB (AD0); SPI serial data output (SDO)
Digital I/O supply voltage
10
REGOUT
Regulator filter capacitor connection
11
FSYNC
Frame synchronization digital input. Connect to GND if unused.
12
INT
Interrupt digital output (totem pole or open-drain)
13
VDD
Power supply voltage
18
GND
Power supply ground
22
nCS
SPI chip select
23
SCL/SCLK
I2C serial clock (SCL); SPI serial clock (SCLK)
24
SDA/SDI
I2C serial data (SDA); SPI serial data input (SDI)
1, 19, 20, 21
NC
2, 3, 4, 5, 14, 15,
16, 17
GND/VDD/NC
No Connect
Connect to: GND or VDD or No Connection
Table 14. Signal Descriptions
Note:
1.
2.
VDD and VDDIO cannot be shorted if VDD > 1.98V
VDD & VDDIO should not violate operating range specifications as mentioned in Section 3.4
SDA/SDI
SCL/SCLK
nCS
NC
NC
NC
24
23
22
21
20
19
+Z
NC
1
18
GND
GND/VDD/NC
2
17
GND/VDD/NC
GND/VDD/NC
3
16
GND/VDD/NC
ICM-20789
GND/VDD/NC
4
15
GND/VDD/NC
GND/VDD/NC
5
14
GND/VDD/NC
PR_DA
6
13
VDD
IC
+Y
M-
20
78
9
+X
7
8
9
10
11
12
PR_CL
VDDIO
AD0/SDO
REGOUT
FSYNC
INT
Top View – LGA Package
24-pin, 4mm x 4mm x 1.365mm
+Y
+Z
+X
Orientation of Axes of Sensitivity and
Polarity of Rotation
Figure 2. Pin out Diagram for ICM-20789
Document Number: DS-000169
Revision: 1.3
Page 17 of 62
ICM-20789
4.2 TYPICAL OPERATING CIRCUIT
I2C Communication – 1.8V Supply Schematic
Figure 3. I2C Communication – 1.8V Supply Schematic
Document Number: DS-000169
Revision: 1.3
Page 18 of 62
ICM-20789
I2C Communication MCU Interface at 3V or 1.8V Schematic
Figure 4. I2C Communication MCU Interface at 3V or 1.8V Schematic
Document Number: DS-000169
Revision: 1.3
Page 19 of 62
ICM-20789
SPI Communication for Gyro/Accel; I2C for Pressure Schematic
Figure 5. SPI Communication for Gyro/Accel; I2C for Pressure Schematic
SPI Communication for Gyro/Accel; I2C Pressure; MCU Digital Interface: 1.8V Schematic
Figure 6. SPI Communication for Gyro/Accel; I2C Pressure; MCU Digital Interface: 1.8V Schematic
Document Number: DS-000169
Revision: 1.3
Page 20 of 62
ICM-20789
SPI Communication for Gyro/Accel; I2C for Pressure; MCU Digital Interface: 3.0V Schematic
Figure 7. SPI Communication for Gyro/Accel; I2C for Pressure; MCU Digital Interface: 3.0V Schematic
Note: I2C lines are open drain and pullup resistors (e.g. 10 kΩ) are required.
4.3 BILL OF MATERIALS FOR EXTERNAL COMPONENTS
COMPONENT
LABEL
SPECIFICATION
QUANTITY
REGOUT Capacitor
C1
X7R, 0.1 µF ±10%
1
C2
X7R, 0.1 µF ±10%
1
C4
X7R, 2.2 µF ±10%
1
C3
X7R, 10 nF ±10%
1
VDD Bypass Capacitors
VDDIO Bypass Capacitor
Table 15. Bill of Materials
Document Number: DS-000169
Revision: 1.3
Page 21 of 62
ICM-20789
4.4 BLOCK DIAGRAM
ICM-20789
Self
test
X Accel
ADC
Self
test
Y Accel
ADC
INT1
Interrupt
Status
Register
nCS
Slave I2C and
SPI Serial
Interface
FIFO
AD0 / SDO
SCL / SCLK
SDA / SDI
Z Accel
ADC
Self
test
X Gyro
ADC
Self
test
Y Gyro
Self
test
Z Gyro
Signal Conditioning
Self
test
User & Config
Registers
Serial
Interface
Bypass
Mux
Master I2C
Serial
Interface
Sensor
Registers
PR_CL
PR_DA
FSYNC
ADC
Digital Motion
Processor
(DMP)
ADC
Signal Conditioning
Temp Sensor
ADC
ADC
Pressure
Sensor
Bias & LDOs
Charge
Pump
VDD
GND
REGOUT
Figure 8. ICM-20789 Block Diagram (I2C interface)
Document Number: DS-000169
Revision: 1.3
Page 22 of 62
ICM-20789
ICM-20789
INT1
Interrupt
Status
Register
nCS
Slave I2C and
SPI Serial
Interface
FIFO
SDO
SCLK
SDI
Signal Conditioning
User & Config
Registers
Serial
Interface
Bypass
Mux
Master I2C
Serial
Interface
Sensor
Registers
nCS
SDO
Host Processor
SCLK
SDI
PR_CL
PR_DA
SCL
SDA
FSYNC
Digital Motion
Processor
(DMP)
Signal Conditioning
ADC
Pressure
Sensor
Bias & LDOs
VDD
GND
REGOUT
Figure 9. ICM-20789 Block Diagram (SPI/ I2C interface)
4.5 OVERVIEW
The ICM-20789 is comprised of the following key blocks and functions:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Three-axis MEMS rate gyroscope sensor with 16-bit ADCs and signal conditioning
Three-axis MEMS accelerometer sensor with 16-bit ADCs and signal conditioning
Digital Motion Processor (DMP) engine
I2C serial communications interfaces
Self-Test
Clocking
Sensor Data Registers
FIFO
Interrupts
Digital-Output Temperature Sensor
Bias and LDOs
Charge Pump
Standard Power Modes
Pressure Sensor
Document Number: DS-000169
Revision: 1.3
Page 23 of 62
ICM-20789
4.6 THREE-AXIS MEMS GYROSCOPE WITH 16-BIT ADCS AND SIGNAL CONDITIONING
The ICM-20789 consists of three independent vibratory MEMS rate gyroscopes, which detect rotation about the X-, Y-, and Z- Axes.
When the gyros are rotated about any of the sense axes, the Coriolis Effect causes a vibration that is detected by a capacitive pickoff.
The resulting signal is amplified, demodulated, and filtered to produce a voltage that is proportional to the angular rate. This voltage
is digitized using individual on-chip 16-bit Analog-to-Digital Converters (ADCs) to sample each axis. The full-scale range of the gyro
sensors may be digitally programmed to ±250, ±500, ±1000, or ±2000 degrees/sec (dps). The ADC sample rate is programmable from
8,000 samples/sec, to 3.9 samples/sec, and user-selectable low-pass filters enable a wide range of cut-off frequencies.
4.7 THREE-AXIS MEMS ACCELEROMETER WITH 16-BIT ADCS AND SIGNAL CONDITIONING
The ICM-20789’s 3-Axis accelerometer uses separate proof masses for each axis. Acceleration along a particular axis induces
displacement on the corresponding proof mass, and capacitive sensors detect the displacement differentially. The ICM-20789’s
architecture reduces the accelerometers’ susceptibility to fabrication variations as well as to thermal drift. When the device is placed
on a flat surface, it will measure 0g on the X- and Y-axes and +1g on the Z-axis. The accelerometers’ scale factor is calibrated at the
factory and is nominally independent of supply voltage. Each sensor has a dedicated sigma-delta ADC for providing digital outputs.
The full-scale range of the digital output can be adjusted to ±2g, ±4g, ±8g, or ±16g.
4.8 DIGITAL MOTION PROCESSOR
The embedded Digital Motion Processor (DMP) offloads computation of motion processing algorithms from the host processor. The
DMP acquires data from the accelerometer and gyroscope, processes the data, and the results can be read from the FIFO. The DMP
has access to one of the external pins, which can be used for generating interrupts. The purpose of the DMP is to offload both
timing requirements and processing power from the host processor. Typically, motion processing algorithms should be run at a high
rate, often around 200 Hz, in order to provide accurate results with low latency. This is required even if the application updates at a
much lower rate; for example, a low power user interface may update as slowly as 5 Hz, but the motion processing should still run at
200 Hz. The DMP can be used to minimize power, simplify timing, simplify the software architecture, and save valuable MIPS on the
host processor for use in applications. DMP operation is possible in low-power gyroscope and low-power accelerometer modes.
4.9 PRESSURE SENSOR
The pressure sensor is a capacitive pressure sensor, and has a membrane over a sealed cavity at a reference pressure. External
pressure changes relative to the sealed cavity pressure cause the membrane to deflect. The membrane and the floor of the cavity
form a capacitor where the capacitance changes in response to changes in external pressure. The capacitance measurement is
converted to a voltage proportional to the external pressure by the on-chip electronics. An external algorithm is used to compensate
for temperature effects on the pressure accuracy.
4.10 I2C SERIAL COMMUNICATIONS INTERFACE
The ICM-20789 communicates to a system processor using a I2C serial interface. The ICM-20789 always acts as a slave when
communicating to the system processor. The LSB of the I2C slave address is set by pin 9 (AD0).
Document Number: DS-000169
Revision: 1.3
Page 24 of 62
ICM-20789
ICM-20789 Solution Using I2C Interface
Recommended operation mode is described in Figure 5, with the system processor being an I2C master to the ICM-20789.
-20948
INT
Slave I2C
Interface
SCL
System
Processor
SCL
SDA
SDA
Serial
Interface
Bypass
Mux
Master I2C
Serial
Interface
FSYNC
Digital Motion
Processor
(DMP)
Signal Conditioning
ADC
Pressure
Sensor
Bias & LDOs
VDD
GND
REGOUT
Figure 10. ICM-20789 Solution Using I2C Interface
Note: I2C lines are open drain and pullup resistors (e.g. 10 kΩ) are required.
Accessing Pressure Sensor Data
Pressure sensor data can be accessed in the following mode:
•
Bypass Mode: Set register INT_PIN_CFG (Address: 55 (Decimal); 37 (Hex)) bit 1 to value 1 and I2C_MST_EN bit is ‘0’
(Address: 106 (Decimal); 6A (Hex). Pressure sensor data can then be accessed using the procedure described in Section 10.
4.11 SELF-TEST
Self-test allows for the testing of the mechanical and electrical portions of the sensors. The self-test for each measurement axis can
be activated by means of the gyroscope and accelerometer self-test registers (registers 27 and 28).
When the self-test is activated, the electronics cause the sensors to be actuated and produce an output signal. The output signal is
used to observe the self-test response.
The self-test response is defined as follows:
SELF-TEST RESPONSE = SENSOR OUTPUT WITH SELF-TEST ENABLED – SENSOR OUTPUT WITH SELF-TEST DISABLED
When the value of the self-test response is within the specified min/max limits of the product specification, the part has passed selftest. When the self-test response exceeds the min/max values, the part is deemed to have failed self-test. It is recommended to use
TDK-InvenSense MotionApps software for executing self-test.
Document Number: DS-000169
Revision: 1.3
Page 25 of 62
ICM-20789
4.12 CLOCKING
The ICM-20789 has a flexible clocking scheme, allowing a variety of internal clock sources to be used for the internal synchronous
circuitry. This synchronous circuitry includes the signal conditioning and ADCs, the DMP, and various control circuits and registers.
An on-chip PLL provides flexibility in the allowable inputs for generating this clock.
Allowable internal sources for generating the internal clock are:
a) An internal relaxation oscillator
b) Auto-select between internal relaxation oscillator and gyroscope MEMS oscillator to use the best available source
The only setting supporting specified performance in all modes is option b). It is recommended that option b) be used.
4.13 SENSOR DATA REGISTERS
The sensor data registers contain the latest gyroscope, accelerometer, and temperature measurement data. They are read-only
registers, and are accessed via the serial interface. Data from these registers may be read anytime.
4.14 FIFO
The ICM-20789 contains a 4 kB FIFO register that is accessible via the Serial Interface. The FIFO configuration register determines
which data is written into the FIFO. Possible choices include gyro data, accelerometer data, temperature readings, and FSYNC input.
A FIFO counter keeps track of how many bytes of valid data are contained in the FIFO. The FIFO register supports burst reads. The
interrupt function may be used to determine when new data is available.
The ICM-20789 allows FIFO read in low-power accelerometer mode.
4.15 INTERRUPTS
Interrupt functionality is configured via the Interrupt Configuration register. Items that are configurable include the INT pin
configuration, the interrupt latching and clearing method, and triggers for the interrupt. Items that can trigger an interrupt are
(1) Clock generator locked to new reference oscillator (used when switching clock sources); (2) new data is available to be read
(from the FIFO and Data registers); (3) accelerometer event interrupts; (4) DMP; (5) FIFO overflow. The interrupt status can be read
from the Interrupt Status register.
4.16 DIGITAL-OUTPUT TEMPERATURE SENSOR
An on-chip temperature sensor and ADC are used to measure the 6-axis motion die temperature. Another on-chip temperature
sensor is present in the pressure sensor die. The readings from the ADC can be read from the FIFO or the Sensor Data registers.
4.17 BIAS AND LDOS
The bias and LDO section generates the internal supply and the reference voltages and currents required by the ICM-20789. Its two
inputs are an unregulated VDD and a VDDIO logic reference supply voltage. The LDO output is bypassed by a capacitor at REGOUT.
For further details on the capacitor, please refer to the Bill of Materials for External Components.
4.18 CHARGE PUMP
An on-chip charge pump generates the high voltage required for the MEMS oscillator.
Document Number: DS-000169
Revision: 1.3
Page 26 of 62
ICM-20789
4.19 STANDARD POWER MODES – UPDATE THE POWER MODES
The following table lists the user-accessible power modes for ICM-20789.
MODE
1
2
3
4
5
6
7
8
9
10
NAME
Sleep Mode
Standby Mode
Accelerometer Low-Power Mode
Accelerometer Low-Noise Mode
Gyroscope Low-Power Mode
Gyroscope Low-Noise Mode
6-Axis Low-Noise Mode
6-Axis Low-Power Mode
Pressure sensor Low Noise Mode
Pressure Sensor Low Power Mode
GYRO
Off
Drive On
Off
Off
Duty-Cycled
On
On
Duty-Cycled
On
Duty-Cycled
ACCEL
Off
Off
Duty-Cycled
On
Off
Off
On
On
On
On
DMP
Off
Off
On or Off
On or Off
On or Off
On or Off
On or Off
On or Off
On or Off
On or Off
PRESSURE
Off
Off
On or Off
On or Off
On or Off
On or Off
On or Off
On or Off
On
On
Table 16. Standard Power Modes for ICM-20789
Document Number: DS-000169
Revision: 1.3
Page 27 of 62
ICM-20789
5 PROGRAMMABLE INTERRUPTS
The ICM-20789 has a programmable interrupt system which can generate an interrupt signal on the INT pin. Status flags indicate the
source of an interrupt. Interrupt sources may be enabled and disabled individually.
INTERRUPT NAME
MODULE
Motion Detection
Motion
FIFO Overflow
FIFO
Data Ready
Sensor Registers
DMP
DMP
Table 17. Table of Interrupt Sources
5.1 PER AXIS WAKE-ON-MOTION INTERRUPT
The ICM-20789 provides motion detection capability. A qualifying motion sample is one where the high passed sample from any axis
has an absolute value exceeding a user-programmable threshold. The following steps explain how to configure the Wake-on-Motion
Interrupt.
Step 1: Ensure that Accelerometer is running
•
•
In PWR_MGMT_1 register (0x6B) set CYCLE = 0, SLEEP = 0, and GYRO_STANDBY = 0
In PWR_MGMT_2 register (0x6C) set DISABLE_XA = DISABLE_YA = DISABLE_ZA = 0, and DISABLE_XG = DISABLE_YG =
DISABLE_ZG = 1
Step 2: Accelerometer Configuration
1.
In ACCEL_CONFIG2 register (0x1D) set ACCEL_FCHOICE_B = 0 and A_DLPF_CFG [2:0] = 1 (b001)
Step 3: Enable Motion Interrupt
2.
In INT_ENABLE register (0x38) set WOM_X_INT_EN = WOM_Y_INT_EN = WOM_Z_INT_EN = 1 to enable motion interrupt per
axis.
Step 4: Set Motion Threshold
3.
Set the motion threshold in ACCEL_WOM_X_THR (0x20), ACCEL_WOM_Y_THR (0x21), ACCEL_WOM_Z_THR (0x22)
Step 5: Enable Accelerometer Hardware Intelligence
4.
In ACCEL_INTEL_CTRL register (0x69) set ACCEL_INTEL_EN = ACCEL_INTEL_MODE = 1; Ensure that bit 0 is set to 0.
Step 6: Set Frequency of Wake-Up
5.
In SMPLRT_DIV register (0x19) set SMPLRT_DIV [7:0] = 3.9 Hz – 500 Hz
Step 7: Enable Cycle Mode (Accelerometer Low-Power Mode)
6.
In PWR_MGMT_1 register (0x6B) set CYCLE = 1
Document Number: DS-000169
Revision: 1.3
Page 28 of 62
ICM-20789
6 DIGITAL INTERFACE
6.1 I2C SERIAL INTERFACE
The internal registers and memory of the ICM-20789 can be accessed using either I2C at 400 kHz.
PIN NUMBER
PIN NAME
PIN DESCRIPTION
9
AD0
I2C Slave Address LSB (AD0)
23
SCL
I2C serial clock (SCL)
24
SDA
I2C serial data (SDA)
Table 18. Serial Interface
6.2 I2C INTERFACE
I2C is a two-wire interface comprised of the signals serial data (SDA) and serial clock (SCL). In general, the lines are open-drain and bidirectional. In a generalized I2C interface implementation, attached devices can be a master or a slave. The master device puts the
slave address on the bus, and the slave device with the matching address acknowledges the master.
The ICM-20789 always operates as a slave device when communicating to the system processor, which thus acts as the master. SDA
and SCL lines typically need pull-up resistors to VDDIO. The maximum bus speed is 400 kHz.
The slave address of the ICM-20789 is b110100X which is 7 bits long. The LSB bit of the 7-bit address is determined by the logic level
on pin AD0. This allows two ICM-20789s to be connected to the same I2C bus. When used in this configuration, the address of one of
the devices should be b1101000 (pin AD0 is logic low) and the address of the other should be b1101001 (pin AD0 is logic high).
6.3 I2C COMMUNICATIONS PROTOCOL (6-AXIS ONLY. FOR PRESSURE PLEASE SEE CHAPTER 10)
START (S) and STOP (P) Conditions
Communication on the I2C bus starts when the master puts the START condition (S) on the bus, which is defined as a HIGH-to-LOW
transition of the SDA line while SCL line is HIGH (see figure below). The bus is considered to be busy until the master puts a STOP
condition (P) on the bus, which is defined as a LOW to HIGH transition on the SDA line while SCL is HIGH (see figure below).
Additionally, the bus remains busy if a repeated START (Sr) is generated instead of a STOP condition.
SDA
SCL
S
P
START condition
STOP condition
Figure 11. START and STOP Conditions
Document Number: DS-000169
Revision: 1.3
Page 29 of 62
ICM-20789
Data Format / Acknowledge
I2C data bytes are defined to be 8 bits long. There is no restriction to the number of bytes transmitted per data transfer. Each byte
transferred must be followed by an acknowledge (ACK) signal. The clock for the acknowledge signal is generated by the master,
while the receiver generates the actual acknowledge signal by pulling down SDA and holding it low during the HIGH portion of the
acknowledge clock pulse.
If a slave is busy and cannot transmit or receive another byte of data until some other task has been performed, it can hold SCL
LOW, thus forcing the master into a wait state. Normal data transfer resumes when the slave is ready, and releases the clock line
(refer to the following figure).
DATA OUTPUT BY
TRANSMITTER (SDA)
not acknowledge
DATA OUTPUT BY
RECEIVER (SDA)
acknowledge
SCL FROM
MASTER
1
2
8
9
clock pulse for
acknowledgement
START
condition
Figure 12. Acknowledge on the I2C Bus
Communications
After beginning communications with the START condition (S), the master sends a 7-bit slave address followed by an 8th bit, the
read/write bit. The read/write bit indicates whether the master is receiving data from or is writing to the slave device. Then, the
master releases the SDA line and waits for the acknowledge signal (ACK) from the slave device. Each byte transferred must be
followed by an acknowledge bit. To acknowledge, the slave device pulls the SDA line LOW and keeps it LOW for the high period of
the SCL line. Data transmission is always terminated by the master with a STOP condition (P), thus freeing the communications line.
However, the master can generate a repeated START condition (Sr), and address another slave without first generating a STOP
condition (P). A LOW to HIGH transition on the SDA line while SCL is HIGH defines the stop condition. All SDA changes should take
place when SCL is low, with the exception of start and stop conditions.
SDA
SCL
1–7
8
9
1–7
8
9
1–7
8
9
S
START ADDRESS
condition
P
R/W
ACK
DATA
ACK
DATA
ACK
STOP
condition
Figure 13. Complete I2C Data Transfer
Document Number: DS-000169
Revision: 1.3
Page 30 of 62
ICM-20789
To write the internal ICM-20789 registers, the master transmits the start condition (S), followed by the I2C address and the write bit
(0). At the 9th clock cycle (when the clock is high), the ICM-20789 acknowledges the transfer. Then the master puts the register
address (RA) on the bus. After the ICM-20789 acknowledges the reception of the register address, the master puts the register data
onto the bus. This is followed by the ACK signal, and data transfer may be concluded by the stop condition (P). To write multiple
bytes after the last ACK signal, the master can continue outputting data rather than transmitting a stop signal. In this case, the ICM20789 automatically increments the register address and loads the data to the appropriate register. The following figures show
single and two-byte write sequences.
Single-Byte Write Sequence
Master
S
AD+W
RA
Slave
ACK
DATA
ACK
P
ACK
Burst Write Sequence
Master
S
AD+W
RA
Slave
ACK
DATA
ACK
DATA
ACK
P
ACK
To read the internal ICM-20789 registers, the master sends a start condition, followed by the I2C address and a write bit, and then
the register address that is going to be read. Upon receiving the ACK signal from the ICM-20789, the master transmits a start signal
followed by the slave address and read bit. As a result, the ICM-20789 sends an ACK signal and the data. The communication ends
with a not acknowledge (NACK) signal and a stop bit from master. The NACK condition is defined such that the SDA line remains high
at the 9th clock cycle. The following figures show single and two-byte read sequences.
Single-Byte Read Sequence
Master
S
AD+W
Slave
RA
ACK
S
AD+R
ACK
NACK
ACK
P
DATA
Burst Read Sequence
Master
S
AD+W
Slave
RA
ACK
S
ACK
AD+R
ACK
ACK
DATA
NACK
P
DATA
6.4 I2C TERMS
SIGNAL
DESCRIPTION
S
AD
W
Start Condition: SDA goes from high to low while SCL is high
Slave I2C address
Write bit (0)
R
ACK
Read bit (1)
Acknowledge: SDA line is low while the SCL line is high at the 9th clock cycle
NACK
RA
DATA
Not-Acknowledge: SDA line stays high at the 9th clock cycle
ICM-20789 internal register address
Transmit or received data
P
Stop condition: SDA going from low to high while SCL is high
Table 19. I2C Term SPI Interface
SPI is a 4-wire synchronous serial interface that uses two control lines and two data lines. The ICM-20789 always operates as a Slave
device during standard Master-Slave SPI operation (6-Axis only).
With respect to the Master, the Serial Clock output (SPC), the Serial Data Output (SDO) and the Serial Data Input (SDI) are shared
among the Slave devices. Each SPI slave device requires its own Chip Select (CS) line from the master.
CS goes low (active) at the start of transmission and goes back high (inactive) at the end. Only one CS line is active at a time, ensuring
that only one slave is selected at any given time. The CS lines of the non-selected slave devices are held high, causing their SDO lines
to remain in a high-impedance (high-z) state so that they do not interfere with any active devices.
Document Number: DS-000169
Revision: 1.3
Page 31 of 62
ICM-20789
SPI Operational Features
1. Data is delivered MSB first and LSB last
2. Data is latched on the rising edge of SPC
3. Data should be transitioned on the falling edge of SPC
4. The maximum frequency of SPC is 8 MHz
5. SPI read and write operations are completed in 16 or more clock cycles (two or more bytes). The first byte contains the
SPI Address, and the following byte(s) contain(s) the SPI data. The first bit of the first byte contains the Read/Write bit
and indicates the Read (1) or Write (0) operation. The following 7 bits contain the Register Address. In cases of multiplebyte Read/Writes, data is two or more bytes:
SPI Address format
MSB
R/W
A6
A5
A4
A3
A2
A1
LSB
A0
D6
D5
D4
D3
D2
D1
LSB
D0
SPI Data format
MSB
D7
6.
Supports Single or Burst Read/Writes.
Document Number: DS-000169
Revision: 1.3
Page 32 of 62
ICM-20789
7 SERIAL INTERFACE CONSIDERATIONS
7.1 ICM-20789 SUPPORTED INTERFACES
The ICM-20789 supports I2C communications on its serial interface. The ICM-20789’s I/O logic levels are set to be VDDIO.
The figure below depicts a sample circuit of ICM-20789. It shows the relevant logic levels and voltage connections.
VDDIO
(0V - VDDIO)
VDD
VDDIO
VDD
INT
SDA
(0V - VDDIO)
SYNC
VDDIO
SCL
SYSTEM BUS
VDD_IO
System
Processor IO
(0V - VDDIO)
(0V - VDDIO)
(0V - VDDIO)
ICM-20789
VDDIO
(0V, VDDIO)
AD0
Figure 14. I/O Levels and Connections
Document Number: DS-000169
Revision: 1.3
Page 33 of 62
ICM-20789
8 REGISTER MAP
Addr.
(Dec)
Addr
(Hex)
Register Names
0
00
SELF_TEST X GYRO
XG_ST_DATA[7:0]
1
01
SELF_TEST Y GYRO
YG_ST_DATA[7:0]
2
02
SELF_TEST Z GYRO
ZG_ST_DATA[7:0]
13
0D
14
0E
Bit7
Bit6
Bit5
Bit4
SELF_TEST4(X
ACCEL)
SELF_TEST5(Y
ACCEL)
SELF_TEST6(Z
ACCEL)
Bit3
0F
13
XG_OFFS_USRH
X_OFFS_USR[15:8]
20
14
XG_OFFS_USRL
X_OFFS_USR[7:0]
21
15
YG_OFFS_USRH
Y_OFFS_USR[15:8]
22
16
YG_OFFS_USRL
Y_OFFS_USR[7:0]
23
17
ZG_OFFS_USRH
Z_OFFS_USR[15:8]
24
18
ZG_OFFS_USRL
Z_OFFS_USR[7:0]
25
19
SMPLRT_DIV
26
1A
CONFIG
27
1B
GYRO CONFIG
28
1C
ACCEL_CONFIG
1D
ACCEL_CONFIG2
1E
LP_MODE_CTRL
32
20
33
21
34
22
35
23
55
37
ZA_ST_DATA[7:0]
SMPLRT_DIV[7:0]
FIFO_COUN
T_REC
XGYRO_STE
N
AX_ST_EN
FIFO_MODE
EXT_SYNC_SET[2:0]
ZGYRO_STEN
GYRO_FS_SEL[1:0]
-
AY_ST_EN
AZ_ST_EN
ACCEL_FS_SEL[4:3]
-
FIFO_SIZE[1:0]
FCHOICE_B[1:0]
-
ACCEL_FCHOICE
_B
DEC2_CFG[5:4]
GYRO_CYCL
E
-
A_DLPF_CFG[2:0]
GYRO_AVGCFG[2:0]
LPOSC_CLKSEL2[3:0]
WOM_X_THRESHOLD[7:0]
WOM_Y_THRESHOLD[7:0]
WOM_Z_THRESHOLD[7:0]
TEMP_OUT
GYRO_XOUT
GYRO_YOUT
INT_PIN_CFG
ACTL
OPEN
LATCH_INT_EN
WOM_X_IN
T_EN
WOM_Y_INT_EN
WOM_Z_INT_EN
FIFO_WM_INT
56
38
INT_ENABLE
57
39
DMP_INT_STATUS
WOM_X_IN
T
WOM_Y_INT
GYRO_ZOUT
INT_ANYRD_2CLE
AR
FIFO_OVERFLOW
_EN
ACCEL_XYZ_OU
T
-
-
-
ACTL_FSYNC
FSYNC_INT_MOD
E_EN
BYPASS_EN
-
-
GDRIVE_RDY_EN
DMP_INT_EN
RAW_RDY_EN
DMP_INT [5:0]
WOM_Z_INT
FIFO_OVERFLOW
_INT
58
3A
INT_STATUS
59
3B
ACCEL_XOUT_H
ACCEL_XOUT_H [15:8]
60
3C
ACCEL_XOUT_L
ACCEL_XOUT_L[7:0]
61
3D
ACCEL_YOUT_H
ACCEL_YOUT_H[15:8]
62
3E
ACCEL_YOUT_L
ACCEL_YOUT_L[7:0]
63
3F
ACCEL_ZOUT_H
ACCEL_ZOUT_H[15:8]
64
40
ACCEL_ZOUT_L
ACCEL_ZOUT_L[7:0]
65
41
TEMP_OUT_H
TEMP_OUT_H[15:8]
66
42
TEMP_OUT_L
TEMP_OUT_L[7:0]
67
43
GYRO_XOUT_H
GYRO_XOUT_H[15:8]
68
44
GYRO_XOUT_L
GYRO_XOUT_L[7:0]
69
45
GYRO_YOUT_H
GYRO_YOUT_H[15:8]
70
46
GYRO_YOUT_L
GYRO_YOUT_L[7:0]
71
47
GYRO_ZOUT_H
GYRO_ZOUT_H[15:8]
72
48
GYRO_ZOUT_L
GYRO_ZOUT_L[7:0]
104
68
SIGNAL_PATH_RES
ET
-
-
-
105
69
ACCEL_INTEL_CTRL
ACCEL_INTE
L_EN
ACCEL_INTEL_MO
DE
-
Document Number: DS-000169
Revision: 1.3
DLPF_CFG[2:0]
YGYRO_STEN
ACCEL_WOM_X_T
HR
ACCEL_WOM_Y_T
HR
ACCEL_WOM_Z_T
HR
FIFO_EN
Bit0
YA_ST_DATA[7:0]
19
30
Bit1
XA_ST_DATA[7:0]
15
29
Bit2
-
GDRIVE_RDY_INT
DMP_INT
RAW_DATA_RDY
_INT
-
-
GYRO_RST
ACCEL_RST
TEMP_RST
-
-
-
-
-
Page 34 of 62
ICM-20789
Addr.
(Dec)
Addr
(Hex)
Register Names
106
6A
Bit7
Bit6
Bit5
Bit4
Bit3
Bit2
Bit1
Bit0
USER_CTRL
DMP_EN
FIFO_EN
-
I2C_IF_DIS
DMP_RST
FIFO_RST
-
SIG_COND_RST
SLEEP
ACCEL_CYCLE
GYRO_STANDBY
TEMP_DIS
DMP_LP_DIS
DISABLE_XA
DISABLE_YA
DISABLE_ZA
107
6B
PWR_MGMT_1
DEVICE_RES
ET
108
6C
PWR_MGMT_2
LP_DIS
114
72
FIFO_COUNTH
FIFO_COUNTH[12:8]
115
73
FIFO_COUNTL
FIFO_COUNTL[7:0]
116
74
FIFO_R_W
FIFO_R_W[7:0]
117
75
WHO_AM_I
WHO_AM_I[7:0]
119
77
XA_OFFS_H
XA_OFFSH[14:7]
120
78
XA_OFFS_L
122
7A
YA_OFFS_H
123
7B
YA_OFFS_L
125
7D
ZA_OFFS_H
126
7E
ZA_OFFS_L
CLKSEL[2:0]
DISABLE_XG
DISABLE_YG
XA_OFFSL[6:0]
DISABLE_ZG
-
YA_OFFSH[14:7]
YA_OFFSL[6:0]
-
ZA_OFFSH[14:7]
ZA_OFFSL[6:0]
-
Table 20. Register Map
Note: Register Names ending in _H and _L contain the high and low bytes, respectively, of an internal register value.
In the detailed register tables that follow, register names are in capital letters, while register values are in capital letters and
italicized. For example, the ACCEL_XOUT_H register (Register 59) contains the 8 most significant bits, ACCEL_XOUT[15:8], of the 16bit X-Axis accelerometer measurement, ACCEL_XOUT.
The reset value is 0x00 for all registers other than the registers below, also the self-test registers contain pre-programmed values
and will not be 0x00 after reset.
•
•
Register 107 (0x40) Power Management 1
Register 117 (0x03) WHO_AM_I for ICM-20789
Document Number: DS-000169
Revision: 1.3
Page 35 of 62
ICM-20789
9 REGISTER DESCRIPTIONS
This section describes the function and contents of each register within the ICM-20789.
Note: The device will come up in sleep mode upon power-up.
9.1 REGISTERS DESCRIPTIONS
Reset values are “0” for all registers, unless otherwise specified
9.2 REGISTERS 0 TO 2 – SELF-TEST REGISTERS
Register Name: SELF_TEST X GYRO, SELF_TEST Y GYRO, SELF_TEST Z GYRO
Type: USR/CFG
Register Address: 0, 1, 2 (Decimal); 00, 01, 02 (Hex)
REGISTER
BIT
NAME
SELF_TEST X GYRO
[7:0]
XG_ST_DATA
SELF_TEST Y GYRO
[7:0]
YG_ST_DATA
SELF_TEST Z GYRO
[7:0]
ZG_ST_DATA
FUNCTION
The value in this register indicates the self-test output generated during
manufacturing tests. This value is to be used to check against
subsequent self-test outputs performed by the end user.
The value in this register indicates the self-test output generated during
manufacturing tests. This value is to be used to check against
subsequent self-test outputs performed by the end user.
The value in this register indicates the self-test output generated during
manufacturing tests. This value is to be used to check against
subsequent self-test outputs performed by the end user.
9.3 REGISTERS 13 TO 15
Register Name: SELF_TEST4(X ACCEL), SELF_TEST5(Y ACCEL), SELF_TEST6(Z ACCEL)
Register Type: USR/CFG
Register Address: 13, 14, 15 (Decimal); 0D, 0E, 0F (Hex)
REGISTER
SELF_TEST4(X ACCEL)
SELF_TEST5(Y ACCEL)
SELF_TEST6(Z ACCEL)
BIT
[7:0]
[7:0]
[7:0]
NAME
XA_ST_DATA[7:0]
YA_ST_DATA[7:0]
ZA_ST_DATA[7:0]
FUNCTION
Contains self-test data for the X Accelerometer
Contains self-test data for the Y Accelerometer
Contains self-test data for the Z Accelerometer
9.4 REGISTER 19 – GYRO OFFSET ADJUSTMENT REGISTER
Register Name: XG_OFFS_USRH
Register Type: USR
Register Address: 19 (Decimal); 13 (Hex)
BIT
[7:0]
NAME
X_OFFS_USR[15:8]
FUNCTION
Bits 15 to 8 of the 16-bit offset of X gyroscope (2’s complement). This register is used to
remove DC bias from the sensor output. The value in this register is added to the gyroscope
sensor value before going into the sensor register.
9.5 REGISTER 20 – GYRO OFFSET ADJUSTMENT REGISTER
Register Name: XG_OFFS_USRL
Register Type: USR
Register Address: 20 (Decimal); 14 (Hex)
BIT
[7:0]
NAME
X_OFFS_USR[7:0]
Document Number: DS-000169
Revision: 1.3
FUNCTION
Bits 7 to 0 of the 16-bit offset of X gyroscope (2’s complement). This register is used to
remove DC bias from the sensor output. The value in this register is added to the gyroscope
sensor value before going into the sensor register.
Page 36 of 62
ICM-20789
9.6 REGISTER 21 – GYRO OFFSET ADJUSTMENT REGISTER
Register Name: YG_OFFS_USRH
Register Type: USR
Register Address: 21 (Decimal); 15 (Hex)
INTBIT
[7:0]
NAME
Y_OFFS_USR[15:8]
FUNCTION
Bits 15 to 8 of the 16-bit offset of Y gyroscope (2’s complement). This register is used to
remove DC bias from the sensor output. The value in this register is added to the
gyroscope sensor value before going into the sensor register.
9.7 REGISTER 22 – GYRO OFFSET ADJUSTMENT REGISTER
Register Name: YG_OFFS_USRL
Register Type: USR
Register Address: 22 (Decimal); 16 (Hex)
BIT
[7:0]
NAME
Y_OFFS_USR[7:0]
FUNCTION
Bits 7 to 0 of the 16-bit offset of Y gyroscope (2’s complement). This register is used to
remove DC bias from the sensor output. The value in this register is added to the
gyroscope sensor value before going into the sensor register.
9.8 REGISTER 23 – GYRO OFFSET ADJUSTMENT REGISTER
Register Name: ZG_OFFS_USRH
Register Type: USR
Register Address: 23 (Decimal); 17 (Hex)
BIT
[7:0]
NAME
Z_OFFS_USR[15:8]
FUNCTION
Bits 15 to 8 of the 16-bit offset of Z gyroscope (2’s complement). This register is used to
remove DC bias from the sensor output. The value in this register is added to the
gyroscope sensor value before going into the sensor register.
9.9 REGISTER 24 – GYRO OFFSET ADJUSTMENT REGISTER
Register Name: ZG_OFFS_USRL
Register Type: USR
Register Address: 24 (Decimal); 18 (Hex)
BIT
NAME
[7:0]
Z_OFFS_USR[7:0]
FUNCTION
Bits 7 to 0 of the 16-bit offset of Z gyroscope (2’s complement). This register is used to
remove DC bias from the sensor output. The value in this register is added to the
gyroscope sensor value before going into the sensor register.
9.10 REGISTER 25 – SAMPLE RATE DIVIDER.
Register Name: SMPLRT_DIV
Register Type: USR
Register Address: 25 (Decimal); 19 (Hex)
BIT
NAME
[7:0]
SMPLRT_DIV[7:0]
Document Number: DS-000169
Revision: 1.3
FUNCTION
Divides the internal sample rate (see register CONFIG (0x1A)) to generate the sample rate
that controls sensor data output rate, FIFO sample rate.
Note: This register is only effective when FCHOICE_B register bits are 2’b00, and (0 < DLPF_CFG < 7).
This is the update rate of the sensor register:
SAMPLE_RATE = INTERNAL_SAMPLE_RATE / (1 + SMPLRT_DIV)
Where INTERNAL_SAMPLE_RATE = 1 kHz
Page 37 of 62
ICM-20789
9.11 REGISTER 26 – CONFIGURATION
Register Name: CONFIG
Register Type: USR
Register Address: 26 (Decimal); 1A (Hex)
BIT
[7]
NAME
FIFO_COUNT_REC
[6]
FIFO_MODE
[5:3]
EXT_SYNC_SET[2:0]
[2:0]
DLPF_CFG[2:0]
FUNCTION
Always set to 0.
When set to ‘1’, when the fifo is full, additional writes will not be written to fifo.
When set to ‘0’, when the fifo is full, additional writes will be written to the fifo,
replacing the oldest data.
Enables the FSYNC pin data to be sampled.
EXT_SYNC_SET
0
1
2
3
4
5
6
7
FSYNC bit location
function disabled
TEMP_OUT_L[0]
GYRO_XOUT_L[0]
GYRO_YOUT_L[0]
GYRO_ZOUT_L[0]
ACCEL_XOUT_L[0]
ACCEL_YOUT_L[0]
ACCEL_ZOUT_L[0]
For the DLPF to be used, FCHOICE_B[1:0] is 2’b00.
See the table below.
The DLPF is configured by DLPF_CFG, when FCHOICE_B [1:0] = 2b’00. The gyroscope and temperature sensor are filtered according
to the value of DLPF_CFG and FCHOICE_B as shown in the table below.
FCHOICE_B
Gyroscope
DLPF_CFG
X
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
X
X
0
1
2
3
4
5
6
7
3-dB BW
(Hz)
Noise BW
(Hz)
8173
3281
250
176
92
41
20
10
5
3281
8595.1
3451.0
306.6
177.0
108.6
59.0
30.5
15.6
8.0
3451.0
Temperature
Sensor
3-dB BW (Hz)
4000
4000
4000
188
98
42
20
10
5
4000
9.12 REGISTER 27 – GYROSCOPE CONFIGURATION
Register Name: GYRO CONFIG
Register Type: USR
Register Address: 27 (Decimal); 1B (Hex)
BIT
[7]
[6]
[5]
NAME
XGYRO_STEN
YGYRO_STEN
ZGYRO_STEN
[4:3]
GYRO_FS_SEL[1:0]
[2]
[1:0]
FCHOICE_B[1:0]
Document Number: DS-000169
Revision: 1.3
FUNCTION
X Gyro self-test.
Y Gyro self-test.
Z Gyro self-test.
Gyro Full Scale Select:
00 = ±250 dps
01= ±500 dps
10 = ± 1000 dps
11 = ±2000 dps
Reserved.
NOTE: Register is Fchoice_b (inverted version of Fchoice)
Page 38 of 62
ICM-20789
9.13 REGISTER 28 – ACCELEROMETER CONFIGURATION
Register Name: ACCEL_CONFIG
Register Type: USR
Register Address: 28 (Decimal); 1C (Hex)
BIT
[7]
[6]
[5]
AX_ST_EN
AY_ST_EN
AZ_ST_EN
NAME
[4:3]
ACCEL_FS_SEL[1:0]
[2:0]
-
FUNCTION
X Accel self-test.
Y Accel self-test.
Z Accel self-test.
Accel Full Scale Select:
±2g (00), ±4g (01), ±8g (10), ±16g (11)
Reserved.
9.14 REGISTER 29 – ACCELEROMETER CONFIGURATION 2
Register Name: ACCEL_CONFIG2
Register Type: USR
Register Address: 29 (Decimal); 1D (Hex)
BIT
[7:6]
NAME
FUNCTION
Fifo size control:
0=512bytes,
1=1 KB,
2=2 KB,
3=4 KB
FIFO_SIZE[1:0]
NOTE: After the fifo size has been changed, the fifo should be reset.
[5:4]
DEC2_CFG
[3]
ACCEL_FCHOICE_B
[2:0]
A_DLPF_CFG
Controls the number of samples averaged in the accel
decimator 2:
0 = average 4 samples
1 = average 8 samples
2 = average 16 samples
3 = average 32 samples
Used to bypass DLPF as shown in table 2 below.
NOTE: This register contains accel_fchoice_b (the inverted version
of accel_fchoice as described in the table below).
Accelerometer low pass filter setting as shown in table
below.
Accelerometer
ACCEL_FCHOICE_B
A_DLPF_CFG
1
0
0
0
0
0
0
0
0
X
0
1
2
3
4
5
6
7
3-dB BW (Hz)
1046.0
218.1
218.1
99.0
44.8
21.2
10.2
5.1
420.0
Table 21. Accelerometer Data Rates and Bandwidths (Low Noise Mode)
Notes:
1.
2.
The data rate out of the DLPF filter block can be further reduced by a factor of 1/(1+SMPLRT_DIV), where SMPLRT_DIV is an 8-bit integer.
Data should be sampled at or above sample rate; SMPLRT_DIV is only used for1 kHz internal sampling.
Document Number: DS-000169
Revision: 1.3
Page 39 of 62
ICM-20789
In the low-power mode of operation, the accelerometer is duty-cycled. For each ODR, there are several bandwidth settings
corresponding to different numbers of averages per measurement cycle of the Dec1 output.
ACCEL_FCHOICE_B
A_DLPF_CFG
DEC2_CFG
Averages
Ton (ms)
Noise BW (Hz)
Noise (mg) TYP based on
150 µg/√Hz
SMPLRT_DIV
ODR (Hz)
255
3.9
127
7.8
63
15.6
31
31.3
15
62.5
7
125.0
3
250.0
1
500.0
1
x
x
1x
1.084
1100.0
0
7
0
4x
1.84
441.6
0
7
1
8x
2.84
235.4
0
7
2
16x
4.84
121.3
0
7
3
32x
8.84
61.5
8.3
5.3
3.8
2.8
2.0
8.4
9.8
12.8
18.7
30.4
57.4
100.9
194.9
Current Consumption (µA) TYP
9.4
10.8
13.6
11.9
14.7
20.3
17.0
22.5
33.7
27.1
38.2
60.4
47.2
69.4
113.9
87.5
132.0
220.9
168.1
257.0
N/A
329.3
N/A
19.2
31.4
55.9
104.9
202.8
N/A
Table 22. Accelerometer Data Rates and Bandwidths (Low-Power Mode)
•
•
•
Gyros ON: When at least one axis of the Gyro is ON, then the ODR is determined by the gyro_fchoice and dlpf_cfg.
Gyro OFF and normal Accel mode: When all the axes of Gyro are turned off and in normal Accel mode, then the ODR is
determined by accel_fchoice and dlpf_cfg.
Low power Accel mode: In low power Accel mode, the ODR is determined by Accel_fchoice and dec2_cfg
9.15 REGISTER 30 – LOW POWER MODE CONFIGURATION
Register Name: LP_MODE_CTRL
Register Type: USR
Register Address: 30 (Decimal); 1E (Hex)
BIT
[7]
[6:4]
[3:0]
NAME
GYRO_CYCLE
GYRO_AVGCFG[2:0]
LPOSC_CLKSEL[3:0]
FUNCTION
Enable gyro duty cycling.
Averaging filter configuration for gyro duty cycling.
Reserved.
To operate in gyroscope low-power mode or 6-axis low-power mode, GYRO_CYCLE should be set to ‘1.’ Gyroscope filter
configuration is determined by G_AVGCFG[2:0] that sets the averaging filter configuration. It is not dependent on DLPF_CFG[2:0].
The following table shows some example configurations for gyroscope low power mode.
Document Number: DS-000169
Revision: 1.3
Page 40 of 62
ICM-20789
FCHOICE_B
G_AVGCFG
Averages
Ton (ms)
Noise BW (Hz)
Noise (dps) TYP based on
0.006 dps/√Hz
SMPLRT_DIV
ODR (Hz)
255
3.9
99
10.0
64
15.4
32
30.3
19
50.0
9
100.0
7
125.0
4
200.0
3
250.0
2
333.3
1
500.0
0
0
1x
1.73
650.8
0
1
2x
2.23
407.1
0
2
4x
3.23
224.2
0
3
8x
5.23
117.4
0
4
16x
9.23
60.2
0
5
32x
17.23
30.6
0
6
64x
33.23
15.6
0
7
128x
65.23
8.0
0.15
0.12
0.09
0.07
0.05
0.03
0.02
0.02
1.3
1.3
1.4
1.4
1.5
1.6
1.7
1.9
2.1
2.3
2.9
1.3
1.3
1.4
1.4
1.5
1.7
1.8
2.1
2.3
2.6
1.3
1.4
1.4
1.5
1.6
1.9
2.0
2.5
2.7
1.4
1.6
1.8
2.2
2.8
1.5
1.9
2.2
1.8
2.5
N/A
Current Consumption (mA) TYP
1.3
1.4
1.4
1.5
1.5
1.6
1.6
1.8
1.8
2.1
2.2
3.0
2.5
N/A
N/A
N/A
N/A
N/A
N/A
9.16 REGISTER 32 – WAKE ON MOTION THRESHOLD
Register Name: ACCEL_WOM_X_THR
Register Type: USR
Register Address: 32 (Decimal); 20 (Hex)
BIT
[7:0]
NAME
WOM_X_Threshold
FUNCTION
Accel WOM threshold for x-axis.
9.17 REGISTER 33 – WAKE ON MOTION THRESHOLD
Register Name: ACCEL_WOM_Y_THR
Register Type: USR
Register Address: 33 (Decimal); 21 (Hex)
BIT
[7:0]
NAME
WOM_Y_Threshold
FUNCTION
Accel WOM threshold for y-axis.
9.18 REGISTER 34 – WAKE ON MOTION THRESHOLD
Register Name: ACCEL_WOM_Z_THR
Register Type: USR
Register Address: 34 (Decimal); 22 (Hex)
BIT
[7:0]
NAME
WOM_Z_Threshold
Document Number: DS-000169
Revision: 1.3
FUNCTION
Accel WOM threshold for z-axis.
Page 41 of 62
ICM-20789
9.19 REGISTER 35 – FIFO ENABLE
FIFO enable takes effect during the idle state of the sequence controller.
Register Name: FIFO_EN
Register Type: USR
Register Address: 35 (Decimal); 23 (Hex)
BIT
NAME
[7]
TEMP_OUT
[6]
GYRO_XOUT
[5]
GYRO_YOUT
FUNCTION
1 – Write TEMP_OUT_H and TEMP_OUT_L to the FIFO at the sample
rate; If enabled, buffering of data occurs even if data path is in standby.
0 – Function is disabled.
1 – Write GYRO_XOUT_H and GYRO_XOUT_L to the FIFO at the sample
rate; If enabled, buffering of data occurs even if data path is in standby.
0 – Function is disabled.
1 – Write GYRO_YOUT_H and GYRO_YOUT_L to the FIFO at the sample
rate; If enabled, buffering of data occurs even if data path is in standby.
0 – Function is disabled.
NOTE: Enabling any one of the bits corresponding to the Gyros or Temp data
paths, data is buffered into the FIFO even though that data path is not enabled.
[4]
GYRO_ZOUT
[3]
ACCEL_XYZ_OUT
[2]
[1]
[0]
-
1 – Write GYRO_ZOUT_H and GYRO_ZOUT_L to the FIFO at the sample
rate; If enabled, buffering of data occurs even if data path is in standby.
0 – Function is disabled.
1 – Write ACCEL_XOUT_H, ACCEL_XOUT_L, ACCEL_YOUT_H,
ACCEL_YOUT_L, ACCEL_ZOUT_H, and ACCEL_ZOUT_L to the FIFO at the
sample rate;
0 – Function is disabled.
Reserved.
Reserved.
Reserved.
9.20 REGISTER 55 – INTERRUPT/BYPASS PIN CONFIGURATION
Register Name: INT_PIN_CFG
Register Type: USR
Register Address: 55 (Decimal); 37 (Hex)
BIT
NAME
[7]
ACTL
[6]
OPEN
[5]
LATCH_INT_EN
[4]
INT_ANYRD_2CLEAR
[3]
ACTL_FSYNC
[2]
FSYNC_INT_MODE_EN
[1]
[0]
BYPASS_EN
-
Document Number: DS-000169
Revision: 1.3
FUNCTION
1 – The logic level for INT pin is active low.
0 – The logic level for INT pin is active high.
1 – INT pin is configured as open drain.
0 – INT pin is configured as push-pull.
1 – INT pin level held until interrupt status is cleared.
0 – INT pin indicates interrupt pulse’s is width 50 µs.
1 – Interrupt status is cleared if any read operation is performed.
0 – Interrupt status is cleared only by reading INT_STATUS register.
1 – The logic level for the FSYNC pin as an interrupt is active low.
0 – The logic level for the FSYNC pin as an interrupt is active high.
1 – This enables the FSYNC pin to be used as an interrupt. A transition to the active level
described by the ACTL_FSYNC bit will cause an interrupt. The status of the interrupt is
read in the I2C Master Status register PASS_THROUGH bit.
0 – This disables the FSYNC pin from causing an interrupt.
When asserted, will go into ‘bypass mode’ where the I2C master interface is disabled.
Reserved.
Page 42 of 62
ICM-20789
9.21 REGISTER 56 – INTERRUPT ENABLE
Register Name: INT_ENABLE
Register Type: USR
Register Address: 56 (Decimal); 38 (Hex)
BIT
[7]
[6]
[5]
NAME
WOM_X_INT_EN
WOM_Y_INT_EN
WOM_Z_INT_EN
[4]
FIFO_OVERFLOW_EN
[3]
-
[2]
GDRIVE_RDY_EN
[1]
DMP_INT_EN
[0]
RAW_RDY_EN
FUNCTION
1 – Enable wake on motion interrupt on accel X-axis
1 – Enable wake on motion interrupt on accel Y-axis,
1 – Enable wake on motion interrupt on accel Z-axis
1 – Enable interrupt for FIFO overflow to propagate to interrupt pin.
0 – Function is disabled.
Reserved
1 – Enable gyro drive rdy interrupt to propagate to interrupt pin.
0 – Function is disabled.
1 – Enable DMP interrupt to propagate to interrupt pin.
0 – Function is disabled.
1 – Enable Raw Sensor Data Ready interrupt to propagate to interrupt pin.
0 – Function is disabled.
9.22 REGISTER 57 – DMP INTERRUPT STATUS
Register Name: DMP_INT_STATUS
Register Type: USR
Register Address: 57 (Decimal); 39 (Hex)
BIT
[6]
[5:0]
NAME
FIFO_WM_INT
DMP_INT
FUNCTION
Reserved.
DMP Interrupt Status.
9.23 REGISTER 58 – INTERRUPT STATUS
Register Name: INT_STATUS
Register Type: USR
Register Address: 58 (Decimal); 3A (Hex)
BIT
[7]
[6]
[5]
NAME
WOM_X_INT
WOM_Y_INT
WOM_Z_INT
[4]
FIFO_OVERFLOW_INT
[3]
[2]
[1]
[0]
GDRIVE_RDY_INT
DMP_INT
RAW_DATA_RDY_INT
FUNCTION
Wake on motion interrupt triggered on x-axis.
Wake on motion interrupt triggered on y-axis.
Wake on motion interrupt triggered on z-axis.
1 – FIFO Overflow interrupt occurred. Note that the oldest data is has been dropped from
the FIFO.
Reserved.
1 – Indicates that the gyro drive has been enabled and is ready.
1 – The DMP has generated an Interrupt.
1 – Sensor Register Raw Data sensors are updated and Ready to be read.
9.24 REGISTER 59 – ACCELEROMETER MEASUREMENTS
Register Name: ACCEL_XOUT_H
Register Type: USR
Register Address: 59 (Decimal); 3B (Hex)
BIT
[7:0]
NAME
ACCEL_XOUT_H [15:8]
FUNCTION
High byte of accelerometer x-axis data.
9.25 REGISTER 60 – ACCELEROMETER MEASUREMENTS
Register Name: ACCEL_XOUT_L
Register Type: USR
Register Address: 60 (Decimal); 3C (Hex)
BIT
[7:0]
NAME
ACCEL_XOUT_L [7:0]
Document Number: DS-000169
Revision: 1.3
FUNCTION
Low byte of accelerometer x-axis data.
Page 43 of 62
ICM-20789
9.26 REGISTER 61 – ACCELEROMETER MEASUREMENTS
Register Name: ACCEL_YOUT_H
Register Type: USR
Register Address: 61 (Decimal); 3D (Hex)
BIT
[7:0]
NAME
ACCEL_YOUT_H [15:8]
FUNCTION
High byte of accelerometer y-axis data.
9.27 REGISTER 62 – ACCELEROMETER MEASUREMENTS
Register Name: ACCEL_YOUT_L
Register Type: USR
Register Address: 62 (Decimal); 3E (Hex)
BIT
[7:0]
NAME
ACCEL_YOUT_L [7:0]
FUNCTION
Low byte of accelerometer y-axis data.
9.28 REGISTER 63 – ACCELEROMETER MEASUREMENTS
Register Name: ACCEL_ZOUT_H
Register Type: USR
Register Address: 63 (Decimal); 3F (Hex)
BIT
[7:0]
NAME
ACCEL_ZOUT_H [15:8]
FUNCTION
High byte of accelerometer z-axis data.
9.29 REGISTER 64 – ACCELEROMETER MEASUREMENTS
Register Name: ACCEL_ZOUT_L
Register Type: USR
Register Address: 64 (Decimal); 40 (Hex)
BIT
[7:0]
NAME
ACCEL_ZOUT_L [7:0]
FUNCTION
Low byte of accelerometer z-axis data.
9.30 REGISTER 65 – TEMPERATURE MEASUREMENT
Register Name: TEMP_OUT_H
Register Type: USR
Register Address: 65 (Decimal); 41 (Hex)
BIT
[7:0]
NAME
TEMP_OUT_H[15:8]
FUNCTION
High byte of the temperature sensor output.
9.31 REGISTER 66 – TEMPERATURE MEASUREMENT
Register Name: TEMP_OUT_L
Register Type: USR
Register Address: 66 (Decimal); 42 (Hex)
BIT
[7:0]
NAME
TEMP_OUT_L[7:0]
FUNCTION
Low byte of the temperature sensor output.
9.32 REGISTER 67 – GYROSCOPE MEASUREMENT
Register Name: GYRO_XOUT_H
Register Type: USR
Register Address: 67 (Decimal); 43 (Hex)
BIT
[7:0]
NAME
GYRO_XOUT_H[15:8]
Document Number: DS-000169
Revision: 1.3
FUNCTION
High byte of the x-axis gyroscope output.
Page 44 of 62
ICM-20789
9.33 REGISTER 68 – GYROSCOPE MEASUREMENT
Register Name: GYRO_XOUT_L
Register Type: USR
Register Address: 68 (Decimal); 44 (Hex)
BIT
[7:0]
NAME
GYRO_XOUT_L[7:0]
FUNCTION
Low byte of the x-axis gyroscope output.
9.34 REGISTER 69 – GYROSCOPE MEASUREMENT
Register Name: GYRO_YOUT_H
Register Type: USR
Register Address: 69 (Decimal); 45 (Hex)
BIT
[7:0]
NAME
GYRO_YOUT_H[15:8]
FUNCTION
High byte of the y-axis gyroscope output.
9.35 REGISTER 70 – GYROSCOPE MEASUREMENT
Register Name: GYRO_YOUT_L
Register Type: USR
Register Address: 70 (Decimal); 46 (Hex)
BIT
[7:0]
NAME
GYRO_YOUT_L[7:0]
FUNCTION
Low byte of the y-axis gyroscope output.
9.36 REGISTER 71 – GYROSCOPE MEASUREMENT
Register Name: GYRO_ZOUT_H
Register Type: USR
Register Address: 71 (Decimal); 47 (Hex)
BIT
[7:0]
NAME
GYRO_ZOUT_H[15:8]
FUNCTION
High byte of the z-axis gyroscope output.
9.37 REGISTER 72 – GYROSCOPE MEASUREMENT
Register Name: GYRO_ZOUT_L
Register Type: USR
Register Address: 72 (Decimal); 48 (Hex)
BIT
[7:0]
NAME
GYRO_ZOUT_L[7:0]
FUNCTION
Low byte of the z-axis gyroscope output.
9.38 REGISTER 104 – SIGNAL PATH RESET
Register Name: SIGNAL_PATH_RESET
Register Type: USR/CFG
Register Address: 104 (Decimal); 68 (Hex)
BIT
[7:3]
NAME
-
[2]
GYRO_RST
[1]
ACCEL_RST
[0]
TEMP_RST
Document Number: DS-000169
Revision: 1.3
FUNCTION
Reserved.
Reset gyro digital signal path.
Note: Sensor registers are not cleared. Use SIG_COND_RST to clear sensor registers.
Reset accel digital signal path.
Note: Sensor registers are not cleared. Use SIG_COND_RST to clear sensor registers.
Reset temp digital signal path.
Note: Sensor registers are not cleared. Use SIG_COND_RST to clear sensor registers.
Page 45 of 62
ICM-20789
9.39 REGISTER 105 – ACCELEROMETER INTELLIGENCE CONTROL
Register Name: ACCEL_INTEL_CTRL
Register Type: USR/CFG
Register Address: 105 (Decimal); 69 (Hex)
BIT
[7]
NAME
ACCEL_INTEL_EN
[6]
ACCEL_INTEL_MODE
[5:4]
[3:2]
1
0
-
FUNCTION
Enable the WOM logic.
This bit defines
1 = compare the current sample with the previous sample.
0 = initial sample is stored; all future samples are compared to the initial sample.
Reserved.
Reserved.
Reserved.
Reserved.
9.40 REGISTER 106 – USER CONTROL
Register Name: USER_CTRL
Register Type: USR/CFG
Register Address: 106 (Decimal); 6A (Hex)
BIT
NAME
[7]
DMP_EN
[6]
FIFO_EN
[5]
[4]
[3]
[2]
[1]
I2C_IF_DIS
DMP_RST
FIFO_RST
-
[0]
SIG_COND_RST
Document Number: DS-000169
Revision: 1.3
FUNCTION
1 – Enable DMP operation mode.
0 – Freeze DMP processing after DMP Done (finish) with current processing sample.
NOTE: DMP will run when enabled, even if all sensors are disabled, except when the sample rate is
set to 8 kHz.
1 – Enable FIFO operation mode.
0 – Disable FIFO access from serial interface. To disable FIFO writes by dma, use FIFO_EN
register. To disable possible FIFO writes from dmp, disable the dmp.
Reserved.
1 – Reset I2C Slave module.
1 – Reset DMP module. Reset is asynchronous. This bit auto clears after one clock cycle.
1 – Reset FIFO module. Reset is asynchronous. This bit auto clears after one clock cycle.
Reserved.
1 – Reset all gyro digital signal path, accel digital signal path, and temp digital signal path.
This bit also clears all the sensor registers. SIG_COND_RST is a pulse of one clk8M wide.
Page 46 of 62
ICM-20789
9.41 REGISTER 107 – POWER MANAGEMENT 1
Register Name: PWR_MGMT_1
Register Type: USR/CFG
Register Address: 107 (Decimal); 6B (Hex)
BIT
NAME
[7]
DEVICE_RESET
[6]
SLEEP
[5]
ACCEL_CYCLE
[4]
GYRO_STANDBY
[3]
TEMP_DIS
[2:0]
CLKSEL[2:0]
FUNCTION
1 – Reset the internal registers and restores the default settings. The bit automatically clears
to 0 once the reset is done.
1 – The chip is set to sleep mode.
Note: The default value is 1; the chip comes up in Sleep mode
When set to 1, and SLEEP and STANDBY are not set to 1, the chip will cycle between sleep
and taking a single accelerometer sample at a rate determined by SMPLRT_DIV
Note: When all accelerometer axes are disabled via PWR_MGMT_2 register bits and cycle is enabled, the
chip will wake up at the rate determined by the respective registers above, but will not take any
samples.
When set, the gyro drive and pll circuitry are enabled, but the sense paths are disabled. This
is a low power mode that allows quick enabling of the gyros.
When set to 1, this bit disables the temperature sensor.
Code
0
1
2
3
4
5
6
7
Clock Source
Internal 20 MHz oscillator
Auto selects the best available clock source – PLL if ready, else use the Internal oscillator
Auto selects the best available clock source – PLL if ready, else use the Internal oscillator
Auto selects the best available clock source – PLL if ready, else use the Internal oscillator
Auto selects the best available clock source – PLL if ready, else use the Internal oscillator
Auto selects the best available clock source – PLL if ready, else use the Internal oscillator
Internal 20 MHz oscillator
Stops the clock and keeps timing generator in reset
9.42 REGISTER 108 – POWER MANAGEMENT 2
Register Name: PWR_MGMT_2
Register Type: USR/CFG
Register Address: 108 (Decimal); 6C (Hex)
BIT
NAME
[7]
LP_DIS
[6]
DMP_LP_DIS
[5]
DISABLE_XA
[4]
DISABLE_YA
[3]
DISABLE_ZA
[2]
DISABLE_XG
[1]
DISABLE_YG
[0]
DISABLE_ZG
FUNCTION
Low power disable bit. When cleared the system will enter sleep when gyro is disabled
and accel is off while duty cycling.
When cleared DMP will execute in low power accel mode.
When set DMP will not execute in low power accel mode.
1 – X accelerometer is disabled.
0 – X accelerometer is on.
1 – Y accelerometer is disabled.
0 – Y accelerometer is on.
1 – Z accelerometer is disabled.
0 – Z accelerometer is on.
1 – X gyro is disabled.
0 – X gyro is on.
1 – Y gyro is disabled.
0 – Y gyro is on.
1 – Z gyro is disabled.
0 – Z gyro is on.
9.43 REGISTER 114 – FIFO COUNT REGISTERS
Register Name: FIFO_COUNTH
Register Type: USR/CFG
Register Address: 114 (Decimal); 72 (Hex)
BIT
[7:5]
NAME
NOT IMPLEMENTED
[4:0]
FIFO_COUNTH[12:8]
Document Number: DS-000169
Revision: 1.3
FUNCTION
Hard coded to ‘000’.
High Bits, count indicates the number of written bytes in the FIFO.
Reading this byte latches the data for both FIFO_COUNTH, and FIFO_COUNTL.
Page 47 of 62
ICM-20789
9.44 REGISTER 115 – FIFO COUNT REGISTERS
Register Name: FIFO_COUNTL
Register Type: USR/CFG
Register Address: 115 (Decimal); 73 (Hex)
BIT
NAME
[7:0]
FIFO_COUNTL[7:0]
FUNCTION
Low Bits, count indicates the number of written bytes in the FIFO.
NOTE: Must read FIFO_COUNTH to latch new data for both FIFO_COUNTH and FIFO_COUNTL.
9.45 REGISTER 116 – FIFO READ WRITE
Register Name: FIFO_R_W
Register Type: USR/CFG
Register Address: 116 (Decimal); 74 (Hex)
BIT
[7:0]
NAME
FIFO_R_W[7:0]
FUNCTION
Read/Write command provides Read or Write operation for the FIFO.
Description:
This register is used to read and write data from the FIFO buffer.
Data is written to the FIFO in order of register number (from lowest to highest). If all the FIFO enable flags (see below) are enabled,
the contents of registers 59 through 72 will be written in order at the Sample Rate.
The contents of the sensor data registers (Registers 59 to 72) are written into the FIFO buffer when their corresponding FIFO enable
flags are set to 1 in FIFO_EN (Register 35).
If the FIFO buffer has overflowed, the status bit FIFO_OFLOW_INT is automatically set to 1. This bit is located in INT_STATUS
(Register 58). When the FIFO buffer has overflowed, the oldest data will be lost and new data will be written to the FIFO unless
register 26 CONFIG, bit[6] FIFO_MODE = 1.
If the FIFO buffer is empty, reading register FIFO_DATA will return a unique value of 0xFF until new data is available. Normal data is
precluded from ever indicating 0xFF, so 0xFF gives a trustworthy indication of FIFO empty.
9.46 REGISTER 117 – WHO AM I
Register Name: WHOAMI
Register Type: USR/CFG
Register Address: 117 (Decimal); 75 (Hex)
BIT
[7:0]
NAME
WHOAMI
FUNCTION
Register to indicate to user which device is being accessed.
This register is used to verify the identity of the device. The contents of WHOAMI is an 8-bit device ID.
9.47 REGISTER 119 – ACCELEROMETER OFFSET REGISTER
Register Name: XA_OFFS_H
Register Type: CFG
Register Address: 119 (Decimal); 77 (Hex)
BIT
NAME
[7:0]
XA_OFFSH[14:7]
Document Number: DS-000169
Revision: 1.3
FUNCTION
Upper bits of the X accelerometer offset cancellation. ±16g Offset cancellation in all FullScale modes, 15 bit 0.98-mg steps.
Page 48 of 62
ICM-20789
9.48 REGISTER 120 – ACCELEROMETER OFFSET REGISTER
Register Name: XA_OFFS_L
Register Type: CFG
Register Address: 120 (Decimal); 78 (Hex)
BIT
NAME
[7:1]
XA_OFFSL[6:0]
[0]
-
FUNCTION
Lower bits of the X accelerometer offset cancellation. ±16g Offset cancellation in all FullScale modes, 15 bit 0.98-mg steps
Reserved.
9.49 REGISTER 122 – ACCELEROMETER OFFSET REGISTER
Register Name: YA_OFFS_H
Register Type: CFG
Register Address: 122 (Decimal); 7A (Hex)
BIT
NAME
[7:0]
YA_OFFSH[14:7]
FUNCTION
Upper bits of the Y accelerometer offset cancellation. ±16g Offset cancellation in all FullScale modes, 15 bit 0.98-mg steps.
9.50 REGISTER 123 – ACCELEROMETER OFFSET REGISTER
Register Name: YA_OFFS_L
Register Type: CFG
Register Address: 123 (Decimal); 7B (Hex)
BIT
NAME
[7:1]
YA_OFFSL[6:0]
[0]
-
FUNCTION
Lower bits of the Y accelerometer offset cancellation. ±16g Offset cancellation in all FullScale modes, 15 bit 0.98-mg steps.
Reserved.
9.51 REGISTER 125 – ACCELEROMETER OFFSET REGISTER
Register Name: ZA_OFFS_H
Register Type: CFG
Register Address: 125 (Decimal); 7D (Hex)
BIT
[7:0]
NAME
ZA_OFFSH[14:7]
FUNCTION
Upper bits of the Z accelerometer offset cancellation. ±16g Offset cancellation in all FullScale modes, 15 bit 0.98-mg steps.
9.52 REGISTER 126 – ACCELEROMETER OFFSET REGISTER
Register Name: ZA_OFFS_L
Register Type: CFG
Register Address: 126 (Decimal); 7E (Hex)
BIT
NAME
[7:1]
ZA_OFFSL[6:0]
[0]
-
Document Number: DS-000169
Revision: 1.3
FUNCTION
Lower bits of the Z accelerometer offset cancellation. ±16g Offset cancellation in all FullScale modes, 15 bit 0.98-mg steps.
Reserved.
Page 49 of 62
ICM-20789
10 PRESSURE SENSOR – HOW TO READ
10.1 I2C OPERATION AND COMMUNICATION
All commands and memory locations of the ICM-20789 are mapped to a 16-bit address space which can be accessed via the I2C
protocol.
ICM-20789
I2C Address
Bin.
110’0011
Dec.
99
Hex.
0x63
Table 23. ICM-20789 I2C Device Address
Power-Up and Communication Start
Upon VDD reaching the power-up voltage level VPOR, the ICM-20789 enters idle state after a duration of tPU. In idle state, the ICM20789 is ready to receive commands from the master (microcontroller).
Each transmission sequence begins with START condition (S) and ends with an (optional) STOP condition (P) as described in the I2Cbus specification. Whenever the sensor is powered up, but not performing a measurement or communicating, it automatically
enters idle state for energy saving.
Measurement Commands
The ICM-20789 provides the possibility to define the sensor behavior during measurement as well as the transmission sequence of
measurement results. These characteristics are defined by the appropriate measurement command (see Table 24). Each
measurement command triggers both a temperature and a pressure measurement.
OPERATION MODE
Low Power (LP)
Normal (N)
Low Noise (LN)
Ultra-Low Noise (ULN)
TRANSMIT T FIRST
0x609C
0x6825
0x70DF
0x7866
TRANSMIT P FIRST
0x401A
0x48A3
0x5059
0x58E0
Table 24. Measurement Commands
Starting a Measurement
A measurement communication sequence consists of a START condition followed by the I2C header with the 7-bit I2C device address
and a write bit (write W: ‘0’, 8-bit word including I2C header: 0xC6). The sensor indicates the proper reception of a byte by pulling
the SDA pin low (ACK bit) after the falling edge of the 8th SCL clock. Then the sensor is ready to receive a 16-bit measurement
command. Again, the ICM-20789 acknowledges the proper reception of each byte with ACK condition.
With the acknowledgement of the measurement command, the ICM-20789 starts measuring pressure and temperature.
Sensor Behavior during Measurement
In general, the sensor does not respond to any I2C activity during measurement, i.e. I2C read and write headers are not
acknowledged (NACK).
Readout of Measurement Results
After a measurement command has been issued and the sensor has completed the measurement, the master can read the
measurement results by sending a START condition followed by an I2C read header (8-bit word including I2C header: 0xC7). The
sensor will acknowledge the reception of the read header and send the measured data in the specified order to the master. The MSB
of the corresponding data is always transmitted first. Temperature data is transmitted in two 8-bit words and pressure data is
transmitted in four 8-bit words. Regarding the pressure data, only the first three words MMSB, MLSB and LMSB contain information
about the ADC pressure value. Therefore, for retrieving the ADC pressure value, LLSB must be disregarded:
pdout = MMSB ≪ 16 | MLSB ≪ 8| LMSB.
Two bytes of data are always followed by one byte CRC checksum, for calculation see the Checksum Calculation section. Each byte
must be acknowledged by the microcontroller with an ACK condition for the sensor to continue sending data. If the ICM-20789 does
not receive an ACK from the master after any byte of data, it will not continue sending data.
Document Number: DS-000169
Revision: 1.3
Page 50 of 62
ICM-20789
Whether the sensor sends out pressure or temperature data first depends on the measurement command that was sent to the
sensor to initiate the measurement. The I2C master can abort the read transfer with a NACK condition after any data byte if it is not
interested in subsequent data, e.g. the CRC byte or the second measurement result, in order to save time.
Soft Reset
The ICM-20789 provides a soft reset mechanism that forces the system into a well-defined state without removing the power
supply. If the system is in idle state (i.e. if no measurement is in progress) the soft reset command will be accepted by ICM-20789.
This triggers the sensor to reset all internal state machines and reload calibration data from the memory.
Command
Soft reset
Hex Code
0x805D
Binary Code
1000’0000’0101’1101
Table 25. Soft Reset Command
Read-out of ID Register
The ICM-20789 has an ID register which contains a specific product code. The read-out of the ID register can be used to verify the
presence of the sensor and proper communication. The command to read the ID register is shown in Table 21.
Command
Read ID Register
Hex Code
0xEFC8
Binary Code
1110’1111’1100’1000
Table 26. Read-Out Command of ID Register
It needs to be sent to the ICM-20789 after an I2C write header. After the ICM-20789 has acknowledged the proper reception of the
command, the master can send an I2C read header and the ICM-20789 will submit the 16-bit ID followed by 8 bits of CRC. The
structure of the ID is described in Table 22.
Table 27. Structure of the 16-bit ID
Bits 15:6 of the ID contain unspecified information (marked as “x”), which may vary from sensor to sensor, while bits 5:0 contain the
ICM-20789-specific product code.
Checksum Calculation
The 8-bit CRC checksum transmitted after each data word is generated by a CRC algorithm with the properties displayed in Table 23.
The CRC covers the contents of the two previously transmitted data bytes.
Property
Name
Width
Polynomial
Initialization
Reflect input
Reflect output
Final XOR
Examples
Value
CRC-8
8 bits
0x31 (x8 + x5 + x4 + 1)
0xFF
false
false
0x00
CRC(0x00) = 0xAC
CRC(0xBEEF) = 0x92
Table 28. ICM-20789 I2C CRC Properties
Conversion of Signal Output
Pressure measurement data is always transferred as 4 8-bit words; temperature measurement data is always transferred as two 8bit words. Please see Readout of Measurement Results (Page 44) for more details.
Document Number: DS-000169
Revision: 1.3
Page 51 of 62
ICM-20789
Temperature measurement values t_dout are linearized by the ICM-20789 and must be calculated to °C by the user via the following
formula:
T = - 45°C + (175°C / 216) x t_dout
For retrieving physical pressure values in Pa the following conversion formula has to be used:
P = A + B / (C + pdout)
where pdout is the sensor’s raw pressure output. The converted output is compensated for temperature effects via the temperature
dependent functions A, B and C. Besides the raw temperature output t_dout, the calculation of A, B and C requires to access
calibration parameters OTP0, OTP1, OTP2, OTP3 stored in the OTP of the sensor.
Full sample code for calculating physical pressure values is given in the Sample Code section. The general workflow of the conversion
is done by:
1) Import class Invensense_pressure_conversion
2) Read out values OTP0, …, OTP3 and save to c1, …, c4
3) Create object name for an individual sensor with parameter values c1, …, c4
name = Invensense_pressure_conversion ([c1,c2,c3,c4])
4) Get raw pressure p_dout and temperature t_dout data from the sensor as described in chapter Readout of Measurement
Results.
5) Call function get_pressure: name.get_pressure(p_dout, t_dout)
The Sample Code section gives an example of this workflow.
Read-out of calibration parameters
For converting raw pressure data to physical values, four calibration parameters have to be retrieved from the OTP of the sensor.
Set up of OTP read:
1) Send I2C write header 0xC6
2) Send command 0xC595 (move pointer in address register)
3) Send address parameter together with its CRC 0x00669C
Steps 1) – 3) can be done on many platforms by a single I2C write of the value 0xC59500669C.
Read out parameters:
Repeat the following procedure 4 times:
a. Send I2C write header 0xC6
b. Send command 0xC7F7 (incremental read-out of OTP)
c. Send I2C read header 0xC7
d. Read 3Byte (2Byte of data and 1Byte of CRC)
e. Decode data as 16-bit big endian signed integer and store result into n-th calibration parameter cn.
Steps a) to d) can be done on many platforms by a single write 0xC7F7 to the chip address followed by a single read of 3 Byte from
the chip slave device address.
Sample Pseudo Code: conversion formula (exemplary python syntax)
class Invensense_pressur_Conversion:
""" Class for conversion of the pressure and temperature output of the Invensense sensor"""
def __init__(self, sensor_constants):
""" Initialize customer formula
Arguments:
sensor_constants -- list of 4 integers: [c1, c2, c3, c4]
"""
self.sensor_constants = sensor_constants
# configuration for Pressure Samples
self.p_Pa_calib = [45000.0, 80000.0, 105000.0]
self.LUT_lower = 3.5 * (2**20)
self.LUT_upper = 11.5 * (2**20)
self.quadr_factor = 1 / 16777216.0
self.offst_factor = 2048.0
Document Number: DS-000169
Revision: 1.3
Page 52 of 62
ICM-20789
def calculate_conversion_constants(self, p_Pa, p_LUT):
""" calculate temperature dependent constants
Arguments:
p_Pa -- List of 3 values corresponding to applied pressure in Pa
p_LUT -- List of 3 values corresponding to the measured p_LUT values at the applied pressures.
"""
C = (p_LUT[0] * p_LUT[1] * (p_Pa[0] - p_Pa[1]) +
p_LUT[1] * p_LUT[2] * (p_Pa[1] - p_Pa[2]) +
p_LUT[2] * p_LUT[0] * (p_Pa[2] - p_Pa[0])) / \
(p_LUT[2] * (p_Pa[0] - p_Pa[1]) +
p_LUT[0] * (p_Pa[1] - p_Pa[2]) +
p_LUT[1] * (p_Pa[2] - p_Pa[0]))
A = (p_Pa[0] * p_LUT[0] - p_Pa[1] * p_LUT[1] - (p_Pa[1] - p_Pa[0]) * C) / (p_LUT[0] - p_LUT[1])
B = (p_Pa[0] - A) * (p_LUT[0] + C)
return [A, B, C]
def get_pressure(self, p_LSB, T_LSB):
""" Convert an output from a calibrated sensor to a pressure in Pa.
Arguments:
p_LSB -- Raw pressure data from sensor
T_LSB -- Raw temperature data from sensor
"""
t = T_LSB - 32768.0
s1 = self.LUT_lower + float(self.sensor_constants[0] * t * t) * self.quadr_factor
s2 = self.offst_factor * self.sensor_constants[3] + float(self.sensor_constants[1] * t * t) * self.quadr_factor
s3 = self.LUT_upper + float(self.sensor_constants[2] * t * t) * self.quadr_factor
A, B, C = self.calculate_conversion_constants(self.p_Pa_calib, [s1, s2, s3])
return A + B / (C + p_LSB)
[end of the pseudocode]
Document Number: DS-000169
Revision: 1.3
Page 53 of 62
ICM-20789
Sample code: using conversion formula (exemplary python syntax)
def read_otp_from_i2c():
# TODO: implement read from I2C
# refer to data sheet for I2C commands to read OTP
return 1000, 2000, 3000, 4000
def read_raw_pressure_temp_from_i2c():
# TODO: implement read from I2C
# refer to data sheet for I2C commands to read pressure and temperature
return 8000000, 32000
# Sample code to read
from Invensense_pressure_conversion import Invensense_pressure_conversion
# -- initialization
c1, c2, c3, c4 = read_otp_from_i2c()
conversion = Invensense_pressure_conversion([c1, c2, c3, c4])
# -- read raw pressure and temp data, calculate pressure
p, T = read_raw_pressure_temp_from_i2c()
pressure = conversion.get_pressure(p, T)
print 'Pressure: %f' % pressure
[end of the pseudocode]
Communication Data Sequences
Figure 15. Communication Sequence for starting a measurement and reading measurement results
Document Number: DS-000169
Revision: 1.3
Page 54 of 62
ICM-20789
11 ASSEMBLY
This section provides general guidelines for assembling TDK-InvenSense Micro Electro-Mechanical Systems (MEMS) gyros packaged
in LGA package.
11.1 ORIENTATION OF AXES
The diagram below shows the orientation of the axes of sensitivity and the polarity of rotation. Note the pin 1 identifier (•) in the
figure.
+Z
+Y
+Z
+Y
IC
M-
20
78
9
+X
+X
Figure 16. Orientation of Axes of Sensitivity and Polarity of Rotation
11.2 IMPLEMENTATION AND USAGE RECOMMENDATIONS
Soldering
When soldering, use the standard soldering profile IPC/JEDEC J-STD-020 with peak temperatures of 260°C. ICM-20789 may exhibit a
pressure offset after soldering, some settling time may be required depending on soldering properties, PCB properties, and ambient
conditions.
The ICM-20789 is an open cavity package, it is mandatory to use no-clean solder paste and no board wash should be applied. The
ICM-20789 should be limited to a single reflow and no rework is recommended.
Chemical Exposure and Sensor Protection
The ICM-20789 is an open cavity package and therefore should not be exposed to particulates or liquids. If any type of protective
coating must be applied to the circuit board, the sensor must be protected during the coating process.
Document Number: DS-000169
Revision: 1.3
Page 55 of 62
ICM-20789
11.3 PACKAGE DIMENSIONS
24 Lead LGA (4 mm x 4 mm x 1.365 mm) NiPdAu Lead-frame finish
Figure 17. Package Dimensions
DIMENSIONS IN MILLIMETERS
SYMBOLS
A
A3
b
c
D
E
e
L
L1
L3
MIN
1.265
--0.20
--3.90
3.90
--0.35
0.025
0.325
NOM
1.365
1.185 REF.
0.25
0.18 REF.
4.00
4.00
0.50
0.45
0.075
0.375
MAX
1.465
--0.30
--4.10
4.10
--0.55
0.125
0.425
Table 29. Package Dimensions Table
Figure 18 shows the recommended PCB land pattern for ICM-20789.
Document Number: DS-000169
Revision: 1.3
Page 56 of 62
ICM-20789
Figure 18. ICM-20789 recommended PCB land pattern
Document Number: DS-000169
Revision: 1.3
Page 57 of 62
ICM-20789
12 PART NUMBER PACKAGE MARKING
The part number package marking for ICM-20789 devices is summarized below:
PART NUMBER
ICM-20789
PART NUMBER PACKAGE MARKING
IC2789
TOP VIEW
Part Number
Lot Traceability Code
IC2789
X X X X X XXX
YYWW
Y Y = Year Code
W W = Work Week
Figure 19. Part Number Package Marking
Document Number: DS-000169
Revision: 1.3
Page 58 of 62
ICM-20789
13 ORDERING GUIDE
PART
TEMP RANGE
PACKAGE
QUANTITY
PACKAGING
ICM-20789†
−40°C to +85°C
24-Pin LGA
3,000
13” Tape and Reel
†Denotes RoHS and Green-Compliant Package
Document Number: DS-000169
Revision: 1.3
Page 59 of 62
ICM-20789
14 REFERENCE
Please refer to “InvenSense MEMS Handling Application Note (AN-IVS-0002A-00)” for the following information:
• Manufacturing Recommendations
o Assembly Guidelines and Recommendations
o PCB Design Guidelines and Recommendations
o MEMS Handling Instructions
o ESD Considerations
o Reflow Specification
o Storage Specifications
o Package Marking Specification
o Tape & Reel Specification
o Reel & Pizza Box Label
o Packaging
o Representative Shipping Carton Label
• Compliance
o Environmental Compliance
o DRC Compliance
o Compliance Declaration Disclaimer
Document Number: DS-000169
Revision: 1.3
Page 60 of 62
ICM-20789
15 REVISION HISTORY
REVISION DATE
REVISION
DESCRIPTION
06/05/17
1.0
Initial Release
08/28/2017
1.1
Updated part marking
10/04/17
1.2
Updated performance specifications, added handling instructions
10/31/17
1.3
Updated Ordering Guide, Clarified Pin Connections as NC, GND, or VDD
Document Number: DS-000169
Revision: 1.3
Page 61 of 62
ICM-20789
This information furnished by InvenSense, Inc. (“InvenSense”) is believed to be accurate and reliable. However, no responsibility is assumed by InvenSense for its use,
or for any infringements of patents or other rights of third parties that may result from its use. Specifications are subject to change without notice. InvenSense reserves
the right to make changes to this product, including its circuits and software, in order to improve its design and/or performance, without prior notice. InvenSense makes
no warranties, neither expressed nor implied, regarding the information and specifications contained in this document. InvenSense assumes no responsibility for any
claims or damages arising from information contained in this document, or from the use of products and services detailed therein. This includes, but is not limited to,
claims or damages based on the infringement of patents, copyrights, mask work and/or other intellectual property rights.
Certain intellectual property owned by InvenSense and described in this document is patent protected. No license is granted by implication or otherwise under any
patent or patent rights of InvenSense. This publication supersedes and replaces all information previously supplied. Trademarks that are registered trademarks are the
property of their respective companies. InvenSense sensors should not be used or sold in the development, storage, production or utilization of any conventional or
mass-destructive weapons or for any other weapons or life threatening applications, as well as in any other life critical applications such as medical equipment,
transportation, aerospace and nuclear instruments, undersea equipment, power plant equipment, disaster prevention and crime prevention equipment.
©2017 InvenSense. All rights reserved. InvenSense, MotionTracking, MotionProcessing, MotionProcessor, MotionFusion, MotionApps, DMP, AAR, and the InvenSense
logo are trademarks of InvenSense, Inc. The TDK logo is a trademark of TDK Corporation. Other company and product names may be trademarks of the respective
companies with which they are associated.
©2017 InvenSense. All rights reserved.
Document Number: DS-000169
Revision: 1.3
Page 62 of 62