Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BME688+SPI+ spi_mem_page -problem

    BME688+SPI+ spi_mem_page -problem

    MAJINGQI1
    Occasional Visitor

    SPI memory map page selection – spi_mem_page

    In SPI mode complete memory page is accessed using page 0 & page 1. Register spi_mem_page is used for page selection.
    After power-on, spi_mem_page is in its reset state and page 0(0x00 to 0x7F) will be active. Page1 (0x7F to 0xFF) will be
    active on setting spi_mem_page. Please refer Table 21 for better understanding.

    General remarks

    In SPI mode complete memory map is accessed using page 0 and page 1. Register spi_mem_page is used for page selection.
    After power-on, spi_mem_page is in its reset state and page 0 (0x80 to 0xFF) will be active. Page 1 (0x00 to 0x7F) will be
    active on setting spi_mem_page to 1.

    Are the descriptions of page in these two paragraphs in the data sheet contradictory? The page change I understand is to write the address name: Status is (0X73), the command is 0X10 (the fourth bit is guaranteed to be 1). Then how to read the status of the page? Through write operation: write data at address (0X73), read out its Reset state as 0X00 is page 0, 0X01 is page 1 (this is how I understand it). Is such a logic correct? The problem is that I change the page through the above logic, and the address is still 00. I don’t know whether the page address has not been changed or the page status cannot be read.

    3 REPLIES 3

    BSTRobin
    Community Moderator
    Community Moderator

    Hi MAJINGQI1,

    After power-on, default register value of status(0x73) is 0x01, spi_mem_page bit is 0, page 0(0x00 to 0x7F) will be active. If you write bit spi_mem_page to 1, page 1(0x7F to 0xFF) will be active.
    The BME688 sensor API(https://github.com/boschsensortec/BME68x-Sensor-API) has implemented how to access page 0, 1, and you can refer to it.

    Thank you for your reply. Your answer is the same as what I thought, but when reading the set register value, the value of the register cannot be read or the value of the register has been read multiple times. Even the read value and The set values are different, what is the reason? Is there a time interval limit for BME688 writing and reading registers?

    BSTRobin
    Community Moderator
    Community Moderator

    Hi MAJINGQI

    If you don't know how to operate(write/read) register, according previoud comment you can use BME688 sensor API and example code.

    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