Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BMA2x2 driver

    BMA2x2 driver

    New Poster

    I am using BMA253.

    I downloaded BMA2x2 driver and added delay function and Read Function.

    I tried to read the acceleration data but it gives me back 0.

    Am I missing something?

    I am reading by I2C and I2C address is set to 0x19.

    6 REPLIES 6

    Community Moderator
    Community Moderator

    Hello Comeman,

    There was reference code in github for your reference.

    After you added I2C read function, could you see I2C waveform when you read the acceleration data?

    Thank you for the reply.

    Yes, I have referenced the bma2x2_support.c source code.

    but I have not implemented the write function, so I think the initialization(bma2x2_init()) skipped the actual writing.

    So let me try after adding the write function.

    by the way what are bandwidth and is setting the bandwidth of 7.81Hz as in the reference (bma2x2_support.c) OK?

    I don't have an oscilloscope now, so I can not look at the waveform.

    I added the write function.

    Also the datasheet said when reading, the reg_addr increments automatically so I modified the Read Function a little.

    Lastly I had my I2C address set to 0x19 and it was wrong, because the SDO pin was set to GND so I changed it to 0x18.

    Now I am able to read the chip id correctly in the bma2x2_init() function, so I think that solved it.


    Other than the above I added the i2c initialize function and GPIO Pin Configuration of the microcontroller's SDK.

    Community Moderator
    Community Moderator

    Hello Comeman,

    In bma2x2_support.c reference code, it set 7.81Hz bandwidth.
    If the SDO pin is set to high or low, the corresponding I2C address is different. When using I2C connection, PS pin should be set to high.

    BMA253 I2C connection.png