Tutorials

Learn More

I2C supports several speed modes. The selected mode must be supported by the controller, the target devices, and the electrical design of the bus.

The speed mode only defines the maximum bit rate. A controller can usually run slower than the maximum value, and the actual usable speed depends on pull-up resistors, bus capacitance, trace length, level shifters, connector loading, and device timing limits.

Mode Maximum bit rate Notes
Standard mode 100 kbit/s Common for simple low-speed devices
Fast mode 400 kbit/s Common in many embedded systems
Fast mode plus 1 Mbit/s Higher speed, stronger bus drive, and tighter timing
High-speed mode 3.4 Mbit/s Uses a special high-speed transfer sequence
Ultra Fast-mode 5 Mbit/s Unidirectional mode, not used like normal bidirectional I2C

Most simple I2C systems use Standard mode or Fast mode. Faster modes are useful when more data must be transferred, but they require more careful electrical design. A bus should normally be configured for the slowest device connected to it.

Standard mode

Standard mode supports transfer rates up to 100 kbit/s. It is suitable for simple peripherals such as slow sensors, RTCs, temperature sensors, GPIO expanders, and configuration devices.

This mode is forgiving because the clock period is longer. It is a good choice when the bus has several devices, longer PCB traces, level translators, or connectors. If the amount of data is small, Standard mode is often fast enough.

Fast Mode

Fast mode supports transfer rates up to 400 kbit/s. It is one of the most commonly used modes in microcontroller-based systems because many sensors, EEPROMs, ADCs, and display controllers support it.

Fast mode improves transfer time without making the board design too difficult. It is commonly used when firmware needs to read sensor data periodically or update device registers more often.

Fast Mode Plus

Fast mode plus supports transfer rates up to 1 Mbit/s. It allows faster communication, but devices must be rated for this mode and the bus must meet tighter rise-time and fall-time requirements.

This mode is useful when a system transfers larger blocks of data, updates many registers, or communicates with devices that need faster service. Pull-up resistor selection becomes more important because the bus must rise fast enough while still keeping LOW-level current within device limits.

High Speed Mode

High-speed mode supports transfer rates up to 3.4 Mbit/s. It begins with a controller code transmitted at a lower speed, then switches to high-speed transfer for the actual data phase.

High-speed mode is less common than Standard mode and Fast mode. It requires devices that explicitly support high-speed operation, and the bus layout must be controlled carefully. It is usually selected only when I2C is required but the data rate of Fast mode plus is not enough.

Ultra Fast-mode

Ultra Fast-mode supports up to 5 Mbit/s, but it is unidirectional and does not use the usual bidirectional ACK behavior. Because of that, it is not a drop-in replacement for normal I2C communication.

It is mainly useful for write-only style transfers where the controller sends data and does not need normal target acknowledgments. It should be used only when both the controller and target datasheets clearly support it.

Mode selection guidelines

Choose the mode based on the slowest device and the physical bus design. If all devices support Fast mode but one device supports only Standard mode, the controller should use Standard mode when communicating with that device.

For short PCB traces and a small number of devices, Fast mode is usually practical. For longer traces, many devices, weak pull-ups, or level shifters, a lower speed may be more reliable.

When increasing I2C speed, check:

  • device mode support
  • pull-up resistor value
  • total bus capacitance
  • rise time and fall time
  • clock stretching support
  • level shifter compatibility

In practice, a stable slower I2C bus is better than an unreliable faster one. The best mode is the fastest speed that all devices and the board design can support with timing margin.