I have a question (or a challenge) regarding the data ready interrupt of the BMA456.
My wish would be quite simple, to read out the unfiltered acceleration sensor values every 2,5ms.
Therefore I operate the sensor with 400Hz and configure the sensor with ACC_Conf.acc_perf_mode = 1 and ACC_Conf.acc_bwp = 0x02 (normal mode)
I observed that about 4 samples are missed after configuration before the first data-ready interrupt occurs. In other words: I'd expect the data ready interrupt about 2,5ms after configuration but actually the data ready interrupt is triggered 12ms after configuration. All interrupts after the first interrupt come with a frequency of 400Hz. See following image:
If I change the configuration to ACC_Conf.acc_perf_mode = 0 and ACC_Conf.acc_bwp = 0x00 the sensor delivers the data as expected, see following image.
How does the sensor behave when ACC_Conf.acc_perf_mode = 0 and PWR_CONF.adv_powersave = 0 are set at the same time?
Unfortunately, this configuration is not described in chapter 4.3 of the BMA456 datasheet.
I thought that the following configuration would be correct for this:
ACC_Conf.acc_perf_mode = 1
ACC_Conf.acc_bwp = 0x02 -> designated as "normal mode"
But this configuration does not work as expected (as shown above).
My key questions are:
- How does the sensor behave when ACC_Conf.acc_perf_mode = 0 and PWR_CONF.adv_powersave = 0 are set at the same time?
- Why are approx. 4 samples missing when I use the configuration ACC_Conf.acc_perf_mode = 1 and ACC_Conf.acc_bwp = 0x02 (normal mode)?
Thank you for trying to reproduce the problem.
I am currently wondering why you receive data ready interrupts before the initialization has been completed.
At which point of time do you write to register (0x58) INT_MAP_DATA?
Why is there such a long delay (more than 20ms) between writing to register 0x58 and init complete?
Thank you very much in advance!