Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    BMP280 - Always initial values

    BMP280 - Always initial values

    PS1
    Member

    Hello together,

    I am experiencing some difficulties with the BMP280 sensor and the official (GitHub) drivers.

    I have ported the sample program for my platform and so far everything looks good. On the I2C everything looks consistent with a logic analyzer. However, the sensor always outputs only the reset values (0x800000) for the two parameters pressure and temperature.

    Of course, the corresponding measurements are not disabled (as I said, it's basically the exact example program, with adjusted I2C read/write and delay methods). I also added a provisional call to the "bmp2_get_power_mode" method to make sure that the sensor is not in sleep mode. In the I2C response when reading the register I can see on the logic analyzer that it is in "standard mode" as planned

    The sensor is supplied with 1.8V VDD and VDDIO. It is wired with two 100nF capacitors as described in the data sheet. The standby-delay is set to 250ms (default for the provided sample).

    I attached two screen captures of the Logic Analyzer trace. They show the readout of the registers 0xF7 to 0xFC and the corresponding readout of the registers 0xF3 and 0xF4.

    I hope someone can tell me what I do wrong.

    Kind regards!

    3 REPLIES 3

    BSTRobin
    Community Moderator
    Community Moderator

    Hello PS1,

    After you migrating BMP280 example code from github and readm pressue value, could you read out the following memory map values before you read sensor data, and check whether the register value is set by you?

    BMP280 memory map.png

    Hello BSTRobin and thank you for your reply!

    I am able to read and write these registers as appropriate. As you can see in the attached logic analyzer trace screenshots, the set values (e.g. "mode": 0b11) are actually set, since they are mirrored correctly with a read operation. So the I2C communication should be ok as far as I can tell.

    I could also provide you with the calibration data that is received at initialization. But since the transmitted data on the I2C is 0x800000 (reset values) I don't think they are important in this case.

    Never mind - I just got it working. Seems there was a power supply issue when my custom PCB was powered via USB. I assume the error is caused somehow by the LDO circuit on my board. Thanks for the help.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist