Skip to main content
KJose.1
Associate II
September 21, 2026
Solved

BDU behaviour - IIS2DLPC

Hi
 

I would like to clarify the exact behaviour of the BDU function. According to the datasheet and application note, BDU should prevent the output registers from being updated until both the LSB and MSB have been read.

After enabling BDU, I repeatedly read only the LSB register without reading the corresponding MSB. However, I receive a new LSB value with each read. This means LSB is getting updated, eventhough the condition of reading both LSB and MSB is not fulfilled. Why acceleration data appears to update even though the corresponding MSB register has not been read?

I’m using the following notations to explain better.

 

Time LSB MSB
t1 L1 M1
t2 L2 M2
t3 L3 M3
t4 L4 M4

 

Could you please clarify whether the LSB is allowed to update while the MSB remains frozen? If so, when the MSB is eventually read, should it correspond to the first LSB value or to the latest LSB value? i.e. If i read LSB only 4 times and then read MSB, would it be M1 or M4?  Is the BDU behaviour identical when using different modes and digital interfaces?

Thank you in advance for your clarification.

Federica Bossi
Federica BossiBest answer
ST Technical Moderator
September 24, 2026

Hi ​@KJose.1 ,

The guaranteed behavior of BDU on the IIS2DLPC is to prevent mixed-sample reads. When BDU = 1, the output registers are frozen so that LSB and MSB belong to the same sample, and the host will not read one byte from one sample and the other byte from a different sample. The datasheet recommends enabling BDU when the host cannot guarantee reading data faster than the ODR. 

In practice, BDU does not mean that both bytes are independently locked until both have been read in any possible access pattern. The application note wording clarifies that BDU guarantees the two bytes are sampled consistently at the same moment, i.e. the bytes of a given output word refer to the same measurement. 

So if you keep reading only the LSB, you may still observe new LSB values depending on the read sequence and device update timing, but the key point is that the final 16-bit value must remain coherent. If you read the LSB several times and then read the MSB, the MSB returned is the one associated with the coherent sample selected by the device’s BDU logic, not an arbitrary mix of samples. For exact byte-by-byte behavior across all modes and interfaces, please refer to the device’s detailed timing description in the datasheet and app note.

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.

1 reply

Federica Bossi
Federica BossiBest answer
ST Technical Moderator
September 24, 2026

Hi ​@KJose.1 ,

The guaranteed behavior of BDU on the IIS2DLPC is to prevent mixed-sample reads. When BDU = 1, the output registers are frozen so that LSB and MSB belong to the same sample, and the host will not read one byte from one sample and the other byte from a different sample. The datasheet recommends enabling BDU when the host cannot guarantee reading data faster than the ODR. 

In practice, BDU does not mean that both bytes are independently locked until both have been read in any possible access pattern. The application note wording clarifies that BDU guarantees the two bytes are sampled consistently at the same moment, i.e. the bytes of a given output word refer to the same measurement. 

So if you keep reading only the LSB, you may still observe new LSB values depending on the read sequence and device update timing, but the key point is that the final 16-bit value must remain coherent. If you read the LSB several times and then read the MSB, the MSB returned is the one associated with the coherent sample selected by the device’s BDU logic, not an arbitrary mix of samples. For exact byte-by-byte behavior across all modes and interfaces, please refer to the device’s detailed timing description in the datasheet and app note.

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question.