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
Solved! Go to Solution.
Thanks for your inquiry.
BMP280 has been discontinued. Please switch to BMP581 at https://www.bosch-sensortec.com/media/boschsensortec/downloads/datasheets/bst-bmp581-ds004.pdf which can achieve more than 480Hz sampling rate.
BMP180 is older generation of BMP280. BMP180 only has forced mode which means that the host MCU always needs to trigger the measurement.
BMP280 has both forced mode and normal mode. According to Table 13 of BMP280 datasheet, the minimum sampling rate in forced mode is 155.6Hz which is up to 157Hz listed in Table 1 the comparison between BMP180 and BMP280. The typical sampling rate of BMP280 in forced mode is 181.8Hz at the same osr_t = osr_p = 1. When you choose BMP280 normal mode and 0.5ms standby time, then the sampling rate becomes 166.67Hz in Table 14. This means that BMP280 will automatically and continuously make measurements at 166.67Hz.
BMP581 has forced mode, normal mode and continuous mode. At continuous mode BMP581 will ignore the standby time in normal mode and make new measurement immediately once the previous measurement is done. Therefore, BMP581 can reach more than 480Hz sampling rate in continuous mode.
It is true that you always need to get BMP280 both temperature sensor data and pressure sensor data in order to calculate the final temperature value in the unit of C and temperature compensated pressure value in the unit of Pa. BMP280 temperature sensor can be skipped or disabled to save power. But without temperature sensor data the BMP280 pressure measurement doesn't make sense.
Another advantage of BMP581 is that after you read out 3-byte pressure sensor data you can simply divide this data by 64 to get the final pressure value in the unit of Pa directly without the need to run the formula in BMP180 and BMP280. Same to BMP581 temperature sensor data. After you read out 3-byte temperature sensor data you can simply divide this data by 65536 to get the final temperature value in the unit of C directly without the need to run any formula.
Thanks for your reply.
I would like to understand with your permission please what it means “pressure measurement doesn’t make sense” if we don’t measure the temperature?
I don't much care about temperature so maybe you can be more specific - is it mandatory to have a temperature measurement prior to pressure measurement ('yes' or 'no')?
I want to emphasis my question. Maybe i was not accurate and clear from the beginning.
I would like to skip the "MeasurementT" in yellow rectangle as in below snapshot.
For achieving that I’m configuring my device to:
osrs_t = 0; osrs_p = 1; mode = Normal/Forced; Filter = Off; t_sb = 0
Is it OK?
Is it allow?
Can I achieve higher rate by doing so?