How Can I Increase Speed to Get the Maximum I2C Bitrate?

Question from the Customer:

I am using the Promira Serial Platform with the I2C Active - Level 1 Application. Using the Control Center Serial Software, I set the bitrate to 1MHz in I2C Control menu, but when I measured the I2C frequency with an oscilloscope, I see that the actual frequency is around 800KHz, not 1MHz. Are there other settings I can use to increase the speed of the bitrate?

Response from Technical Support:

Thanks for your question! There are two ways you can accelerate the bitrate. You can use the Promira Software API and connect the Promira platform via Ethernet. Depending on the hardware version of the Promira platform, using pull-up resistors may also help increase the I2C frequency.

Using Software API Reduces GUI Latencies

GUI applications, including Control Center Serial Software, have both operating system (OS) and graphical user interface (GUI) latencies, which affect the bitrate. To bypass the GUI latencies, we recommend using Promira Software API I2C/SPI Active. This API is compatible with multiple OS (Windows, Linux, and Mac) and supports multiple languages (C, Python, Visual Basic, and C#). Software examples are provided that can be used as is or modified for your specifications. For more information, please refer to the API Documentation section of the Promira Serial Platform I2C/SPI Active User Manual.

Ethernet Connectivity Improves Speed

Latencies occur when over USB when delivering I2C or SPI data: round-trip delays occur. When the Promira platform is connected via Ethernet, the speed is increased.

When using Ethernet connectivity, you can provide power to the Promira platform via a USB 2.0 / 3.0 A-micro B cable, or an external power adapter. A 5V, 1.2A adapter is provided in the Promira Ethernet Kit. Following are instructions on how to connect the Promira platform via Ethernet.

How to Connect Promira via Ethernet

The Control Center Serial Software is used for setting up the Ethernet connection.

  1. Connect the Promira platform to the computer via the Ethernet cable and USB A-to-Micro-B cable as illustrated below.
    1. For instructions, please refer to the Software section of the Promira Serial Platform System User Manual.Promira platform to the computer via the Ethernet cable
  2. The Promira platform on Ethernet-over-USB IP (10.x.x.x) is detected on the Configure Adapter dialog window as shown below.Windows detects Promira
  3. Set the Promira IP.
    1. In the Configure Adapter dialog, connect the Promira platform with the available IP: USB over Ethernet.
  4. After connection is achieved, the port is displayed on the status bar (at the bottom of the screen) as shown below.Success of Connectivity Shown in Dialog Window
  5. Select Adapter -> Network Preferences. By default the IP Address is 192.168.11.1 and the Subnet Mask is 255.255.255.0.
  6. In the Network Preferences dialog window, configure the Promira platform network preferences.
    1. The IP Address can be any value for a peer-to-peer setting.
    2. Use an IP address does not conflict with other devices on the network.
  7. Click the Apply button.
  8. After the dialog window shows the configured IP, click the OK button.
  9. Set the IP address of the PC LAN network adapter.
    1. Choose the Ethernet adapter to which the Promira platform is connected on the system.
    2. Disable the IPv6 check box and manually assign the IP address.
  10. Verify the configurations are correct:
    1. The Red Cross mark on the bottom left corner of the network adapter (to which Promira platform is connected) icon should disappear from the screen.
    2. Click the OK button.
      Confirm the Promira IP configurations
  11. Close the settings, and then re-open the Control Center Serial Software.
    1. After disconnecting and re-connecting the Promira platform, separate ports will appear for Ethernet and Ethernet-Over-USB.
  12. Select the port with Ethernet IP.
    1. The Promira platform is now set up and ready to use over the Ethernet.
      Select the Ethernet IP Port

Pull-up Resistors and Rise-Time

Depending on the hardware version of the Promira platform, using external pull-ups may improve the speed.

Promira Hardware Versions 1.01 and 1.5

For hardware versions 1.5 and 1.01, the frequencies set is closer to the actual frequency because the pull-ups are “stronger”.

Promira Hardware Versions 1.7 and 2.1

For hardware versions 1.7 and 2.10, the internal pull-ups are 2.2K Ohms. In this case, the signal rise times are higher, which affects the clock period.

If you are using a 3.3V signal level, we recommend disabling the internal pull-up, and using an external pull-up of 500 Ohms.

  • As a master device, a Promira platform of hardware version 1.7 and above has 2.2k ohms pull-up resistors.
  • Using external 500 Ohm resistors connected in parallel may improve the speed; decreasing the rise-time of the signal affects the speed. For more information, about I2C speed limitations, please refer to the section Known I2C Limitations in the Promira Serial Platform I2C/SPI Active User Manual.

We hope this answers your question. Additional resources that you may find helpful include the following:

If you have more questions about our Total Phase products, feel free to contact us at sales@totalphase.com.