SCL I2C Timing Utility

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.

✓ SCL High Time ✓ SCL Low Time ✓ START / STOP Timing ✓ Data Setup ✓ Transfer Time
I²C
Calculate I2C Timing
● Ready
Preset timing limits use common I2C specification values.
Enter the actual clock frequency you intend to generate.
Percentage of the clock period spent LOW.
Measured or estimated rise time.
Measured or estimated fall time.
Time SDA is stable before the sampling clock edge.
Payload bytes transferred after the address phase.
Usually one address byte for 7-bit addressing.
Optional command, register-address, PEC or other bytes.
Number of START or repeated START events to include.
Timing model: The calculator divides the selected SCL period according to the entered LOW duty percentage, then compares the resulting HIGH and LOW durations with the timing minima for the selected I2C mode. Rise/fall limits and data setup timing are checked separately. Clock stretching is not included in the transfer-time estimate.
I2C Timing Result Calculated
Calculated SCL Period
SCL Frequency
SCL Period
SCL LOW Time
LOW Minimum
SCL HIGH Time
HIGH Minimum
Rise Time
Rise Limit
Data Setup
Setup Minimum
Clock Bits
Transfer Time
Timing Check Breakdown -

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

SCL Period = 1 / SCL Frequency

For a 400 kHz clock:

1 / 400,000 = 2.5 µs

I2C SCL HIGH and LOW Time

If the clock spends a fraction D of the period LOW:

tLOW = Period × D tHIGH = Period × (1 – D)

For a 400 kHz clock with 60% LOW duty:

Period = 2.5 µs tLOW = 2.5 × 0.60 = 1.5 µs tHIGH = 2.5 × 0.40 = 1.0 µs

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:

Period = 2.5 µs LOW = 1.25 µs HIGH = 1.25 µs

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.

Standard-mode: 250 ns minimum Fast-mode: 100 ns minimum Fast-mode Plus: 50 ns minimum

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.

Use the separate pull-up calculator when you need to determine the resistor and RC rise-time relationship. This page focuses on timing compliance once the edge times are known.

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:

8 data bits + 1 ACK/NACK bit = 9 SCL clocks per byte

I2C Transfer Time Formula

A useful first-order transfer-time estimate is:

Clock Bits = Total Bytes × 9 Transfer Time = Clock Bits / SCL Frequency

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:

Total bytes = 1 address + 16 data = 17 bytes Clock bits = 17 × 9 = 153 clocks Transfer time = 153 / 400000 = 382.5 µs

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?
The period is 1 / 400000 = 2.5 microseconds.
What is the minimum I2C LOW time at 400 kHz Fast-mode?
Fast-mode requires at least 1.3 microseconds of SCL LOW time. :contentReference[oaicite:5]{index=5}
What is the minimum I2C HIGH time at 400 kHz?
Fast-mode requires a minimum SCL HIGH duration of 0.6 microseconds. :contentReference[oaicite:6]{index=6}
What is the minimum LOW time for 100 kHz Standard-mode?
The minimum Standard-mode LOW period is 4.7 microseconds. :contentReference[oaicite:7]{index=7}
What is the minimum HIGH time for Standard-mode?
Standard-mode requires at least 4.0 microseconds of SCL HIGH time. :contentReference[oaicite:8]{index=8}
What are the minimum LOW and HIGH times for Fast-mode Plus?
Fast-mode Plus uses a minimum LOW time of 0.5 microseconds and minimum HIGH time of 0.26 microseconds. :contentReference[oaicite:9]{index=9}
How many clock pulses does one I2C byte require?
A normal byte uses eight data clocks plus one ACK or NACK clock, for nine SCL pulses.
How do I calculate I2C transfer time?
Multiply the number of transferred bytes by nine clock pulses per byte, then divide by the actual SCL frequency for a basic clocked-transfer estimate.
Does START use another nine clocks?
No. START and STOP are signal conditions, not separate data characters.
Why can 50% duty cycle fail at 400 kHz?
A 400 kHz period is 2.5 microseconds, so 50% gives only 1.25 microseconds LOW, which is slightly shorter than the Fast-mode minimum of 1.3 microseconds.
What is the Fast-mode data setup time?
The minimum Fast-mode data setup time is 100 nanoseconds. :contentReference[oaicite:10]{index=10}
What is the Fast-mode Plus data setup time?
Fast-mode Plus specifies a minimum data setup time of 50 nanoseconds. :contentReference[oaicite:11]{index=11}
Does clock stretching change transfer time?
Yes. A device can hold SCL LOW longer than the nominal controller timing, increasing the real transaction duration.
Does this calculator calculate pull-up resistors?
No. This page focuses on timing. Pull-up resistance and RC rise time are handled by the dedicated I2C pull-up calculation.
Can a 100 kHz bus use Fast-mode devices?
Fast-mode devices can participate at lower bus rates, but the relevant timing requirements still need to be satisfied. NXP notes specific Standard-mode data setup requirements when a Fast-mode device is used in a Standard-mode system. :contentReference[oaicite:12]{index=12}

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.

Scroll to Top