Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMP280 for testing SPI

    BMP280 for testing SPI

    New Poster


    I'm trying to use the BMP280 to test the SPI pinouts on a new board.  I need something simple to get me started please.

    I am struggling with both the BMP280_driver-master and BMP2-Sensor-API-master APIs.  So am just looking for something simple that will allow me to test that I am receiving anything over SPI MISO.

    I have configured my SAMD51 using Atmel START, and believe I have the correct pinouts wired through to the BMP280 and Logic analyser.  I can see from the logic analyser that I am sending the Hex value that I expect to send - I can see it on the MOSI line, but there is nothing coming back on the MISO line.

    I'm sending 0xD0 to try to get the chip to respond with it's ID, but as you can see from the Logic analyser screenshot the BMP280 is not outputting anything.



    This is the line of code I'm using to send the SPI write, which is based on Atmel's ASF4 :

    io_write(io, (uint8_t *)"Ð", 1); // sends 0xD0 over SPI

    (This use of the ASCII "Ð" shows you what a Noob I am.  There is surely a better way for that but it seems to work ok)

    I have also tried 0xF7 and 0x77 but same result.

    If someone can confirm that by sending that 0xD0 command over SPI that I should receive something back directly on the MOSI line then I can dig into if it's something to do with how I've configured the SPI settings or similar.





    2 REPLIES 2

    New Poster

    Received help from another forum ( posting here so that it may help others:


    pointer buffSPI doesn't point to a valid buffer, it points to address 0x0000.

    Solution was to use:

    uint8_t recvBuffer[8];
    io_read(io, recvBuffer, 1);

    Community Moderator
    Community Moderator

    Hi embeddedNoob,

    Chip ID sohuld be read out in next 8 clock, please refer SPI waveform like this:

    BMP280 SPI waveform(read chip ID).png