01-30-2020 03:42 PM
Hello,
I am trying to use BMA400 for step counter and activity tracker features in my demo application,
I get faced some problems,
I need help about solving and understanding these problems.
Settings;
Sensor connected to mcu with I2C interface,
==> i2c_read(BMA400_I2C_ADDRESS,0x00,®val,1); // Ask Chip ID
regval = 0x90, It is OK
==> tmp = 0xB6;
i2c_write(BMA400_I2C_ADDRESS ,0x7E, &tmp, 0x01); //Soft Reset
i2c_read(BMA400_I2C_ADDRESS,0x7E,®val,1);
regval = 0x00, It is OK
==> tmp = 0x02;
i2c_write(BMA400_I2C_ADDRESS ,0x19, &tmp, 0x01); //Set Power mode = Normal Mode
i2c_read(BMA400_I2C_ADDRESS,0x19,®val,1);
regval = 0x02, It is OK
==> tmp = 0x11;
i2c_write(BMA400_I2C_ADDRESS ,0x20, &tmp, 0x01); //Set step interrupt
i2c_read(BMA400_I2C_ADDRESS,0x20,®val,1);
regval = 0x11, It is OK
When i am doing below settings,
I get faced these problems,
1) When i taking step <10, it is not give response. For example when i taking 8 steps. It still says No step, When i taking 10 or more than 10 steps. It will start to counting correct steps.
Why it is ignore steps less than 10 ? How i can solve,
2) When i change my activity from one to another, activity status is not updated real time, it wiil comeafter 5-8 sec.
3) When i compare steps resolution with some of smart band ( Just like a Xiaomi, Vestel …) our resolution is worst according to them.
There is many selectable options (ODR, OSR, acc_filter1, acc_filter2 etc…) These options can effect my accuracy ?
Power consumption is not important i just want to get real time Step count and real time Activity.
4) Placing sensor any of Axis is important ? It can effect step accuracy to place x axis or y axis or z axis ?
5) There is STEP_COUNTER_CONFIG register (0x59 – 0x70) there is no explanition about it. How we can configure it ?
I need help and example about it.
Summary,
I just want to get real time step counter and real time activity
I need help about it,
02-22-2020 12:03 AM
In current sensor design, we only export activity event. All design are fixed in ASIC which means we don't have chance to change the behavior now.
But in system level, you can start a timer when interrupt received to calcualte the still, walking time.