08-16-2022 12:20 PM
I’m working on the BMP280 digital pressure sensor.
I would like to have some question raised during reading of the datasheet.
Is it mandatory to read temperature prior to pressure?
I would like to shorten the BMP280 measurement period/cycle by skip reading the temperature, is it allowed?
Moreover, at your reference code I’ve noticed that read pressure won’t be executed unless temperature has been read successfully before, pls see below snapshot:
also I can see that compensate pressure must have the fine resolution temperature value in advanced
Thanks in advanced
Ronen
Solved! Go to Solution.
08-18-2022 06:37 PM
Hi,
BMP280 outputs unsigned integers for temperature sensor and pressure sensor. Users need to use the formula to calculate the final temperature in the unit of C and final pressure in the unbit of Pa based on the NVM parameters and the raw data.
If the temperature is almost constant inside the product, then users can take one temperature sensor measurement during initialization and skip the temperature sensor measurement in the future in order to achieve higher sampling rate. That is, the formula will always use the initial temperature data to calculate all following pressure values.
Thanks.
10-18-2022 06:10 AM
Hi,
Thanks,
Ronen
10-18-2022 07:44 PM
Hi,
To your question #1, there is no stabilization time for BMP280 in Forced mode. This means that after you send a command to trigger the Forced mode, BMP280 will take measurements for pressure and temperature based on osr_p and osr_t settings as shown in Figure 3 on page 16 of BMP280 datasheet. After the measurements are done, the data registers will be updated with the new measurements. Then BMP280 will automatically goes into sleep mode. At this time you can immediately send the command again to trigger Forced mode. So on and so on.
To your question #2, please refer to table 13 on page 18 of BMP280 datasheet. For example when osr_p = x1 and osr_t = x1, BMP280 will take typically 5.5ms and maximum 6.4ms to finish the measurements. You can either delay 7ms after you send the command to trigger Forced mode and then read data registers for new data, or keep polling status register 0xF3 to see if bit-3 is 0 or not. If this bit is 0, then it means new data is ready in data registers to be read. If you toggle a GPIO pin of your MCU at the time point when you send the command to BMP280 to trigger Forced mode and at the time point when status register 0xF3 bit-3 is 0, you can figure out the BMP280 measurement time at any combinations of osr_p and osr_t settings.
Thanks.
10-19-2022 06:43 AM
Hi,
Thnaks for your support.
Just another clarification with your pernmission please - is it also the same behiviour in Normal mode (i.e. no stabilization time expect the additional t-standby time)?
BR,
Ronen
10-19-2022 05:52 PM
Hi,
That is correct. It is also the same behiviour in Normal mode (i.e. no stabilization time expect for the additional t-standby time).
Thanks.