I2C read时序英文
时间: 2024-08-15 11:04:17 浏览: 29
I2C (Inter-Integrated Circuit) is a popular communication protocol used for connecting low-speed devices together on a microcontroller bus. When reading from an I2C device using the master-slave architecture, there's a specific sequence of timing events that must be followed:
1. **Start Condition**: A repeated start signal (SRAW) is initiated by pulling SDA line low while keeping SCL high. This initiates a new transaction.
2. **Addressing and R/W Bit**: Master sends the slave address (7-bit or 10-bit), followed by the read bit (R) to indicate a read operation. The data line (SDA) goes low after the last addressed bit.
3. **ACK/NACK**: If the addressed device acknowledges (ACK) with a high level on SDA immediately after receiving the address, it's ready for data transfer.
4. **Data Transmission**: Master sends the number of bytes to read as a stop condition command, usually one byte at a time. During this phase, SDA line alternates between high (data not being transferred) and low (transmitting data).
5. **Repeated Start** (for multi-byte transactions): After sending the final byte, the master performs another SRAW to continue reading without resetting the clock.
6. **Data Reception**: The slave sends the requested data back, and the master receives it over SDA while SCL remains high.
7. **Stop Condition**: Once all the data is received, the master pulls SDA high and keeps SCL low for a short duration to end the transaction.
8. **Slave Acknowledges Stop**: The slave pulls SDA low again, acknowledging the end of the data transfer.
阅读全文