04-27-2021 12:43 AM
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.
04-27-2021 03:09 AM
Hello Comeman,
There was reference code in github for your reference.
https://github.com/BoschSensortec/BMA2x2_driver/blob/master/bma2x2_support.c
After you added I2C read function, could you see I2C waveform when you read the acceleration data?
04-27-2021 04:32 AM - edited 04-27-2021 11:38 PM
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.
04-27-2021 08:15 AM
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.
05-07-2021 10:13 AM
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.