I2C Timing Calculator
Use this I2C Timing Calculator to calculate SCL clock period, HIGH and LOW timing, START and STOP timing margins, data setup margin, effective duty cycle and estimated I2C transaction duration for Standard-mode, Fast-mode and Fast-mode Plus.
-
What Is an I2C Timing Calculator?
An I2C Timing Calculator evaluates the timing of the SCL clock and associated SDA setup conditions against the requirements of a selected I2C operating mode. It is useful when configuring microcontroller timing registers, validating logic-analyzer measurements or checking whether a generated clock has enough HIGH and LOW time.
Unlike a simple frequency calculator, I2C timing depends on several separate limits. A clock can have the correct average frequency while still violating the minimum HIGH or LOW duration if its duty cycle is poorly chosen.
I2C SCL Period Formula
For a 400 kHz clock:
I2C SCL HIGH and LOW Time
If the clock spends a fraction D of the period LOW:
For a 400 kHz clock with 60% LOW duty:
Both values exceed the Fast-mode minima of 1.3 µs LOW and 0.6 µs HIGH.
I2C Standard, Fast and Fast-mode Plus Timing
| Parameter | Standard-mode | Fast-mode | Fast-mode Plus |
|---|---|---|---|
| Maximum SCL Frequency | 100 kHz | 400 kHz | 1 MHz |
| Minimum tLOW | 4.7 µs | 1.3 µs | 0.5 µs |
| Minimum tHIGH | 4.0 µs | 0.6 µs | 0.26 µs |
| START Hold tHD;STA | 4.0 µs | 0.6 µs | 0.26 µs |
| Repeated START Setup tSU;STA | 4.7 µs | 0.6 µs | 0.26 µs |
| STOP Setup tSU;STO | 4.0 µs | 0.6 µs | 0.26 µs |
| Data Setup tSU;DAT | 250 ns | 100 ns | 50 ns |
| Maximum Rise Time | 1000 ns | 300 ns | 120 ns |
These limits are taken from the published I2C timing characteristics for Standard-, Fast- and Fast-mode Plus devices. :contentReference[oaicite:1]{index=1}
Why 50% Duty Cycle Is Not Always Ideal
A mathematically symmetric clock uses equal HIGH and LOW periods. I2C timing requirements are not symmetrical, however.
At 400 kHz, a 50% duty cycle gives:
The HIGH time is comfortably above the Fast-mode minimum, but the LOW time is slightly below the required 1.3 µs. A somewhat longer LOW phase is therefore appropriate when operating close to 400 kHz.
I2C Data Setup Time
Data setup time specifies how long SDA must already be stable before the relevant SCL sampling edge.
The calculator compares the entered setup time directly with the selected mode’s minimum. :contentReference[oaicite:2]{index=2}
I2C Rise and Fall Time
SDA and SCL do not switch instantaneously. Rise time is especially important because the open-drain lines rely on pull-up resistors to charge bus capacitance.
The I2C specification defines maximum edge times that depend on operating mode. The calculator checks the entered rise time against the corresponding mode limit.
How Many Clock Pulses Does an I2C Byte Use?
Each eight-bit data byte is followed by an ACK or NACK clock. Therefore one normal I2C byte consumes nine SCL clock pulses:
I2C Transfer Time Formula
A useful first-order transfer-time estimate is:
START and STOP are bus conditions rather than additional nine-bit characters, so this calculator reports the clocked-data time separately from device processing and clock stretching.
Example: 17 Bytes at 400 kHz
Suppose one address byte plus sixteen data bytes are transferred:
This is the ideal clocked transaction duration before adding clock stretching, software delays or slave processing time.
I2C Clock Stretching
An I2C target can hold SCL LOW to delay the controller when it needs additional time. Clock stretching therefore increases the actual LOW period and total transaction duration.
Because the stretching duration depends on the target and the individual transaction, this calculator does not invent a stretch time. Add measured or datasheet-specific delays separately when estimating worst-case transaction latency.
I2C START and Repeated START Timing
I2C defines minimum setup and hold timing around START and repeated START conditions. For Fast-mode, both repeated-START setup and START hold have a minimum of 0.6 µs; Fast-mode Plus uses 0.26 µs. Standard-mode uses longer limits. :contentReference[oaicite:3]{index=3}
These timing intervals matter especially when configuring an I2C peripheral from low-level timing registers rather than relying on a vendor library.
I2C STOP Timing
The STOP setup time is the interval required before SDA transitions HIGH while SCL is HIGH to terminate the transfer.
The specified minimum is 4.0 µs in Standard-mode, 0.6 µs in Fast-mode and 0.26 µs in Fast-mode Plus. :contentReference[oaicite:4]{index=4}
I2C Timing vs I2C Frequency
Frequency
Describes the average number of SCL clock cycles generated per second.
Timing
Describes the individual HIGH, LOW, edge, setup and hold intervals inside those cycles.
A bus can therefore have an acceptable average clock frequency but still fail one of the individual timing requirements.
Common I2C Timing Mistakes
Checking Frequency Only
A compliant SCL frequency does not guarantee compliant HIGH and LOW timing.
Assuming 50% Duty Cycle
Near maximum bus speed, equal HIGH and LOW times may violate the longer LOW minimum.
Ignoring Rise Time
Slow pull-up edges can violate timing even if the controller’s internal divider is correct.
Forgetting ACK Clock
Each transferred byte normally consumes nine SCL clocks, not eight.
Ignoring Clock Stretching
A target holding SCL LOW increases real transaction time beyond the nominal calculation.
Mixing Timing Modes
A system operating at Standard-mode speed may still need to meet the applicable timing requirements of the devices involved.
I2C Timing Calculator FAQs
What is the SCL period at 400 kHz?
What is the minimum I2C LOW time at 400 kHz Fast-mode?
What is the minimum I2C HIGH time at 400 kHz?
What is the minimum LOW time for 100 kHz Standard-mode?
What is the minimum HIGH time for Standard-mode?
What are the minimum LOW and HIGH times for Fast-mode Plus?
How many clock pulses does one I2C byte require?
How do I calculate I2C transfer time?
Does START use another nine clocks?
Why can 50% duty cycle fail at 400 kHz?
What is the Fast-mode data setup time?
What is the Fast-mode Plus data setup time?
Does clock stretching change transfer time?
Does this calculator calculate pull-up resistors?
Can a 100 kHz bus use Fast-mode devices?
Calculate I2C Clock and Transaction Timing
Enter SCL frequency, duty cycle, edge timing and transfer size to calculate clock period, HIGH and LOW intervals, timing margins and theoretical I2C transaction duration.