ST 1 Vafe 3 BX
ST 1 Vafe 3 BX
Datasheet
Biosensor with vAFE (vertical analog front-end) for biopotential signals and
ultralow-power accelerometer with AI and antialiasing
Features
• Dual channels for biopotential signal detection and motion tracking
• Supply voltage range from 1.62 V to 3.6 V
– Independent IO supply (1.62 V to 3.6 V) for I²C and SPI interfaces
– Independent IO supply (extended range: 1.08 V to 3.6 V) for MIPI I3C®
interface
• Ultralow supply current at 50 µA (typ.)
– Power-down: 2.2 µA
• Biopotential signal detection channel with analog hub
– Single-channel, differential input amplifier (vAFE)
– Programmable gain and input impedance
– 12-bit ADC resolution
– ODR up to 3200 Hz when using analog hub / vAFE channel only
• Accelerometer channel
– Low noise down to 220 µg/√Hz
– ±2g/±4g/±8g/±16g programmable full-scale
– ODR from 1.6 Hz to 800 Hz
• Embedded machine learning core
Product status link
– For analog hub / vAFE data up to 1.6 kHz
ST1VAFE3BX • Programmable finite state machine
– For analog hub / vAFE data up to 1.6 kHz
• Adaptive self-configuration (ASC) based on the sensor processing output
Product summary
(FSM / MLC)
Order code ST1VAFE3BXTR • Embedded FIFO: up to 128 samples of accelerometer and analog hub / vAFE
Temperature data or 256 samples of accelerometer data at low resolution
-40 to +85
range [°C] • High-speed I²C/SPI/MIPI I3C® digital output interface
Package LGA-12L • Advanced pedometer, step detector and step counter
Packing Tape and reel • Self-test
• Small package: 2.0 x 2.0 x 0.74 (max) mm, LGA 12-lead
• 10000 g high shock survivability
Product resources
• ECOPACK and RoHS compliant
TN0018 (design and soldering)
Applications
Product label
• Biopotential signal detection (ENG, ECG, EEG)
• Wearable and portable devices
• Activity tracking and well-being
Description
The ST1VAFE3BX is a biosensor embedding a vAFE channel to detect biopotential signals and a high-
performance 3-axis digital accelerometer for motion tracking.
The device has been designed with a very compact, low-noise, and low-power vAFE with configurable input
impedance. The vAFE enables reading analog signals that are complementary to motion signals. The vAFE and
motion signals are intrinsically synchronous, so the result is a unique context-aware edge analysis, thus low
power and with the minimum possible latency.
Easy integration and actual synchronization of the vAFE with the accelerometer sensor signal allows standalone
processing in the MEMS sensor, leveraging its embedded ecosystem, including the FSM and MLC, and offloading
the microcontroller.
The device embeds advanced dedicated features and data processing for signal processing like the finite state
machine (FSM), adaptive self-configuration (ASC), and machine learning core (MLC) with exportable AI features/
filters.
The ST1VAFE3BX MIPI I3C® target interface and embedded 128-level FIFO buffer complete a set of features that
make this device a reference in terms of system integration from a standpoint of the bill of materials, processing,
or power consumption.
The embedded accelerometer has user-selectable full scales of ±2g/±4g/±8g/±16g and is capable of measuring
accelerations with output data rates from 1.6 Hz to 800 Hz.
The ST1VAFE3BX has a dedicated internal engine to process motion and acceleration detection including free-
fall, wake-up, single/double/triple-tap recognition, activity/inactivity, and 6D/4D orientation.
The ST1VAFE3BX is available in a small thin plastic, land grid array (LGA) package and it is guaranteed to
operate over an extended temperature range from -40°C to +85°C.
CHARGE
AMPLIFIER
X+
X AAF
X-
CS
2
Y+ IC
SCL/SPC
a Y A/D CONTROL
AAF LOGIC SPI
Y- CONVERTER SDA/SDO/SDI
MIPI I3C ® SDO/TA0
Z+
Z AAF
Z-
AH/BIO1,2
impedance
VCM
AH1/BIO1
AH2/BIO2
1
VDDIO 10 11 12 1 SCL/SPC
VDD 9 2 CS
GND 8 3 SDO/TA0
X Y
INT/EXT_CLK 7 6 5 4 SDA/SDI/SDO
(TOPVIEW)
GND
NC
DIRECTION OF THE
DETECTABLE
ACCELERATIONS (BOTTOM VIEW)
6 GND 0 V supply
8 GND 0 V supply
1. The CS pin is internally pulled up by default. The pull-up of the CS pin can be disconnected by setting the bit CS_PU_DIS of register
PIN_CTRL (0Ch) to 1.
2. The internal pull-up of the SDO/TA0 and SDA/SDI/SDO pins is disconnected by default. The pull-up of the SDO/TA0 pin can be enabled by
setting bit SDO_PU_EN of register PIN_CTRL (0Ch) to 1. The pull-up of the SDA/SDI/SDO pin can be enabled by setting bit SDA_PU_EN
of register PIN_CTRL (0Ch) to 1.
3. When the interrupt flag in the CTRL2 (11h), MD1_CFG (1Fh), EMB_FUNC_INT (0Ah), FSM_INT (0Bh), and MLC_INT (0Dh) registers is set
to 1, and the INT_PIN_EN bit of register CTRL1 (10h) is set to 1, the selected interrupt signals are routed to the INT pin.
4. When the external clock for the synchronization of multiple sensors is intended to be used, the EXT_CLK_EN bit must be set to 1 in register
EXT_CLK_CFG (08h) and the bit INT_PIN_EN set to 0 in register CTRL1 (10h) in order to correctly drive the pin.
5. The AH1/BIO1 and AH2/BIO2 pins are internally pulled down by default. The internal pull-down is disconnected when the power-up
command is performed, see Section 2.5.1: Power-up command.
2 Functionality
0 Level mode
1 Latched mode
• Interrupt level mode: the interrupt signal goes high when an interrupt event occurs and is reset when the
acceleration data fall below the threshold.
• Interrupt latched mode: the interrupt signal on the INT pin is the OR of the interrupt flags enabled through
the MD1_CFG (1Fh) register. Each interrupt flag goes to 1 when an interrupt event occurs and is reset
when the dedicated source register is read. The interrupt generator block is inhibited 1 ODR after the reset
event. It is possible to reset all the interrupt flags simultaneously by reading the ALL_INT_SRC (24h)
register.
ODR
Configurable 800 3200 Hz
in AH / vAFE only state(2)
PGA gain = 2 ±200
Input range DC coupled mV
PGA gain = 16 ±25
Offset Input referred ±1 mV
Noise Shorted input, gain = 16, BW = [20 ÷ 400 Hz], input referred 10 µVRMS
AH / vAFE channel gain PGA gain = 16, 16 bits, input referred 1311 LSB/mV
AH_BIO_GAIN_[1:0] = 00 2
AH_BIO_GAIN_[1:0] = 01 4
Channel gain V/V
AH_BIO_GAIN_[1:0] = 10 8
AH_BIO_GAIN_[1:0] = 11 16
Input common mode 0.61 V
50 Ω source impedance, sinusoidal input (freq. 50/60 Hz, amp. 100
CMRR 80 dB
mV peak to peak), PGA gain = 2
AH_BIO_C_ZIN_[1:0] = 00 100
AH_BIO_C_ZIN_[1:0] = 01 200
Input impedance MΩ
AH_BIO_C_ZIN_[1:0] = 10 500
AH_BIO_C_ZIN_[1:0] = 11 1000
45
90
1. VDDIO = 1.8 V. Typical values are based on characterization and are not guaranteed.
2. See Table 39 for setting the configuration.
FS = ±8 g
Idd Supply current(2) ODR = all ODRs 50 µA
BW = ODR/2 with antialiasing filter
FS = ±8 g
IddULP Supply current in ultralow-power mode ODR = 1.6 Hz, 3.7 µA
BW = ODR/2
IddPD Supply current in power-down 2.2 µA
VIH Digital high-level input voltage 0.7*VDDIO V
±2
±4
FS Measurement range g
±8
±16
FS = ±2 g 0.061
FS = ±4 g 0.122
So Sensitivity(2) mg/digit
FS = ±8 g 0.244
FS = ±16 g 0.488
FS = ±8 g
An Noise density - high-performance mode 220 µg/√Hz
ODR = 800 Hz, BW = ODR/2
Value(1)
Symbol Parameter Unit
Min Typ Max
1. Values are evaluated at 10 MHz clock frequency for SPI with both 4 and 3 wires, based on characterization results, not
tested in production
CS
SPC
t v(SO) t dis(SO)
CS
SPC
t v(SO) t dis(SO)
Note: Measurement points are done at 0.3·VDDIO and 0.7·VDDIO for both input and output ports.
tw(SP:SR) Bus free time between STOP and START condition 1.3 0.5
REPEATED
START
START
tsu(SR)
tw(SP:SR) START
SDA
tsu(SDA) th(SDA)
tsu(SP) STOP
SCL
Note: Measurement points are done at 0.3·VDDIO and 0.7·VDDIO for both ports.
HBM 2
This device is sensitive to mechanical shock, improper handling can cause permanent damage to the part.
This device is sensitive to electrostatic discharge (ESD), improper handling can cause permanent damage to the part.
3.5 Terminology
4 Digital interfaces
The registers embedded inside the ST1VAFE3BX may be accessed through both the I²C, MIPI I3C® and SPI
serial interfaces. The latter may be software configured to operate either in 3-wire or 4-wire interface mode.
The serial interfaces are mapped to the same pins. To select/exploit the I²C/MIPI I3C® interface, the CS line must
be tied high (that is, connected to VDDIO).
Term Description
There are two signals associated with the I²C bus: the serial clock line (SCL) and the serial data line (SDA). The
latter is a bidirectional line used for sending and receiving the data to/from the interface. Both lines must be
connected to VDDIO through an external pull-up resistor. When the bus is free, both the lines are high.
The I²C interface supports fast mode (400 kHz) and fast mode plus (1000 kHz) I²C standards as well as normal
mode.
Table 14. Transfer when controller is receiving (reading) one byte of data from target
Table 15. Transfer when controller is receiving (reading) multiple bytes of data from target
Data are transmitted in byte format (DATA). Each data transfer contains 8 bits. The number of bytes transferred
per transfer is unlimited. Data is transferred with the most significant bit (MSb) first. If a target receiver does not
acknowledge the target address (that is, it is not able to receive because it is performing some real-time function)
the data line must be left high by the target. The controller can then abort the transfer. A low to high transition on
the SDA line while the SCL line is high is defined as a stop condition. Each data transfer must be terminated by
the generation of a stop (SP) condition.
In the presented communication format CAK is controller acknowledge and NCAK is no controller acknowledge.
CS
SPC
SDI
RW DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0
AD6 AD5 AD4 AD3 AD2 AD1 AD0
SDO
DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0
CS enables the serial port and it is controlled by the SPI controller. It goes low at the start of the transmission and
goes back high at the end. SPC is the serial port clock and it is controlled by the SPI controller. It is stopped high
when CS is high (no transmission). SDI and SDO are respectively the serial port data input and output. Those
lines are driven at the falling edge of SPC and should be captured at the rising edge of SPC.
Both the read register and write register commands are completed in 16 clock pulses or in multiples of 8 in case
of multiple read/write bytes. Bit duration is the time between two falling edges of SPC. The first bit (bit 0) starts at
the first falling edge of SPC after the falling edge of CS while the last bit (bit 15, bit 23, ...) starts at the last falling
edge of SPC just before the rising edge of CS.
bit 0: RW bit. When 0, the data DI(7:0) is written into the device. When 1, the data DO(7:0) from the device is
read. In latter case, the chip drives SDO at the start of bit 8.
bit 1-7: address AD(6:0). This is the address field of the indexed register.
bit 8-15: data DI(7:0) (write mode). This is the data that is written into the device (MSb first).
bit 8-15: data DO(7:0) (read mode). This is the data that is read from the device (MSb first).
In multiple read/write commands additional blocks of 8 clock periods are added. When the CTRL1 (10h)
(IF_ADD_INC) bit is 0, the address used to read/write data remains the same for every block. When the CTRL1
(10h) (IF_ADD_INC) bit is 1, the address used to read/write data is increased at every block.
The function and the behavior of SDI and SDO remain unchanged.
CS
SPC
SDI
RW
AD6 AD5 AD4 AD3 AD2 AD1 AD0
SDO
DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0
The SPI read command is performed with 16 clock pulses. A multiple byte read command is performed by adding
blocks of 8 clock pulses to the previous one.
bit 0: READ bit. The value is 1.
bit 1-7: address AD(6:0). This is the address field of the indexed register.
bit 8-15: data DO(7:0) (read mode). This is the data that is read from the device (MSb first).
bit 16-... : data DO(...-8). Additional data in multiple byte reads.
CS
SPC
SDI
RW
AD6 AD5 AD4 AD3 AD2 AD1 AD0
SDO
DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0 DO15 DO14DO13DO12 DO11DO10 DO9 DO8
CS
SPC
SDI
RW DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0
AD6 AD5 AD4 AD3 AD2 AD1 AD0
The SPI write command is performed with 16 clock pulses. A multiple byte write command is performed by adding
blocks of 8 clock pulses to the previous one.
bit 0: WRITE bit. The value is 0.
bit 1-7: address AD(6:0). This is the address field of the indexed register.
bit 8-15: data DI(7:0) (write mode). This is the data that is written inside the device (MSb first).
bit 16-... : data DI(...-8). Additional data in multiple byte writes.
CS
SPC
SDI
DI7 DI6 DI5 DI4 DI3 DI2 DI1 DI0 DI15 DI14 DI13 DI12 DI11 DI10 DI9 DI8
RW
AD6 AD5 AD4 AD3 AD2 AD1 AD0
CS
SPC
SDI/O
RW DO7 DO6 DO5 DO4 DO3 DO2 DO1 DO0
AD6 AD5 AD4 AD3 AD2 AD1 AD0
RSTDAA 0x86(1) / 0x06 Reset the assigned dynamic address (direct(1) and broadcast)
SETMWL 0x89 / 0x08 Define maximum write length during private write (direct and broadcast)
SETMRL 0x8A / 0x09 Define maximum read length during private read (direct and broadcast)
SETNEWDA 0x88 Change dynamic address
0x00
GETMWL 0x8B 0x08 Get maximum write length during private write
(2 byte)
0x00
0x10
GETMRL 0x8C Get maximum read length during private read
0x08
(3 byte)
0x02
0x08
0x00
SDO = 1
0x47
0x92
0x0B
GETPID 0x8D
0x02
0x08
0x00
SDO = 0
0x47
0x12
0x0B
0x0F
GETBCR 0x8E Bus characteristics register
(1 byte)
0x00
GETSTATUS 0x90 0x00 Status register
(2 byte)
0x08
GETMXDS 0x94 0x60 Return max data speed
(2 byte)
SETGRPA 0x9B Group address assignment
0x00
0x11
GETCAPS 0x95 Provide information about device capabilities and supported extended features
0x18
0x00
5 Application hints
VDDIO
100nF
AH1/BIO1
HOST
AH2/BIO2
I 2C/
GND MIPI I3C ® /
VDD SPI (3/4-w)
10µF ST1VAFE3BX
SCL/SPC VDDIO
1 12 11 10
CS VDD
2 9 100nF
GND I2C configuration
SDO/TA0 GND
3 8 VDDIO
SDA/SDI/SDO INT/EXT_CLOCK
4 5 6 7
Rpu Rpu
GND
NC
SCL
SDA
Pull-up to be added
Rpu=10kOhm
The device core is supplied through the VDD line while the I/O pins are supplied through the VDDIO line. Power
supply decoupling capacitors (100 nF ceramic, 10 µF aluminum) should be placed as near as possible to pin 9 of
the device (common design practice).
All the voltage and ground supplies must be present at the same time to have proper behavior of the IC (refer to
Figure 12). It is possible to remove VDD while maintaining VDDIO without blocking the communication bus, in this
condition the measurement chain is powered off.
The functionality of the device and the measured acceleration data are selectable and accessible through the I²C/
MIPI I3C® or SPI interfaces. When using the I²C, CS must be tied high (that is, connected to VDDIO).
The functions, the threshold and the timing of the interrupt pin (INT) can be completely programmed by the user
through the I²C/MIPI I3C®/SPI interface.
5 kΩ 460 pF
ELECTRODE1
AH1/BIO1
D1 (1)
ST1VAFE3BX
5 kΩ 460 pF
AH2/BIO2 ELECTRODE2
D2 (1)
1. When the interrupt flag in the CTRL2 (11h), MD1_CFG (1Fh), EMB_FUNC_INT (0Ah), FSM_INT (0Bh), and MLC_INT (0Dh) registers is set
to 1, and the INT_PIN_EN bit of register CTRL1 (10h) is set to 1, the selected interrupt signals are routed to the INT pin.
2. When the external clock for the synchronization of multiple sensors is intended to be used, the EXT_CLK_EN bit must be set to 1 in register
EXT_CLK_CFG (08h) and the bit INT_PIN_EN set to 0 in register CTRL1 (10h) in order to correctly drive the pin.
3. The internal pull-down is automatically disconnected when the power-up command is performed.
4. The internal pull-down is automatically disconnected when the EN_DEV_CONF bit in register EN_DEVICE_CONFIG (3Eh) is set to 1.
The ST1VAFE3BX has been designed to be fully compliant with Android, featuring the following on-chip functions:
• FIFO data buffering
– 100% efficiency with flexible configurations and partitioning
– Possibility to store timestamp
• Event-detection interrupts (fully configurable)
– Free-fall
– Wake-up
– 6D/4D orientation
– Single/double/triple-tap detection
– Activity/inactivity recognition
– Stationary/motion detection
• Specific IP blocks (called "embedded functions") with negligible power consumption and high-performance
– Pedometer functions: step detector and step counters
– Tilt
– Significant motion detection
– Finite state machine (FSM)
– Machine learning core (MLC) with exportable features and filters for AI applications
– Adaptive self-configuration (ASC)
6.1 FIFO
The ST1VAFE3BX embeds 128 slots of 7 bytes each (1 byte TAG + 6 bytes DATA). This allows consistent power
saving for the system, since the host processor does not need to continuously poll data from the sensor, but it can
wake up only when needed and burst the significant data out from the FIFO.
FIFO is designed in order to allow the batching of different kinds of sensors. It is possible to store in FIFO the data
of the accelerometer, and analog hub / vAFE physical sensors and the data of virtual sensors like the step
counter, the MLC features / filters / results and FSM results.
The reconstruction of a FIFO stream is a simple task thanks to the FIFO_DATA_OUT_TAG byte that allows
recognizing the meaning of a word in FIFO.
The applications have maximum flexibility in choosing the rate of batching for physical sensors with FIFO
dedicated configurations.
FIFO allows correctly reconstructing the timestamp information for each sensor stored in FIFO. Also, if a change
in the ODR or BDR (batch data rate) configuration is performed, the application can correctly reconstruct the
timestamp and know exactly when the change was applied in a FIFO stream without disabling FIFO batching.
FIFO stores information of the new configuration and timestamp in which the change was applied in the device.
In order to maximize the amount of data collected in FIFO, it is possible to double the slots of FIFO data (from 128
to 256) by writing the FIFO_DEPTH bit to 1 in FIFO_CTRL (15h) with 2x depth mode. When this mode is enabled,
the most significant 8 bits for each acceleration data are stored in FIFO. Each FIFO data word contains data of
two consecutive ODRs, the actual and the previous one.
In high-resolution batch mode, accelerometer and analog hub / vAFE data are stored in FIFO in 12-bit format at
the ODR rate.
In 2x depth batch mode, each FIFO word contains two accelerometer data in 8-bit format at the ODR/2 rate.
It is possible to avoid storing the AH / vAFE data in FIFO by setting the XL_ONLY_FIFO bit in the FIFO_WTM
(16h) register to 1. In this case, the accelerometer data are stored in FIFO as 16-bit format at the ODR rate.
6.1.6 Bypass-to-FIFO
In bypass-to-FIFO mode FIFO_CTRL (15h)(FIFO_MODE_[2:0] = 111), data measurement storage inside FIFO
operates in FIFO mode when selected triggers are equal to 1, otherwise FIFO content is reset (bypass mode).
The trigger event could be single/double/triple-tap, wake-up, free-fall, 6D interrupt or any combination of these
events, but every interrupt has to be routed to the corresponding pin to be used as a trigger.
The sample that generated the trigger is available in FIFO.
The ST1VAFE3BX embeds a dynamic internal threshold for step detection that is updated after each peak-to-
peak evaluation: the internal threshold is increased with a configurable speed if a step is detected or decreased
with a configurable speed if a step is not detected.
This approach ensures high accuracy when the user starts to walk and a false peak rejection when the user is
walking or running.
An internal configurable debounce algorithm can be also set to filter false walks: indeed, an accelerometer pattern
is recognized as a walk or run only if a minimum number of steps are counted.
The ST1VAFE3BX has been designed to reject a false-positive signal inside the algorithm core.
On top of the mechanisms detailed above, the ST1VAFE3BX allows enabling and configuring a dedicated false-
positive rejection block to further boost pedometer accuracy.
ST1VAFE3BX
Acc [LSB] SIGNAL FSM output
FSM
Analog hub / vAFE [LSB] CONDITIONING x
X = 1..8
Machine
The ST1VAFE3BX can be configured to run up to four decision trees simultaneously and independently and every
decision tree can generate up to 16 results. The total number of nodes can be up to 128.
The results of the machine learning processing are available in dedicated output registers readable from the
application processor at any time.
The ST1VAFE3BX machine learning core can be configured to generate an interrupt when a change in the result
occurs.
7 Register mapping
The table given below provides a list of the 8-bit registers embedded in the device and the corresponding
addresses.
Register address
Name Type(1) Default Comment
Hex Binary
Register address
Name Type(1) Default Comment
Hex Binary
Reserved registers must not be changed. Writing to those registers may cause permanent damage to the device.
The content of the registers that are loaded at boot should not be changed. They contain the factory calibration
values. Their content is automatically restored when the device is powered up.
8 Register description
EXT_CLK
0(1) 0(1) 0(1) 0(1) 0(1) 0(1) 0(1)
_EN
1. This bit must be set to 0 for the correct operation of the device.
If this bit is set to 1, the external oscillator, forced through the INT/EXT_CLK pin, replaces the internal
EXT_CLK_EN oscillator. Default value: 0
Supported frequency 102.4 kHz ± 5%, supported duty cycle 50% ± 10%
1. This bit must be set to 0 for the correct operation of the device.
WU_DUR_
0(1) 0(1) 0(1) 0(1) 0(1) 0(1) 0(1)
EXTENDED
1. This bit must be set to 0 for the correct operation of the device.
This bit is used to select the resolution of WAKE_DUR[1:0] bits in register WAKE_UP_DUR (1Dh).
WU_DUR_EXTENDED
Default value: 0
0 1 0 0 1 0 0 0
SMART_POWER DRDY_
INT_PIN_EN SW_RESET IF_ADD_INC WU_X_EN WU_Y_EN WU_Z_EN
_EN PULSED
Enables smart power management when the embedded functions are enabled. Default value: 0
SMART_POWER_EN
(0: disabled; 1: enabled)
Enables routing the interrupt signals configured on the INT pin. Default value: 0
INT_PIN_EN(1)
(0: disabled; 1: enabled)
Software reset, resets all CTRL registers to their default values. Default value: 0
SW_RESET (0: disabled; 1: enabled)
This bit is automatically reset to 0 at the end of the procedure.
The register address is automatically incremented during a multiple-byte access with a serial interface.
IF_ADD_INC (0: disabled;
1: enabled (default))
1. When the MIPI I3C® interface is used, this bit must be set to 0.
1. This bit must be set to 0 for the correct operation of the device.
INT_BOOT Enables boot status on INT pin. Default value: 0 (0: disabled; 1: enabled)
INT_FIFO_FULL Enables FIFO full on INT pin. Default value: 0 (0: disabled; 1: enabled)
INT_FIFO_TH Enables FIFO threshold interrupt on INT pin. Default value: 0 (0: disabled; 1: enabled)
INT_FIFO_OVR Enables overrun interrupt on INT pin. Default value: 0 (0: disabled; 1: enabled)
INT_DRDY Data-ready interrupt on INT pin. Default value: 0 (0: disabled; 1: enabled)
1. This bit must be set to 0 for the correct operation of the device.
If the device is not set in the AH / vAFE only state, this bit enables high-performance mode. Default value: 0
(0: low-power mode; 1: high-performance mode)
HP_EN(1) If the device is set in the AH / vAFE only state (see Section 2.6: Analog hub / vAFE only state), this bit enables
the LPF0 digital filter for the AH / vAFE chain. This is an FIR filter that performs 4 averages on AH / vAFE data,
decimating the output data rate from 3200 Hz to 800 Hz. Default value: 0
(0: LPF0 filter off; 1: LPF0 filter on)
ST_SIGN_Y Configures the sign of the self-test for the Y-axis. Default value: 0
ST_SIGN_X Configures the sign of the self-test for the X-axis. Default value: 0
1. This bit must be set to 0 for the correct operation of the device.
If the activity/inactivity function is enabled, then these bits select the accelerometer ODR during inactivity
INACT_ODR[1:0]
status, see Table 34.
If the device is not set in the AH / vAFE only state, refer to the ODR selection in Table 37.
ODR[3:0] If the device is set in the AH / vAFE only state (see Section 2.6: Analog hub / vAFE only state), refer to the ODR
selection in Table 39.
If the device is not set in the AH / vAFE only state, these bits select the accelerometer bandwidth, which is
dependent on the ODR selected. In high-performance mode (all ODR values) and in low-power mode for
ODR ≥ 50 Hz, the available bandwidths are:
ODR/2 (BW[1:0] = 00);
ODR/4 (BW[1:0] = 01);
BW[1:0]
ODR/8 (BW[1:0] = 10);
ODR/16 (BW[1:0] = 11).
In low-power mode for ODR < 50 Hz, refer to Table 38.
If the device is set in the AH / vAFE only state (see Section 2.6: Analog hub / vAFE only state), these bits select the
AH / vAFE sensor bandwidth, which is dependent on the ODR selected, see Table 39.
FS[1:0] Sets the full scale, see Table 40.
0000 Power-down
0001 1.6 Hz in ultralow-power
0010 3 Hz in ultralow-power
0011 25 Hz in ultralow-power
0100 6 Hz
0101 12.5 Hz
0110 25 Hz
0111 50 Hz
1000 100 Hz
1001 200 Hz
1010 400 Hz
1011 800 Hz
1110 Reserved
1111 One-shot using the interface
Table 38. Bandwidth selection (low-power mode with ODR < 50 Hz)
00 -
01 -
6
10 -
11 3
00 -
01 -
12.5
10 6
11 3
00 -
01 12.5
25
10 6
11 3
Table 39. Output data rate / bandwidth configurations in AH / vAFE only state
0000 - - Power-down -
1011 1 00 800 Hz 360
1011 1 01 800 Hz 180
1011 1 10 800 Hz 90
1011 1 11 800 Hz 45
1011 0 00 3200 Hz 1600
1011 0 01 3200 Hz 700
1011 0 10 3200 Hz 360
1011 0 11 3200 Hz 180
0 0 ±2 g
0 1 ±4 g
1 0 ±8 g
1 1 ±16 g
FIFO_ STOP_ON
CFG_CHG_EN 0(1) FIFO_EN_ADV FIFO_MODE2 FIFO_MODE1 FIFO_MODE0
DEPTH _FTH
1. This bit must be set to 0 for the correct operation of the device.
Enables batching in FIFO of the device configuration and timestamp value when the ODR (output data
CFG_CHG_EN rate) or the BDR (batch data rate) changes. Default value: 0
(0: disabled; 1: enabled)
FIFO_DEPTH If 1, enables 2x depth mode for FIFO buffer.
This bit must be set to 1 when the embedded function results and/or the AH / vAFE data at 3200 Hz
FIFO_EN_ADV
ODR are intended to be stored in FIFO. It can be set to 0 in the other cases. Default value: 0
Sensing chain FIFO stop values memorization at threshold level.
STOP_ON_FTH (0: FIFO depth is not limited (default);
1: FIFO depth is limited to threshold level)
1. User must set the FIFO_EN bit to 1 in the CTRL4 (13h) register before setting the FIFO_MODE[2:0] bits.
0 0 0 Bypass mode
0 0 1 FIFO mode: stops collecting data when FIFO is full
0 1 0 Reserved
Continuous-to-FIFO: stream mode until trigger is deasserted, then FIFO
0 1 1
mode
Bypass-to-continuous: bypass mode until trigger is deasserted, then
1 0 0
continuous mode
1 0 1 Reserved
Continuous mode: if the FIFO is full, the new sample overwrites the older
1 1 0
sample.
1 1 1 Bypass-to-FIFO: bypass mode until trigger is deasserted, then FIFO mode
XL_ONLY
FTH6 FTH5 FTH4 FTH3 FTH2 FTH1 FTH0
_FIFO
1. This bit must be set to 0 for the correct operation of the device.
1. This bit must be set to 0 for the correct operation of the device.
SLEEP_
0 (1) WK_THS5 WK_THS4 WK_THS3 WK_THS2 WK_THS1 WK_THS0
ON
1. This bit must be set to 0 for the correct operation of the device.
1. This bit must be set to 0 for the correct operation of the device.
Enables sleep change (or sleep status, depending on the SLEEP_STATUS_ON_INT bit) on the INT
INT_SLEEP_CHANGE
pin.
INT_WU Enables routing a wake-up event to the INT pin.
INT_FF Enables routing a free-fall event to the INT pin.
INT_TAP Enables routing a tap event to the INT pin.
INT_6D Enables routing a 6D recognition event to the INT pin.
INT_TIMESTAMP Enables routing the alert of a timestamp overflow within 2.5 ms to the INT pin.
INT_EMB_FUNC Enables routing an embedded functions event to the INT pin.
SLEEP_ SLEEP_
- FF_IA WU_IA X_WU Y_WU Z_WU
CHANGE_IA STATE
- D6D_IA ZH ZL YH YL XH XL
- - INT_GLOBAL - - - - DRDY
FIFO_ FIFO_
- - - - - -
WTM_IA OVR_IA
FIFO watermark status. The watermark is set through bits FTH[6:0] in FIFO_WTM (16h).
FIFO_WTM_IA (0: FIFO filling is lower than WTM;
1: FIFO filling is equal to or higher than WTM)
AH_BIO_ZIN_ AH_BIO_ZIN_
0(1) 0(1) 0(1) 0(1) 0(1) 0(1)
DIS_AH2_BIO2 DIS_AH2_BIO1
1. This bit must be set to 0 for the correct operation of the device.
1. This bit must be set to 0 for the correct operation of the device.
Selects differential / single-ended mode or resets the input of the AH / vAFE channel to common mode:
(00: differential mode (default);
AH_BIO_MODE[1:0] 01: single-ended mode - input 2 is grounded, input 1 is connected to the AH / vAFE channel;
10: single-ended mode - input 1 is grounded, input 2 is connected to the AH / vAFE channel;
11: forced reset - the inputs are forced to common-mode voltage)
AH_BIO_EN(1) Enables the AH / vAFE only state (see Section 2.6: Analog hub / vAFE only state).
AH_BIO_
0(1) 0(1) ST1 ST0 0(1) 0(1) 0(1)
ACTIVE
1. This bit must be set to 0 for the correct operation of the device.
ST[1:0] These bits enable data acquisition during the self-test procedure.
This bit must only be used in the procedure to set the device in active mode when it is set in the AH / vAFE
AH_BIO_ACTIVE
only state (see Section 2.6: Analog hub / vAFE only state), otherwise to be set to 0.
1. This bit must be set to 0 for the correct operation of the device.
IS_FSM_LC Interrupt status bit for FSM long counter timeout interrupt event. (1: interrupt detected; 0: no interrupt)
IS_SIGMOT Interrupt status bit for significant motion detection. (1: interrupt detected; 0: no interrupt)
IS_TILT Interrupt status bit for tilt detection. (1: interrupt detected; 0: no interrupt)
IS_STEP_DET Interrupt status bit for step detection. (1: interrupt detected; 0: no interrupt)
IS_FSM8 Interrupt status bit for FSM8 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM7 Interrupt status bit for FSM7 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM6 Interrupt status bit for FSM6 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM5 Interrupt status bit for FSM5 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM4 Interrupt status bit for FSM4 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM3 Interrupt status bit for FSM3 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM2 Interrupt status bit for FSM2 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM1 Interrupt status bit for FSM1 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC4 Interrupt status bit for MLC4 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC3 Interrupt status bit for MLC3 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC2 Interrupt status bit for MLC2 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC1 Interrupt status bit for MLC1 interrupt event. (1: interrupt detected; 0: no interrupt)
EN_DEV
- - - - - - -
_CONF
Enables the configuration of the device when the SPI interface is used. The registers are not accessible
EN_DEV_CONF
until this bit is written.
1. When the EMB_FUNC_REG_ACCESS bit is set to 0, the FUNC_CFG_ACCESS register is a read/write register. When the
EMB_FUNC_REG_ACCESS bit is set to 1, the FUNC_CFG_ACCESS register is a write-only register.
2. This bit must be set to 0 for the correct operation of the device.
1. Details concerning the embedded functions registers are available in Section 9: Embedded functions register mapping and
Section 10: Embedded functions register description.
FIFO tag. Identifies the sensor in FIFO_DATA_OUT_X_L (41h) and FIFO_DATA_OUT_X_H (42h),
TAG_SENSOR_[4:0] FIFO_DATA_OUT_Y_L (43h) and FIFO_DATA_OUT_Y_H (44h), and FIFO_DATA_OUT_Z_L (45h) and
FIFO_DATA_OUT_Z_H (46h). For details, refer to Table 107.
D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 D4 D3 D2 D1 D0
D7 D6 D5 D4 D3 D2 D1 D0
DEC_TS_ DEC_TS_
0 0 0 BDR_XL_2 BDR_XL_1 BDR_XL_0
BATCH_1 BATCH_0
Selects decimation for timestamp batching in FIFO. The write rate is the accelerometer BDR divided
by the decimation decoder.
(00: Timestamp not batched in FIFO (default);
DEC_TS_BATCH_[1:0]
01: Decimation 1: BDR_XL[Hz];
10: Decimation 8: BDR_XL[Hz]/8 [Hz];
11: Decimation 32: BDR_XL[Hz]/32 [Hz])
BDR_XL_[2:0] Selects the batch data rate (write frequency in FIFO) for accelerometer data, see Table 116.
PRE_STILL_THS[3:0](1) Threshold for stationary condition before shock. 1 LSB = 62.5 mg (maximum 937.5 mg)
Number of samples during stationary condition after shock and wait phases. These bits are used
POST_STILL_T[3:0] together with POST_STILL_T[5:4] in register TAP_CFG2 (71h). 1 LSB = 4 samples (maximum 252
samples).
POST_STILL POST_STILL
WAIT_T5 WAIT_T4 WAIT_T3 WAIT_T2 WAIT_T1 WAIT_T0
_T5 _T4
Number of samples during stationary condition after shock and wait phases. These bits are used
POST_STILL_T[5:4] together with POST_STILL_T[3:0] in register TAP_CFG1 (70h). 1 LSB = 4 samples (maximum 252
samples).
These bits program the number of samples to wait for the shock to finish.
WAIT_T[5:0]
1 LSB = 2 samples (maximum 126 samples).
Threshold for stationary condition after shock and wait phases. 1 LSB = 62.5 mg (maximum
POST_STILL_THS[3:0](1)
937.5 mg)
Maximum number of samples between consecutive taps event to detect double or triple tap. The
LATENCY_T[3:0] default value of these bits is 0000b which corresponds to 16 samples. If the LATENCY_T[3:0] bits
are set to a different value, 1LSB corresponds to 32 samples (maximum 480 samples).
WAIT_END_
0 PEAK_THS5 PEAK_THS4 PEAK_THS3 PEAK_THS2 PEAK_THS1 PEAK_THS0
LATENCY
This bit enables the feature to wait for the end of the latency window to exclusively determine if the
event is a single, double or triple tap.
(0: tap event flag is raised immediately for every detected tap;
WAIT_END_LATENCY
1: in case of consecutive taps, only the flag for the highest level of tap is raised. The tap event flag is
raised immediately if the highest level of tap enabled in TAP_CFG5 (74h) (single, double or triple) is
reached, otherwise it is raised at the end of the latency window if no additional taps are detected
within the window.)
PEAK_THS[5:0] Threshold for peak detection. 1 LSB = 62.5 mg (maximum 3937.5 mg)
Selection of starting sample for stationary condition before shock (from the oldest sample in a buffer of
PRE_STILL_ST[3:0]
14 samples). 1 LSB = 1 sample (0: 1st sample, 13: 14th sample, maximum value is 13)
Selection of number of samples for stationary condition before shock. 1 LSB = 1 sample (maximum 14
PRE_STILL_N[3:0]
samples). If this field is set to 0, the stationary condition before shock is disabled.
D7 D6 D5 D4 D3 D2 D1 D0
The table given below provides a list of the registers for the embedded functions available in the device and the
corresponding addresses. Embedded functions registers are accessible when the EMB_FUNC_REG_ACCESS
bit is set to 1 in the FUNC_CFG_ACCESS (3Fh) register and the EMB_FUNC_EN bit is set to 1 in the CTRL4
(13h) register.
Register address
Name Type Default Comment
Hex Binary
Register address
Name Type Default Comment
Hex Binary
Reserved registers must not be changed. Writing to those registers may cause permanent damage to the device.
The content of the registers that are loaded at boot should not be changed. They contain the factory calibration
values. Their content is automatically restored when the device is powered up.
1. This bit must be set to 0 for the correct operation of the device.
2. This bit must be set to 1 for the correct operation of the device.
PAGE_SEL[3:0] Selects the advanced features dedicated page (from 0 to 3). Default value: 0000
MLC_BEFORE SIGN_
0(1) TILT_EN PEDO_EN 0(1) 0(1) 0(1)
_FSM_EN MOTION_EN
1. This bit must be set to 0 for the correct operation of the device.
Enables machine learning core function. When the machine learning core is enabled by setting
this bit to 1, the MLC algorithms are executed before the FSM programs. Default value: 0
MLC_BEFORE_FSM_EN(1)
(0: machine learning core function disabled;
1: machine learning core function enabled and executed before FSM programs)
Enables significant motion detection function. Default value: 0
SIGN_MOTION_EN (0: significant motion detection function disabled;
1: significant motion detection function enabled)
Enables tilt calculation. Default value: 0
TILT_EN (0: tilt algorithm disabled;
1: tilt algorithm enabled)
Enables pedometer algorithm. Default value: 0
PEDO_EN (0: pedometer algorithm disabled;
1: pedometer algorithm enabled)
1. The MLC_EN bit in the EMB_FUNC_EN_B (05h) register must be set to 0 when using this bit.
1. This bit must be set to 0 for the correct operation of the device.
Enables machine learning core function. When the machine learning core is enabled by setting this bit to 1, the
MLC algorithms are executed after executing the FSM programs. Default value: 0
MLC_EN(1)
(0: machine learning core function disabled;
1: machine learning core function enabled and executed after FSM programs)
Enables finite state machine (FSM) function. Default value: 0
FSM_EN
(0: FSM function disabled; 1: FSM function enabled)
1. The MLC_BEFORE_FSM_EN bit in the EMB_FUNC_EN_A (04h) register must be set to 0 when using this bit.
EMB_FUNC_ EMB_FUNC
0 0 0 0 0 0
EXEC_OVR _ENDOP
This bit is set to 1 when the execution of the embedded functions program exceeds maximum time
EMB_FUNC_EXEC_OVR
(new data are generated before the end of the algorithms). Default value: 0
EMB_FUNC_ENDOP When this bit is set to 1, no embedded function is running. Default value: 0
After setting the bit PAGE_WRITE / PAGE_READ in register PAGE_RW (17h), this register is used to set
PAGE_ADDR[7:0] the address of the register to be written/read in the advanced features page selected through the bits
PAGE_SEL[3:0] in register PAGE_SEL (02h).
These bits are used to write (if the bit PAGE_WRITE = 1 in register PAGE_RW (17h)) or read (if the bit
PAGE_VALUE[7:0] PAGE_READ = 1 in register PAGE_RW (17h)) the data at the address PAGE_ADDR[7:0] of the selected
advanced features page.
1. This bit must be set to 0 for the correct operation of the device.
Enables routing an FSM long counter timeout interrupt event to the INT pin. Default value: 0
INT_FSM_LC(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing a significant motion event to the INT pin. Default value: 0
INT_SIG_MOT(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing a tilt event to the INT pin. Default value: 0
INT_TILT(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing a pedometer step recognition event to the INT pin. Default value: 0
INT_STEP_DETECTOR(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM8 interrupt event to the INT pin. Default value: 0
INT_FSM8(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM7 interrupt event to the INT pin. Default value: 0
INT_FSM7(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM6 interrupt event to the INT pin. Default value: 0
INT_FSM6(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM5 interrupt event to the INT pin. Default value: 0
INT_FSM5(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM4 interrupt event to the INT pin. Default value: 0
INT_FSM4(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM3 interrupt event to the INT pin. Default value: 0
INT_FSM3(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM2 interrupt event to the INT pin. Default value: 0
INT_FSM2(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing FSM1 interrupt event to the INT pin. Default value: 0
INT_FSM1(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
1. This bit must be set to 0 for the correct operation of the device.
Enables routing MLC4 interrupt event to the INT pin. Default value: 0
INT_MLC4(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing MLC3 interrupt event to the INT pin. Default value: 0
INT_MLC3(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing MLC2 interrupt event to the INT pin. Default value: 0
INT_MLC2(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Enables routing MLC1 interrupt event to the INT pin. Default value: 0
INT_MLC1(1)
(0: routing to the INT pin disabled; 1: routing to the INT pin enabled)
Interrupt status bit for FSM long counter timeout interrupt event
IS_FSM_LC
(1: interrupt detected; 0: no interrupt)
Interrupt status bit for significant motion detection
IS_SIGMOT
(1: interrupt detected; 0: no interrupt)
Interrupt status bit for tilt detection
IS_TILT
(1: interrupt detected; 0: no interrupt)
Interrupt status bit for step detection
IS_STEP_DET
(1: interrupt detected; 0: no interrupt)
IS_FSM8 Interrupt status bit for FSM8 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM7 Interrupt status bit for FSM7 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM6 Interrupt status bit for FSM6 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM5 Interrupt status bit for FSM5 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM4 Interrupt status bit for FSM4 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM3 Interrupt status bit for FSM3 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM2 Interrupt status bit for FSM2 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_FSM1 Interrupt status bit for FSM1 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC4 Interrupt status bit for MLC4 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC3 Interrupt status bit for MLC3 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC2 Interrupt status bit for MLC2 interrupt event. (1: interrupt detected; 0: no interrupt)
IS_MLC1 Interrupt status bit for MLC1 interrupt event. (1: interrupt detected; 0: no interrupt)
1. This bit must be set to 0 for the correct operation of the device.
1. This bit must be set to 0 for the correct operation of the device.
Enables batching finite state machine results in the FIFO buffer. Default value: 0
FSM_FIFO_EN(1)
(0: disabled; 1: enabled)
Enables batching machine learning core filters and features in the FIFO buffer. Default
MLC_FILTER_FEATURE_FIFO_EN(1) value: 0
(0: disabled; 1: enabled)
Enables batching machine learning core results in the FIFO buffer. Default value: 0
MLC_FIFO_EN(1)
(0: disabled; 1: enabled)
Enables batching step counter values in the FIFO buffer. Default value: 0
STEP_COUNTER_FIFO_EN(1)
(0: disabled; 1: enabled)
1. When this bit is set to 1, the FIFO must be enabled in continuous mode.
FSM8_EN Enables FSM8. Default value: 0 (0: FSM8 disabled; 1: FSM8 enabled)
FSM7_EN Enables FSM7. Default value: 0 (0: FSM7 disabled; 1: FSM7 enabled)
FSM6_EN Enables FSM6. Default value: 0 (0: FSM6 disabled; 1: FSM6 enabled)
FSM5_EN Enables FSM5. Default value: 0 (0: FSM5 disabled; 1: FSM5 enabled)
FSM4_EN Enables FSM4. Default value: 0 (0: FSM4 disabled; 1: FSM4 enabled)
FSM3_EN Enables FSM3. Default value: 0 (0: FSM3 disabled; 1: FSM3 enabled)
FSM2_EN Enables FSM2. Default value: 0 (0: FSM2 disabled; 1: FSM2 enabled)
FSM1_EN Enables FSM1. Default value: 0 (0: FSM1 disabled; 1: FSM1 enabled)
P_X FSM1 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM1 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM1 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM1 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM1 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM1 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM1 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM1 output: negative event detected on the vector. (0: event not detected; 1: event detected)
P_X FSM2 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM2 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM2 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM2 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM2 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM2 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM2 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM2 output: negative event detected on the vector. (0: event not detected; 1: event detected)
P_X FSM3 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM3 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM3 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM3 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM3 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM3 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM3 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM3 output: negative event detected on the vector. (0: event not detected; 1: event detected)
P_X FSM4 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM4 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM4 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM4 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM4 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM4 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM4 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM4 output: negative event detected on the vector. (0: event not detected; 1: event detected)
P_X FSM5 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM5 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM5 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM5 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM5 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM5 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM5 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM5 output: negative event detected on the vector. (0: event not detected; 1: event detected)
P_X FSM6 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM6 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM6 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM6 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM6 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM6 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM6 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM6 output: negative event detected on the vector. (0: event not detected; 1: event detected)
P_X FSM7 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM7 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM7 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM7 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM7 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM7 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM7 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM7 output: negative event detected on the vector. (0: event not detected; 1: event detected)
P_X FSM8 output: positive event detected on the X-axis. (0: event not detected; 1: event detected)
N_X FSM8 output: negative event detected on the X-axis. (0: event not detected; 1: event detected)
P_Y FSM8 output: positive event detected on the Y-axis. (0: event not detected; 1: event detected)
N_Y FSM8 output: negative event detected on the Y-axis. (0: event not detected; 1: event detected)
P_Z FSM8 output: positive event detected on the Z-axis. (0: event not detected; 1: event detected)
N_Z FSM8 output: negative event detected on the Z-axis. (0: event not detected; 1: event detected)
P_V FSM8 output: positive event detected on the vector. (0: event not detected; 1: event detected)
N_V FSM8 output: negative event detected on the vector. (0: event not detected; 1: event detected)
1. This bit must be set to 0 for the correct operation of the device.
Read-only bit.
1. This bit must be set to 0 for the correct operation of the device.
MLC_BEFORE_FSM_INIT Machine learning core initialization request (MLC executed before FSM). Default value: 0
SIG_MOT_INIT Significant motion detection algorithm initialization request. Default value: 0
TILT_INIT Tilt algorithm initialization request. Default value: 0
STEP_DET_INIT Pedometer step counter/detector algorithm initialization request. Default value: 0
1. This bit must be set to 0 for the correct operation of the device.
MLC_INIT Machine learning core initialization request (MLC executed after FSM). Default value: 0
FSM_INIT FSM initialization request. Default value: 0
1. This bit must be set to 0 for the correct operation of the device.
2. This bit must be set to 1 for the correct operation of the device.
If the device is not set in the AH / vAFE only state, the finite state machine ODR configuration is:
(000: 12.5 Hz;
001: 25 Hz (default);
010: 50 Hz;
011: 100 Hz;
100: 200 Hz;
101: 400 Hz;
110: 800 Hz)
FSM_ODR_[2:0] If the device is set in the AH / vAFE only state (see Section 2.6: Analog hub / vAFE only state), the finite
state machine ODR configuration is:
(000: 50 Hz;
001: 100 Hz (default);
010: 200 Hz;
011: 400 Hz;
100: 800 Hz;
101: 1600 Hz (available if the HP_EN bit is set to 0 in the CTRL3 (12h) register);
110: reserved)
1. This bit must be set to 0 for the correct operation of the device.
2. This bit must be set to 1 for the correct operation of the device.
If the device is not set in the AH / vAFE only state, the machine learning core ODR configuration is:
(000: 12.5 Hz;
001: 25 Hz (default);
010: 50 Hz;
011: 100 Hz;
100: 200 Hz)
If the device is set in the AH / vAFE only state (see Section 2.6: Analog hub / vAFE only state), the machine
MLC_ODR_[2:0] learning core ODR configuration is:
(000: 50 Hz;
001: 100 Hz (default);
010: 200 Hz;
011: 400 Hz;
100: 800 Hz;
101: 1600 Hz (available if the HP_EN bit is set to 0 in the CTRL3 (12h) register);
110: reserved)
The table given below provides a list of the registers for the embedded advanced features page 0. These
registers are accessible when PAGE_SEL[3:0] are set to 0000 in PAGE_SEL (02h).
Note: The content of these registers is loaded when the embedded functions are enabled by setting the
EMB_FUNC_EN bit to 1 in the CTRL4 (13h) register. The embedded functions must be enabled in order for
these registers to become accessible.
Register address
Name Type Default Comment
Hex Binary
Reserved registers must not be changed. Writing to those registers may cause permanent damage to the device.
The content of the registers that are loaded at boot should not be changed. They contain the factory calibration
values. Their content is automatically restored when the device is powered up.
Write procedure example: write value 06h in register at address 5Eh (PEDO_DEB_STEPS_CONF) in Page 0
Read procedure example: read value of register at address 5Eh (PEDO_DEB_STEPS_CONF) in Page 0
Note: Steps 1 and 2 of both procedures are intended to be performed at the beginning of the procedure. Steps 6 and 7
of both procedures are intended to be performed at the end of the procedure. If the procedure involves multiple
operations, only steps 3, 4 and 5 must be repeated for each operation. If, in particular, the multiple operations
involve consecutive registers, only step 5 can be performed.
FSM_LC_TIMEOUT[7:0] FSM long counter timeout value (LSbyte). Default value: 00000000
FSM_LC_TIMEOUT[15:8] FSM long counter timeout value (MSbyte). Default value: 00000000
FSM_N_PROG[7:0] Number of FSM programs; must be less than or equal to 8. Default value: 00000000
1. This bit must be set to 0 for the correct operation of the device.
CARRY_COUNT_EN Set when user wants to generate interrupt only on count overflow event.
1. This bit is active if the MLC_EN bit of EMB_FUNC_EN_B (05h) or the MLC_BEFORE_FSM_EN bit in the
EMB_FUNC_EN_A (04h) register is set to 1.
Debounce threshold. Minimum number of steps to increment the step counter (debounce).
DEB_STEP[7:0]
Default value: 00001010
Sets the value of the duration threshold for the smart power management feature. The
SMART_POWER_CTRL_DUR[3:0] actual value is the value of the ODR period multiplied by
SMART_POWER_CTRL_DUR[3:0] / 16.
Sets the number of consecutive windows during which the smart power management
SMART_POWER_CTRL_WIN[3:0]
feature is evaluated. The actual number is SMART_POWER_CTRL_WIN[3:0] * 16.
13 Package information
In order to meet environmental requirements, ST offers these devices in different grades of ECOPACK packages,
depending on their level of environmental compliance. ECOPACK specifications, grade definitions and product
status are available at: www.st.com. ECOPACK is an ST trademark.
OUTER DIMENSIONS
DM00794797_1
Revision history
Table 232. Document revision history
Contents
1 Block diagram and pin description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Pin description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.1 Operating modes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Biosensor functionality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 vAFE description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.4 One-shot mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.5 Power-up sequence and active mode configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.5.1 Power-up command . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.6 Analog hub / vAFE only state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.7 Activity/inactivity, Android stationary/motion detection functions . . . . . . . . . . . . . . . . . . . . . . . . 7
2.8 Interrupt event recognition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3 Electrical and mechanical specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.1 Electrical characteristics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3.2 Mechanical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 Communication interface characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.1 SPI - serial peripheral interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3.2 I²C - inter-IC control interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.4 Absolute maximum ratings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.5 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5.1 Accelerometer sensitivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5.2 Accelerometer zero-g level offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4 Digital interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17
4.1 I²C serial interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1.1 I²C operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2 SPI bus interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2.1 SPI read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.2.2 SPI write . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.2.3 SPI read in 3-wire mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
List of tables
Table 1. Pin description. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Table 2. Configuration of duration of interrupt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Table 3. Electrical parameters of analog hub / vAFE (@VDD = 1.8 V, T = 25°C) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Table 4. Electrical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Table 5. Mechanical characteristics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Table 6. SPI target timing values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Table 7. I²C target timing values . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Table 8. Absolute maximum ratings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Table 9. Serial interface pin description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 10. I²C terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Table 11. TAD+read/write patterns . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table 12. Transfer when controller is writing one byte to target. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table 13. Transfer when controller is writing multiple bytes to target . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table 14. Transfer when controller is receiving (reading) one byte of data from target . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Table 15. Transfer when controller is receiving (reading) multiple bytes of data from target . . . . . . . . . . . . . . . . . . . . . . . 18
Table 16. MIPI I3C® CCC commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Table 17. Internal pin status . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Table 18. Register map. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Table 19. Table 20. EXT_CLK_CFG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 20. EXT_CLK_CFG register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 21. Table 20. PIN_CTRL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 22. PIN_CTRL register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Table 23. WAKE_UP_DUR_EXT register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Table 24. WAKE_UP_DUR_EXT register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Table 25. WHO_AM_I register default values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Table 26. CTRL1 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Table 27. CTRL1 register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Table 28. CTRL2 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Table 29. CTRL2 register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Table 30. CTRL3 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Table 31. CTRL3 register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Table 32. CTRL4 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Table 33. CTRL4 register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Table 34. ODR frequency in inactivity state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Table 35. CTRL5 register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Table 36. CTRL5 register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Table 37. Operating modes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Table 38. Bandwidth selection (low-power mode with ODR < 50 Hz). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table 39. Output data rate / bandwidth configurations in AH / vAFE only state . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table 40. Full-scale selection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Table 41. FIFO_CTRL register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Table 42. Selection of FIFO mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Table 43. FIFO_WTM register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 44. FIFO_WTM register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 45. INTERRUPT_CFG register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 46. INTERRUPT_CFG register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Table 47. SIXD register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table 48. SIXD register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table 49. WAKE_UP_THS register. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table 50. WAKE_UP_THS register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Table 51. WAKE_UP_DUR register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table 52. WAKE_UP_DUR register description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Table 53. FREE_FALL register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
List of figures
Figure 1. Block diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Figure 2. Pin connections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Figure 3. SPI target timing in mode 0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Figure 4. SPI target timing in mode 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Figure 5. I²C target timing diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Figure 6. Read and write protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Figure 7. SPI read protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figure 8. Multiple byte SPI read protocol (2-byte example). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Figure 9. SPI write protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figure 10. Multiple byte SPI write protocol (2-byte example) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figure 11. SPI read protocol in 3-wire mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Figure 12. ST1VAFE3BX electrical connections (top view). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Figure 13. vAFE external connections to pin 11, 12 (vAFE input) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Figure 14. Four-stage pedometer algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Figure 15. Generic state machine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Figure 16. State machine in the ST1VAFE3BX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figure 17. Machine learning core in the ST1VAFE3BX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Figure 18. LGA-12L 2.0 x 2.0 x 0.74 mm package outline and mechanical data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89