I have tried adjusting the burst size. While 32, 64 and 128 seem to work 256, 512, 1024, 2048, 4096 and 8192 all fail. Is this expected? It takes >5 seconds to load when using 128 sized bursts. I need to find a way to spped this up. The SPI interface meets your set up and hold requirements.
Can you confirm that you have a system that can load this file in 15-30ms?
5s for config file is quite slow. Yes, technically 8192 should work.
However, burst write config file, it requires ca. 6.6 ms at 10 MHz SPI Interface.
How to create config file? I want to config gyro with level tigger. Is it way to do that?
Do you mean that you want to use gyro and hardware interrupt trigger?
Config file and both your reqeusts are seperate.
In terms of gyro, you can check our example, https://github.com/BoschSensortec/BMI270-Sensor-API/tree/master/examples/bmi270
And, level trigger ( assume hardware interrupt pin), please check below code.
struct bmi2_int_pin_config int_pin_config;
/* Interrupt setting */
int_pin_config.pin_type = BMI2_INT1;
int_pin_config.int_latch = BMI2_INT_NON_LATCH;
int_pin_config.pin_cfg.output_en = BMI2_INT_OUTPUT_ENABLE; // Output enabled
int_pin_config.pin_cfg.od = BMI2_INT_PUSH_PULL; // OpenDrain disabled
int_pin_config.pin_cfg.lvl = BMI2_INT_ACTIVE_LOW; // Signal Low Active
int_pin_config.pin_cfg.input_en = BMI2_INT_INPUT_DISABLE; // Input Disabled
// INT1 active high, pushpull, output enabled
rslt = bmi2_set_int_pin_config( &int_pin_config, &bmi2_dev);
I can get DRDY or ANY_MOTION to hardware interrupt pin.
I want to try get interrupt, if the sensor_data.sens_data.gyr.x > 1000.