Embedded Systems & Firmware

In I2C, how does the receiver of a data byte acknowledge it?

  1. AThe receiver holds a separate line at 1
  2. BDuring the ninth clock, the receiver pulls SDA low (ACK)
  3. CThe receiver echoes the same byte back
Show answer and explanation

Answer: B. During the ninth clock, the receiver pulls SDA low (ACK)

In I2C, on the ninth clock after the 8 data bits, the receiver acknowledges by pulling SDA low (ACK). If no one pulls it low, SDA stays at 1 through the pull-up, which is a NACK. If no ACK follows an address, the device may be missing, the wiring broken or the address wrong, which provides a clue when troubleshooting.

  • A. I2C has no separate acknowledge line.
  • B. Correct. Not pulling it low is a NACK.
  • C. The byte is not echoed back.
Practice this topic Back to topic

More Embedded Systems & Firmware questions

  1. You want to connect two identical I2C temperature sensors to the same I2C bus, but both have the same address. Which is a correct solution?
  2. Which comparison of UART, SPI and I2C is correct?
  3. What is the difference between polling and interrupts as ways to learn a peripheral's status?
  4. Which describes the "super loop" structure often seen in microcontroller programs without an OS?
  5. What is the main purpose of using an RTOS (real-time operating system) in embedded devices?