Data Sheet

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.