SDA stands for Serial Data Line. It is the line used for transferring data between devices on the I2C bus.
Click to reveal answer
beginner
What is the role of the SCL line in I2C communication?
SCL stands for Serial Clock Line. It provides the clock signal that synchronizes data transfer on the I2C bus.
Click to reveal answer
intermediate
Why are SDA and SCL lines open-drain/open-collector in I2C?
They are open-drain/open-collector to allow multiple devices to share the bus without conflicts. Devices can only pull the line low, and a pull-up resistor brings the line high when no device is pulling it low.
Click to reveal answer
intermediate
How does the master device use SDA and SCL to start communication on the I2C bus?
The master generates a START condition by pulling SDA low while SCL is high. This signals all devices that a communication session is beginning.
Click to reveal answer
intermediate
What happens on the I2C bus when the master sends a STOP condition?
The master releases SDA from low to high while SCL is high. This signals the end of communication and frees the bus for other devices.
Click to reveal answer
What does the SDA line do in I2C communication?
ATransfers data between devices
BProvides the clock signal
CSupplies power to devices
DResets the bus
✗ Incorrect
SDA is the Serial Data Line used to transfer data between devices on the I2C bus.
Why are pull-up resistors used on SDA and SCL lines?
ATo allow devices to pull lines low safely
BTo provide power to the devices
CTo speed up data transfer
DTo prevent devices from communicating
✗ Incorrect
Pull-up resistors ensure the lines go high when no device pulls them low, enabling safe open-drain communication.
What condition does the master generate to start communication on the I2C bus?
ASTOP condition
BSTART condition
CRESET condition
DACK condition
✗ Incorrect
The START condition is generated by pulling SDA low while SCL is high to begin communication.
Which line carries the clock signal in I2C?
ASDA
BSCL
CVCC
DGND
✗ Incorrect
SCL is the Serial Clock Line that provides the clock signal for synchronization.
What does an open-drain configuration allow on the I2C bus?
AMultiple devices to drive the line high simultaneously
BMultiple devices to safely pull the line low without conflict
COnly one device to communicate at a time
DFaster data transfer speeds
✗ Incorrect
Open-drain allows multiple devices to pull the line low safely, avoiding conflicts on the bus.
Explain the roles of SDA and SCL lines in the I2C bus architecture.
Think about how devices talk and keep time on the bus.
You got /4 concepts.
Describe how the I2C master starts and stops communication using SDA and SCL lines.
Focus on the changes in SDA line while SCL is high.
You got /4 concepts.
Practice
(1/5)
1. Which two lines are used in the I2C bus architecture for communication?
easy
A. CLK for data and DAT for clock
B. TX for data and RX for clock
C. SDA for data and SCL for clock
D. MOSI for data and MISO for clock
Solution
Step 1: Recall I2C bus lines
I2C uses two specific lines: SDA and SCL.
Step 2: Identify roles of lines
SDA carries data, and SCL carries the clock signal.
Final Answer:
SDA for data and SCL for clock -> Option C
Quick Check:
I2C lines = SDA + SCL [OK]
Hint: Remember: SDA = data, SCL = clock [OK]
Common Mistakes:
Confusing I2C lines with SPI lines
Mixing data and clock line names
Assuming more than two lines are used
2. Which of the following correctly describes the state of the SDA and SCL lines when no device is pulling them low on an I2C bus?
easy
A. SDA is high, SCL is low
B. Both lines are low
C. SDA is low, SCL is high
D. Both lines are high
Solution
Step 1: Understand line behavior on I2C bus
Lines are open-drain and pulled high by resistors when released.
Step 2: Determine line state when idle
When no device pulls lines low, both SDA and SCL remain high.
Final Answer:
Both lines are high -> Option D
Quick Check:
Idle I2C lines = high [OK]
Hint: Lines float high unless pulled low [OK]
Common Mistakes:
Assuming lines default to low
Confusing line states during communication
Ignoring pull-up resistor effect
3. Consider this snippet controlling I2C lines in embedded C:
A. Stop condition requires SCL to be high, not low
B. SDA should be low, not high for stop condition
C. Both SDA and SCL should be low for stop condition
D. No error; code correctly detects stop condition
Solution
Step 1: Recall stop condition timing
Stop condition occurs when SDA rises from low to high while SCL is high.
Step 2: Check code condition
The code checks SDA high and SCL low, which is incorrect; SCL must be high for stop.
Final Answer:
Stop condition requires SCL to be high, not low -> Option A
Quick Check:
Stop = SDA high + SCL high [OK]
Hint: Stop needs SCL high, not low [OK]
Common Mistakes:
Confusing clock line state for stop
Assuming SDA low means stop
Ignoring line state transitions
5. You want to implement a function in embedded C that waits for the I2C start condition before proceeding. Which logic correctly detects the start condition on SDA and SCL lines?
hard
A. Wait until SDA changes from low to high while SCL is low
B. Wait until SDA changes from high to low while SCL is high
C. Wait until both SDA and SCL are low simultaneously
D. Wait until SCL changes from low to high while SDA is low
Solution
Step 1: Understand start condition in I2C
Start condition is when SDA line falls from high to low while SCL line is high.
Step 2: Match logic to condition
Wait until SDA changes from high to low while SCL is high correctly waits for SDA falling edge with SCL high, matching start condition.
Final Answer:
Wait until SDA changes from high to low while SCL is high -> Option B
Quick Check:
Start = SDA high-to-low + SCL high [OK]
Hint: Start = SDA falls low while SCL high [OK]
Common Mistakes:
Waiting for SDA rising edge instead of falling
Checking SCL low instead of high
Confusing start with stop condition
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.