cancel
Showing results for 
Search instead for 
Did you mean: 

LPS22HB Low current and low low noise mode?

le
Associate II
Posted on May 20, 2016 at 16:19

Hi, I'm alitle confused when reading LPS22HB datasheet. Can anyone tell me what are the differences between low-current and low-noise mode?

I know that LPS22HB operates in 3 modes (for collecting data): one-shot mode, continuous mode and power down mode. 

Thank you.

#barometric-pressure-sensor #fifo #lps22hb #lps22hb
9 REPLIES 9
licciardello.anto
Associate II
Posted on May 23, 2016 at 13:07

Hi,

I confirm that the device can be:

1. OFF (Power down Mode)

When the device is in power-down mode, almost all internal blocks of the device are switched off to minimize power consumption.

2. ON.

In this second case it can operate in

a) One Shot Mode - a new acquisition starts when it is required, enabling the One-shot bit in reg 11h

b) continuous mode, automatically acquires a set of data (pressure and temperature) at the frequency selected through ODR[2,0] bits in CTRL_REG1 (10h)

In Active and One shot mode, depending on the specific application, a set of configuration settings is available, ranging from low power to ultra-high resolution profiles.

In The register RES_CONF (0x1Ah), the LC_EN bit allows to select two possible configurations: Low Noise Mode (default) or Low Current Mode.

The configuration can be modified for adapting the output resolution (noise) and the power consumption of the sensor to the design specifications.

In normal operating mode the power consumption depends on the input resolution (internal averaging for temperature and pressure samples) and output data rate (auto-refresh frequency) settings.

The current consumption is directly linked to these averages (set by LC_EN).

In the low noise mode the resolution is higher than resolution in Low Current mode.

In low current mode, these averages are the smallest possible, and so the output noise will be more high.

Conversely in low noise mode, these averages will  be high increasing the power consumption and reducing the output noise.

Regards

Antonella

le
Associate II
Posted on May 25, 2016 at 12:18

Thank for your help Antonella.

You reply almost our post in the forum.

I have some others questions:

In FIFO buffer of ST, there are 6 output registers (32 levels): 0x28h, 0x29h, 0x2Ah, 0x2Bh, 0x2Ch and 0x2Dh.

In 3 Output Pressure registers (0x2A, 0x29, 0x28), 2 Output Temp. registers (0x2C, 0x2B).

They are all 32 levels registers, so that they store 32 reading values of P and T (of 32 acquisition values), so I don't know what value is taken when we calculate the Pressure value as the given formulas:

PressureCounts=2Ah&29h&28h=3FF58Dh=4191629(dec)

then

Pressuremillibar=

PressureCounts/4096

Question 2: sometimes I see the output register address like this: 0x2Ah and sometimes I see: 0x2A. So what is the difference between them?

Question 3: Is there the register 0x2Dh in FIFO LPS22HB buffer?

Thank alot.

licciardello.anto
Associate II
Posted on May 27, 2016 at 11:34

Question 1:

The LPS22HB embeds a 32-slot of 40-bit data FIFO to store the pressure and temperature output values.

FIFO data is read through PRESS_OUT (Addr. reg 28h,29h,2Ah) and TEMP_OUT (Addr.reg 2Bh,2Ch).

Each time that data is read from the FIFO, the oldest data are placed in the PRESS_OUT_XL (28h), PRESS_OUT_L (29h), PRESS_OUT_H (2Ah), TEMP_OUT_L (2Bh) and TEMP_OUT_H (2Ch) registers and both single-read and read-burst operations can be used.

So, the value used for computing the pressure value in the formula is the oldest value in the FIFO (First Input First Output).

In order to read all FIFO levels in multiple byte reading, 160 bytes (5 output

registers by 32 levels) must be read.

Question 2: To indicate a register you can use both notations: 0x2Ah or 2Ah.

Question 3: 0x2D is a reserved register, not included in the FIFO.

Regards

Antonella

le
Associate II
Posted on May 30, 2016 at 10:15

For the reply of the question 1: I agree that the oldest values in FIFO will be read , but my question is what value will be taken to CALCULATE the output pressure.

What you have replied is the READING PROCESS (read the value from FIFO to the output registers), but what I need is CALCULATING PROCESS (take the value from OUTPUT REGISTERS)

Reply 2: 0x2Ah and 0x2A, so the character ''h'' means nothing.

