I'm playing with bmx160 and right now I'm able to read data from gyro. As a next step I wanted to use FOC to calibrate gyro values (when sensor is on the table shows me realy high values, I guess because sometimes they getting down below 0). So I did following:
1. Enabled foc for gyro 0x69 to 0b01000000
2. Send CMD start foc 0x7E with 0x03
and no matter how much I wait the status register has always foc_rdy = 0 (11011000)
This bit is always set to 0, before or after foc, doesnt matter. The only bit which is changing in status register is nvm_rdy bit.
Before starting foc I set gyro ODR and power mode to normal and I wait for 80ms to complete entering normal power mode. Did I forget about smth?
Thanks for help
Solved! Go to Solution.
Thanks for your inquiry.
Please see the attached "How to perform BMI160 inline calibration ver1.1.pdf" to see if you can do BMI160 gyro FOC successfully.
Thanks for quick response!
I have gravity sensor SEN0252 connected to NUCLEO-G431KB so I guess there is no way to use the application from the pdf?
The sample code in the PDF file is low level pseudo code. You can use C code in NUCLEO-G431KB to configure BMX160 on gravity sensor SEN0252 for FOC of accel and gyro.
Ok I tested this pseudo code and still foc_rdy flag is never 1. I understand that this bit should be 1 before triggering FOC, 0 during calibration and 1 after FOC is completed, right?