cancel
Showing results for 
Search instead for 
Did you mean: 

Is anybody having trouble with LPS22HB reading FIFO and returning invalid data after 33 seconds?

curtiscode
Associate II
Posted on December 30, 2016 at 08:14

Here's my configuration:

set(CTRL_REG1, 0x00);

set(CTRL_REG2, 0x80);

set(CTRL_REG3, 0x00);

set(FIFO_CTRL, 0x00); //Flush FIFO

set(CTRL_REG1, 0x3A); //3A was 3E

set(CTRL_REG2, 0x50); //50

set(CTRL_REG3, 0x00);

set(FIFO_CTRL, 0x40);

In my code, I wait 2 seconds and read 32 values from FIFO and average them.

Then I wait 1 second and read 16 values from FIFO and average them.

I do the above in a loop.

Pressure data looks find for about 33 seconds, and then, I get junk back.

If I restart my device (power down and back up again) it will work fine again, for about 33 seconds.

The problem is consistent.  What is going wrong here?

To read a single pressure value, I just request 5 bytes from 0x28 and read them in.  I use the first 3 to calculate pressure and discard the last 2 as they are temperature and not necessary for my application.

Any hints or advice would be greatly appreciated.

PS:  This sensor is mounted on a custom board and I am using a TI MSP430G2553 to drive it.

Values are fine and then all of a sudden, they arent valid anymore.  FifoStatus = 36 when this problem starts.

v1 = 63 v2 = 128 v3 = 54 pressure = 872.02

v1 = 44 v2 = 128 v3 = 54 pressure = 872.01

v1 = 67 v2 = 128 v3 = 54 pressure = 872.02

v1 = 157 v2 = 128 v3 = 54 pressure = 872.04

v1 = 76 v2 = 128 v3 = 54 pressure = 872.02

v1 = 113 v2 = 128 v3 = 54 pressure = 872.03

v1 = 130 v2 = 128 v3 = 54 pressure = 872.03

v1 = 114 v2 = 128 v3 = 54 pressure = 872.03

v1 = 107 v2 = 128 v3 = 54 pressure = 872.03

v1 = 128 v2 = 54 v3 = 84 pressure = 1347.41

Error detected at: 32897 p1 = 128 p2 = 54 p3 = 84 Pressure = 1347.41 FifoStatus = 36

#fifo #barometric-pressure-sensor #lps22hb
0 REPLIES 0