01-13-2021 09:12 AM
Hi,
I just received a a patch of custom PCBs with BMP280 in them. 1 out of the 5 boards I have tested so far is giving wrong pressure values. I am using drivers from zephyr project and using I2C communication. It looks like the sensor follows the same curve as the other ones, but it just reports ~10hPa too low values
This lead me to wonder about BMP280 self test. I can see that Bosch drivers used to have some non-datasheet-documented code for self testing the sensor, but it has been removed
Removed the self-test API as it was no longer valid
So I have two questions:
Any idea why the one sensor is reporting wrong values and is there a way to fix the in-board calibration data so that I get correct results from this sensor?
Is there a way to execute self-test for the sensor so that we can detect such faulty sensors in production tests?
Solved! Go to Solution.
01-18-2021 09:52 AM
I concentrated on that last word of calibration parameters. So for my sensor under test the value of P9 is normally 6000(0x1770). Same as in datasheet example data. But when I get wrong pressure this is 1904(0x0770).
I tried to read the calibration data twise, read the P9 register separately, but it never changes as long as BMP280 has power. On power up that one bit is randomly picked and then it stays.
I am out of ideas how to fix this with SW. What is that P9 anyway? Can I assume that it should always be 6000? Or maybe (p9 mod 1000 == 0)? So that I would have means to try to detect the errors
01-20-2021 12:56 AM
Hello Jussi,
Could you provide register value just before you test and get some data?
I'd like to check your BMP280 status.
Thanks,
01-20-2021 07:22 AM
I am not sure I understand what you mean. The test is to to power up the sensor and read calibration parameters. I can't really read them before I read them?
Anyway, I think I managed to resolve the symptoms although the root cause is still unknown.
In short: BMP280 is connected to 3.3V bus and there is also 1.8V bus/LDO on the board. This 1.8V bus discharges slowly. I noticed that if 1.8V LDO was on before the board was power cycled, there is still charge left on the 1.8V bus when BMP280 calibration parameters are read after power cycle. This somehow randomly corrupts the calibration data.
Workaround was to wait for 1.8V bus to go to 0V and read registers from BMP280 then.
01-20-2021 04:26 PM
Good to hear it.
Yes, the root cause is probably related to operating voltage.
Thanks,