01-19-2023 07:15 PM
I'm currently looking at the BMP280 datasheet and wanted to readout the Temperature compensation parameters from the sensor. In Page 21 under section 3.11.2, I see the registers to read dig_T1, dig_T2 and dig_T3in Table 17. However the table header shows that the first register is the content LSB while the second register is the content MSB. The value I've put together doesn't add up to the expected register content values shown in the sample table in Page 23.
However, if I use the first register as the MSB and the second register as the LSB, the values I get match what I see in the Page 23 table. Moreover, I am getting the expected cmpensation output with the "byte swap" I've done instead.
Hence, I wanted to request if Table 17 header could be modified in the datasheet to have the first column as "Register Address MSB/LSB" instead of the current "LSB/MSB"?
Solved! Go to Solution.
01-24-2023 08:03 PM
Thanks for your inqury.
I checked BME280 shuttle board that has BMP280 inside BME280 chip and verified that Table 17 in BMP280 datasheet is correct. This means that for dig_T1 register 0x88 contains LSB and register 0x89 contains MSB. For example, dig_T1 shows value of 28033, while register 0x88 has value of 0x81 and register 0x89 has value of 0x6D. Therefore, dig_T1 = (0x89 MSB << 😎 | (0x88 LSB) = 0x6D81 = 28033.
Similarly, dig_P2 shows value of -10850 from register 0x90 (LSB) and 0x91 (MSB). I read register 0x90 and got value of 0x9E. And I got value of 0xD5 from register 0x91. So dig_P2 = (0x91 MSB << 😎 | (0x90 LSB) = 0xD59E = -0x2A62 = -10850.