10-19-2020 05:41 PM
I'm using the SPI bus to access the BMI270. The device can reply to the DEVICE_ID register 0 with 0x24. I can monitor the SPI bus and it seems ok and other devices on the same bus function. When I try toload the config_file array from the Github into the BMI270_REG__INIT_DATA register the INTERNAL_STATUS show "Not Init". The INTERNAL_STATUS shows 0x00 (Not Init) and when I read back from the BMI270_REG__INIT_DATA, it is all the same random value for every register (2B, 2B, 2B.. or 1F, 1F, 1F...).
I see that I have to load this 8k file to even get basic accelerometer data.
Does this basic procedure below seem correct?
----------------------------------
//load file to configure
bmi270_writeregister(dev, BMI270_REG__INIT_CTRL, 0);
//set Address to 0
bmi270_writeregister(dev, BMI270_REG__INIT_ADDR_0, 0);
bmi270_writeregister(dev, BMI270_REG__INIT_ADDR_1, 0);
//load array file
bmi270_write(dev, BMI270_REG__INIT_DATA, (uint8_t*)bmi270_config_file, sizeof(bmi270_config_file));
//Write init CTRL to 1 showing config loaded.
bmi270_writeregister(dev, BMI270_REG__INIT_CTRL, 1);
vTaskDelay(300);
bmi270_readregister(dev, BMI270_REG__INTERNAL_STATUS, &val);
----------------------------------
Can I change bmi270_config_file to {1,2,3,4,5,6,7,8};, load it and should I be able to read this 1-8 back as a test to see if I can write to the device? When I do it, I get the same random data, like this register is locked or something.
The INTERNAL_STATUS shows 00, not 02 which is failed to load. What is the difference in status?
Solved! Go to Solution.
10-04-2021 09:22 PM - edited 10-04-2021 09:22 PM
If so, first check any motion example - https://github.com/BoschSensortec/BMI270-Sensor-API/blob/master/examples/bmi270/any_motion_interrupt...
Then, use set_any_motion_config function. There are threshold and select x,y,z.
You can select threshold and x axis only.
Thanks,