Best regards,

licciardello.anto
Associate II
Posted on May 30, 2016 at 11:09

Sorry,

I hope to correctly interpret your question now.

For CALCULATING PROCESS you have to consider the PRESS_OUT (Addr. reg 28h,29h,2Ah).

PressureCounts=2Ah&29h&28h=3FF58Dh=4191629(dec)

then

Pressuremillibar=PressureCounts/4096.

Regards

Antonella

le
Associate II
Posted on May 30, 2016 at 11:36

Sorry, maybe this is because of my bad english, which make you missunderstood my question.

As I said, each output register is a 32 levels register, so that there will be 32 values of P and T. But when we calculate the pressure (or temperature), which value, in these 32 values, is used in the formula: 

PressureCounts=2Ah&29h&28h

Hope you understand better now!

licciardello.anto
Associate II
Posted on May 30, 2016 at 13:29

Each output register is 8 levels. 3 registers (24 bit ) for Pressure (2Ah&29h&28h) and 2 registers (16 bit) for temperture (2Bh&2Ch). 40 bit in total.

You can read 40 bit each time from these output registers and use these values in the formula in order to calculate Pout in mbar and temperature in °C.

The LPS22HB embeds a 32-slot of 40-bit (24 for pressure and 16 for temperature) data FIFO to store the pressure and temperature output values. You can read a slot of 40 bit at time.

Pls, see the figure 8 on page 18 of LPS22HB on datasheet (rev.4).

The values Pi, Ti are current values for Pressure and temperature that are stored on the FIFO (max level 32). P31, T31 (40 bit)  are the oldest value; P0 and T0 (40 bit) are the last values saved.

When the FIFO is filled,  the FIFO stops collecting data from the input pressure and temperature.

FIFO data is read through PRESS_OUT (Addr. reg 28h,29h,2Ah) and TEMP_OUT (Addr.reg 2Bh,2Ch).

Each time that data is read from the FIFO, the oldest data P31 and T31 (40 bit)  are placed in the PRESS_OUT_XL (28h), PRESS_OUT_L (29h), PRESS_OUT_H (2Ah), TEMP_OUT_L (2Bh) and TEMP_OUT_H (2Ch) registers.

So, the value used for computing the pressure value in the formula is the oldest value in the FIFO  (First Input First Output).

The next reading is going to retrieve P30 and T30 values from FIFO and these values will be considered in the formula for the computing  Pout in mbar and temperature in °C and so on.

Hope my explanation is more clear now.

Regards

Antonella

le
Associate II
Posted on May 30, 2016 at 14:16

In page 22 (lps22hb datasheet), part 5.8 Retrieving data from FIFO: ''The device automatically updates the reading address and it rolls back to 28h when register2Ch is reached. In order to read all FIFO levels in multiple byte reading, 160 bytes (5 outputregisters by 32 levels) must be read.''. So it's not 8 levels!

Like you said, the oldest value is taken for calculating and showing the value, if I request LSP22HB tell me the pressure at this moment, it only use the oldest value, so the other values are useless

Please make it clearly.

licciardello.anto
Associate II
Posted on May 30, 2016 at 14:48

The output registers (28h-2Ch) are registers at 8 bits.

The FIFO is a buffer with 32 levels, each one including 5 byte (40 bit), 3 byte for pressure and 2 byte for temperature.

You can read 5 bytes for time.

The first reading retrieves the oldest value for example (if FIFO is filled) P31,T31 (5 byte) from FIFO, the second reading retrieve P30, T30 and so on until you read the P0 and T0 values.

Each time you read a level, for example, P31, T31, you have to calculate the Pout with the formula:

PressureCounts=2Ah&29h&28h=3FF58Dh=4191629(dec)

then

Pressuremillibar=PressureCounts/4096. 

The next reading is going to retrieve P30 and T30 values from FIFO and these values will be considered in the formula for the computing  Pout in mbar and temperature in °C and so on until you retrieve the value P0 and T0 from FIFO and the FIFO is empty.

If the FIFO is not enabled, you can read only the current value. Each new value overwrites the previous value.

If the FIFO is enabled, the device can stored until to 32 different values for pressure and temperature and you can read all values and compute 32 different Pout(mbar) and Temperatre (°C).

If it is yet not clear , I suggest you to read an overview on FIFO buffer.

Regards

Antonella