Dear Sir, It is my understanding that repeat start is allowed by the I2C protocol. Please see: 3.1.10 The slave address and R/W bit Data transfers follow the format shown in Figure 9. After the START condition (S), a slave address is sent. This address is seven bits long followed by an eighth bit which is a data direction bit (R/W) — a ‘zero’ indicates a transmission (WRITE), a ‘one’ indicates a request for data (READ) (refer to Figure 10). A data transfer is always terminated by a STOP condition (P) generated by the master. However, if a master still wishes to communicate on the bus, it can generate a repeated START condition (Sr) and address another slave without first generating a STOP condition. Various combinations of read/write formats are then possible within such a transfer. This section is copied from "https://www.nxp.com/docs/en/user-guide/UM10204.pdf". I think the idea of the repeat start is that the master can keep using the bus and in princip read other sensors. Here I just want to read the data 2 times to ensure that the data transfer is correct. Please let me know If my interpretation of the I2C bus protocol is incorrect. In this case, I would like to see a reference that says repeat start after a burst read is prohibited. If my interpretation of the I2C protocol is correct, then please let me know if the BME280 updates its data registre after a NACK (i.e. before the master releases the bus, but after the burst read ends). Best regards, Rune Jacobsen
... View more