cancel
Showing results for 
Search instead for 
Did you mean: 

Has anyone seen fluctuations in the pressure reported by LPS22HB sensor?

cjwilde
Associate II

In our application, the LPS22HB has ODR=1Hz. Every 10 seconds the pressure is read from the device and converted to millibars. The pressure is generally around 990 mbar, and data collection is done over hours of time. At random times, the pressure value will fluctuate +/- 15mbars around the mean value, with the fluctuations occuring over a span of 1000 seconds. Why would the sensor report data like this? The delta of 15mbar is much greater than the 0.1mbar accuracy shown in the datasheet.

1 ACCEPTED SOLUTION

Accepted Solutions
Yes, the BDU bit is enabled. The values that we’re seeing are
· 1007: 0x3EF000
· 992: 0x3E0000
· 991: 0x3DF000
· 976: 0x3D0000
I think your theory is promising. If our code reads the data before all three bytes have changed, then we would see the exact data values that are being recorded.
Chuck Wilde
408.914.8223
NEOTech
105 E Galena Suite 500
Aurora, IL USA 60505

View solution in original post

4 REPLIES 4
JWu.12
Associate III

Hi, is the temperature constant over time? You should check if there aren't components that periodically overheat during time, or if varying the acquisition time (e.g. synchronizing the ODR with the acquisition, every 1s) also the pressure fluctuation pattern varies.

And is the pressure sensor and the board in a constant place?

cjwilde
Associate II

JWu,

The temperature is usually controlled in the environment, but it can range from -40C to +85C. I don't know the relationship between the temperature and the fluctuations. The pressure sensor is on a board that remains in a fixed location. The pressure fluctuation is always +/-15 mbars, although it can happen randomly. I attached a picture showing the data.

This looks like some sort of auto calibration from the sensor. Since equal numbers of values above and below the actual value are reported, the fluctuations cancel out.

Uhm... did you enable the BDU bit in CTRL_REG1 (10h) register? In this way the output registers not updated until MSB and LSB have been read. Maybe that jump comes from a misinterpretation of the pressure LSB data.

Yes, the BDU bit is enabled. The values that we’re seeing are
· 1007: 0x3EF000
· 992: 0x3E0000
· 991: 0x3DF000
· 976: 0x3D0000
I think your theory is promising. If our code reads the data before all three bytes have changed, then we would see the exact data values that are being recorded.
Chuck Wilde
408.914.8223
NEOTech
105 E Galena Suite 500
Aurora, IL USA 60505