Hello, Regarding SPI I/F requirement, it means we guarantee the performance as long as you keep the our spec. If you use out of our spec, it might have some problem. In terms of burst read operation, you have to read at least 32 bytes. 32, 64 , 128... because we can only access the multiple of 32 bytes. config_size = sizeof(bmi2xx_config_file); file_count = 0; while (config_size > 0) { Wire.beginTransmission(BMI270_ADDR); Wire.write(INIT_ADDR_0); Wire.write(0x00); Wire.write(file_count); Wire.endTransmission(); byte reg_data[32]; /* dev_addr: I2C device address. reg_addr: Starting address for writing the data. reg_data: Data to be written. count: Number of bytes to write */ // Begin I2C communication with provided I2C address Wire.beginTransmission(BMI270_ADDR); Wire.write(INIT_DATA); // Done writting, end the transmission Wire.endTransmission(); // Requests the required number of bytes from the sensor Wire.requestFrom((int)BMI270_ADDR, (int)32); // Reads the requested number of bytes into the provided array uint16_t i = 0; for (i = 0; (i < 32 ) && Wire.available(); i++) { reg_data[i] = Wire.read(); // This is for the modern Wire library Serial.print(reg_data[i]); Serial.print(" "); } Serial.println("\t"); filepos += 32; file_count += 1; config_size -= 32; delay(1); }
... View more