Data Sheet
ICM-20948
Document Number: DS-000189  Page 23 of 89 
Revision: 1.3 
Once the auxiliary sensors have been configured by the system processor, the interface bypass multiplexer should be 
disabled so that the ICM-20948 auxiliary I
2
C master can take control of the sensor I
2
C bus and gather data from the 
auxiliary sensors. 
ICM
-20948
AD0
SCL
SDA/SDI
Digital 
Motion 
Processor 
(DMP)
Sensor 
Master I
2
C 
Serial 
Interface
AUX_CL
AUX_DA
Interrupt 
Status 
Register
VDD
Bias & LDOs
GND REGOUT
FIFO
User & Config 
Registers
Sensor 
Register
Factory
Calibration
Slave I
2
C 
or SPI 
Serial 
Interface
External 
Sensor
SCL
SDA
System 
Processor
Interface 
Bypass 
Mux
SCL
SDA
VDD or GND
I
2
C Processor Bus: for reading all 
sensor data from MPU and for 
configuring external sensors (i.e. 
compass in this example)
Interface bypass mux allows 
direct configuration of 
compass by system processor
Optional
Sensor I
2
C Bus: for 
configuring and reading 
from external sensors
INT1
Figure 6. ICM-20948 Solution Using I
2
C Interface 
ICM-20948 Solution Using SPI Interface 
In Figure 7, the system processor is an SPI master to the ICM-20948. Pins 9, 22, 23, and 24 are used to support the 
SDO, nCS, SCLK, and SDI signals for SPI communications. Because these SPI pins are shared with the I
2
C slave pins (9, 
23 and 24), the system processor cannot access the auxiliary I
2
C bus through the interface bypass multiplexer, which 
connects the processor I
2
C interface pins to the sensor I
2
C interface pins. Since 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, 
another method must be used for programming the sensors on the auxiliary sensor I
2
C bus pins 7 and 21 (AUX_CL and 
AUX_DA). 
When using SPI communications between the ICM-20948 and the system processor, configuration of devices on the 
auxiliary I
2
C sensor bus can be achieved by using I
2
C Slaves 0-4 to perform read and write transactions on any device 
and register on the auxiliary I
2
C bus. The I
2
C Slave 4 interface can be used to perform only single byte read and write 
transactions. Once the external sensors have been configured, the ICM-20948 can perform single or multi-byte reads 
using the sensor I
2
C bus. The read results from the Slave 0-3 controllers can be written to the FIFO buffer as well as to 
the external sensor registers. 










