I'm using the source codes from https://github.com/BoschSensortec/BMA456-Sensor-API, the config file has been programmed through i2c but the value from reg BMA4_INTERNAL_STAT is still 0x0 which means the initialization isn't completed. I tried to find any clue by dumpping some error registers but haven't got any idea yet.
[00:00:00.000,000] <info> app: -config_stream_status=0x0
[00:00:00.000,000] <info> app: -BMA4_INTERNAL_ERROR[5F]=0x0, rslt
[00:00:00.000,000] <info> app: -BMA4_ERROR_ADDR=0x0, rslt
[00:00:00.000,000] <info> app: -BMA4_STATUS_ADDR=0x10, rslt
[00:00:00.000,000] <info> app: -BMA4_INIT_CTRL_ADDR=0x1, rslt
[00:00:00.000,000] <info> app: -BMA4_POWER_CONF_ADDR[7C]=0x2, rslt
It's a bit weird that same code works with the reference board(The Grove - Step Counter(BMA456)), but i don't see any hw change will cause this issue, given the i2c communication works well.
I also looked at the link https://community.bosch-sensortec.com/t5/MEMS-sensors-forum/BMA456-Init-Fails/m-p/20683#M5944 and make sure i'm following the suggestions provided.
Any advice would be much appeciated to locate this issue.
Solved! Go to Solution.
BTW, it worked for some time when i was tracing this problem, but fails again without any change from software.
Since there is no error from the i2c programming, i'm wondering which kind of problem could stop it from setting the status register.
I setup example code based on https://github.com/BoschSensortec/BMA456-Sensor-API. Loading config file was succesful. Please refer attachement example code.
Forgot to updating, the example codes are good, the problem comes from the implementation of delay which is not quite accurate enough. It works now.