Data Sheet
ICM-20948
Document Number: DS-000189  Page 22 of 89 
Revision: 1.3 
4.7  THREE-AXIS MEMS GYROSCOPE WITH 16-BIT ADCS AND SIGNAL CONDITIONING 
The ICM-20948 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 per second (dps).  
4.8  THREE-AXIS MEMS ACCELEROMETER WITH 16-BIT ADCS AND SIGNAL CONDITIONING 
The ICM-20948’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-20948’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.9  THREE-AXIS MEMS MAGNETOMETER WITH 16-BIT ADCS AND SIGNAL CONDITIONING 
The 3-axis magnetometer uses highly sensitive Hall sensor technology. The magnetometer portion of the IC 
incorporates magnetic sensors for detecting terrestrial magnetism in the X-, Y-, and Z-Axes, a sensor driving circuit, a 
signal amplifier chain, and an arithmetic circuit for processing the signal from each sensor. Each ADC has a 16-bit 
resolution and a full scale range of ±4900 µT. 
4.10  DIGITAL MOTION PROCESSOR  
The embedded Digital Motion Processor (DMP) within the ICM-20948 offloads computation of motion processing 
algorithms from the host processor. The DMP acquires data from accelerometers, gyroscopes, and additional third 
party sensors such as magnetometers, and processes the data. The resulting data can be read from the FIFO. The DMP 
has access to 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. 
4.11  PRIMARY I
2
C AND SPI SERIAL COMMUNICATIONS INTERFACES 
The ICM-20948 communicates to a system processor using either a SPI or an I
2
C serial interface. The ICM-20948 
always acts as a slave when communicating to the system processor. The LSB of the of the I
2
C slave address is set by 
pin 1 (AD0).  
ICM-20948 Solution Using I
2
C Interface 
In Figure 6, the system processor is an I
2
C master to the ICM-20948. In addition, the ICM-20948 is an I
2
C master to the 
optional external sensor. The ICM-20948 has limited capabilities as an I
2
C Master, and depends on the system 
processor to manage the initial configuration of any auxiliary sensors. The ICM-20948 has an interface bypass 
multiplexer, which connects the system processor I
2
C bus pins 23 and 24 (SCL and SDA) directly to the auxiliary sensor 
I
2
C bus pins 7 and 21 (AUX_CL and AUX_DA).  










