09-10-2019 01:51 PM
Hello,
On our board we've integrated a BMP280 that we drive with I²C. I use the driver provided by https://github.com/BoschSensortec/BMP280_driver
However the self-test fails for t3 check: the value 50 is not within the range [-3000, -1000] (https://github.com/BoschSensortec/BMP280_driver/blob/master/bmp280_defs.h#L304-L305)
Debug traces:
13:33:36.631733 😧 read: 0xd0: @00: 58
13:33:36.631748 😧 read: 0x88: @00: d5
13:33:36.631761 😧 read: 0x88: @01: 6a
13:33:36.631775 😧 read: 0x88: @02: ac
13:33:36.631789 😧 read: 0x88: @03: 64
13:33:36.631804 😧 read: 0x88: @04: 32
13:33:36.631821 😧 read: 0x88: @05: 00
13:33:36.631836 😧 read: 0x88: @06: fb
13:33:36.639739 😧 read: 0x88: @07: 94
13:33:36.639844 😧 read: 0x88: @08: 9e
13:33:36.639857 😧 read: 0x88: @09: d6
13:33:36.639870 😧 read: 0x88: @0a: d0
13:33:36.639889 😧 read: 0x88: @0b: 0b
13:33:36.639907 😧 read: 0x88: @0c: 26
13:33:36.639924 😧 read: 0x88: @0d: 20
13:33:36.639939 😧 read: 0x88: @0e: 62
13:33:36.639955 😧 read: 0x88: @0f: ff
13:33:36.639971 😧 read: 0x88: @10: f9
13:33:36.639988 😧 read: 0x88: @11: ff
13:33:36.640005 😧 read: 0x88: @12: 8c
13:33:36.640023 😧 read: 0x88: @13: 3c
13:33:36.640040 😧 read: 0x88: @14: f8
13:33:36.640055 😧 read: 0x88: @15: c6
13:33:36.640072 😧 read: 0x88: @16: 70
13:33:36.640090 😧 read: 0x88: @17: 17
13:33:36.645969 OK: 875: 27349 vs. 19000/ 35000
13:33:36.646048 OK: 881: 25772 vs. 22000/ 30000
13:33:36.646063 ERR: 884: 50 vs. -3000/ -1000
13:33:36.646095 OK: 893: 38139 vs. 30000/ 42000
13:33:36.646109 OK: 899: -10594 vs. -12970/ -8000
13:33:36.646125 OK: 905: 3024 vs. -5000/ 8000
13:33:36.646141 OK: 911: 8230 vs. -10000/ 18000
13:33:36.646158 OK: 917: -158 vs. -500/ 1100
13:33:36.646174 OK: 923: -7 vs. -1000/ 1000
13:33:36.646190 OK: 929: -14600 vs. -30000/ 10000
13:33:36.662018 OK: 935: 6000 vs. -10000/ 30000
13:33:36.662074 E: 128: self-test failed: -9
Since I do not see the values in the datasheet, I'm unsure where the problem lies: code (-1000 value is too low) or in the chip (i.e. at production time).
I have tested with two chips and both show 50 (but have some different values on other fields):
12:56:50.979826 OK: 879: 27608 vs. 19000/ 35000
12:56:50.979848 OK: 885: 25836 vs. 22000/ 30000
12:56:50.979882 ERR: 888: 50 vs. -3000/ -1000
12:56:50.979914 OK: 896: 39409 vs. 30000/ 42000
12:56:50.979937 OK: 902: -10632 vs. -12970/ -8000
12:56:50.979965 OK: 908: 3024 vs. -5000/ 8000
12:56:50.979998 OK: 914: 8011 vs. -10000/ 18000
12:56:50.995638 OK: 920: -293 vs. -500/ 1100
12:56:50.995815 OK: 926: -7 vs. -1000/ 1000
12:56:50.995860 OK: 932: -14600 vs. -30000/ 10000
12:56:50.995901 OK: 938: 6000 vs. -10000/ 30000
Any help appreciated.
Thanks,
Marc.
Solved! Go to Solution.
09-11-2019 09:28 AM
Thanks for the feedback ,the information will be sent back to the internal team.
09-11-2019 10:19 AM
Hi marto,
Can you confirm that the status (0xF3) register's bit 0 (im_update) is 0 before you trigger the self-test? Also, can you read out the laser markings on the top of the sensor?
Regards,
kgoveas
09-16-2019 02:26 PM
I confirm that register 0xf3 returns 0x00.
Regarding the marking I have two pre-prod series:
- 919 KS
- 9N2 KS
Both returns 50 for the test.
(sorry for delay, I thought that I would receive notifications via e-mail).
09-26-2019 02:38 PM
Hello,
Any news/idea about this problem ?
Thanks,
Marc.