I2C SPI USB CAN eSPI Cable Testing View All Videos Quick Start Guides Software Downloads App Notes White Papers User Manuals Knowledge Base Sales Support About Us
Products Blog Sales Support Contact Search
Which Serial Bus Is Driving Your Chip – I2C or SPI?
Rena

In the 1980s, serial bus protocols were developed and put to use: Philips developed I2C; Motorola developed SPI. With the continuous advancement and development of chip design and fabrication, more intelligence can now be packed into small packages sized in millimeters than was possible on an entire circuit board.  One of the advancements is using the same chip for either I2C or SPI serial bus communication. This feature applies to many microcontrollers, which are used to interface with peripherals – a capability that is usually part of the hardware design.

For other devices, with firmware embedded in chips, it is easy to select which functions to utilize – no cutting traces or soldering wires on the board, no blowing fuses in the chip. For example, with the simple action of power-up or reset, mCube’s MC3630 accelerometer (slave device) can be set up to interface on either the I2C or the SPI serial bus (but not both).

There are other ways to choose or expand. NXP’s SC18IS602B is a "bridge” that provides an interface from one bus protocol to another: it enables a microcontroller to communicate directly to SPI devices through the built-in I2C bus of the microcontroller. This makes it easier to add in more devices to the system design.

If you look through forums on the Internet, you will find many other options and ideas.

How Well Do Your Tools Support Working with I2C and SPI Bus Devices?

There are probably as many reasons to choose I2C as SPI: cost, board space, speed, how many slave devices, addressing capability, available lines, etc.   Different projects may have different requirements making it necessary to be equipped to use either protocol.

Wouldn’t it be easy if one hardware tool could work with both SPI and I2C?  Then you would only need to pay for one tool and only learn one tool interface.  Total Phase has two products that make this dream a reality.

The Aardvark I2C/SPI Host Adapter can be used for either SPI or I2C and provides the ability to emulate as a master or a slave.  Total Phase provides the Control Center Serial Software and Flash Center Software for quick start up as well as provides the Aardvark Software API for more customized setups and applications. Some of the features of the Aardvark adapter:

  • I2C master/slave, up to 800 kHz
  • SPI master up to 8 MHz; SPI slave up to 4 MHz
  • Up to 6 GPIOs

Accessories are available to connect to the signals on the board, such as the 10-Pin Grabber Cable and the 10-Pin Split Cable. Other types and sizes of cables are available. For variable signal voltage levels, you can add the Level Shifter Board.

For built-in level shifting, as well handling higher speeds and more complex designs, the Promira Serial Platform works with either I2C or SPI. The Promira platform can be customized to your project requirements selecting applications with various capabilities allowing you to only purchase the functionality that you need.  If your requirements change in the future, you can always add additional applications to your Promira hardware.  The Promira platform offers the same free software options as the Aardvark adapter including. Control Center Serial and Flash Center Software as well as  the Promira API Software. Some of the features of the Promira platform:

  • I2C master/slave, up to 3.4 MHz
  • SPI master up to 80 MHz; SPI slave up to 20 MHz
  • Support for Dual and Quad SPI
  • Up to 16 GPIOs
  • Configure signal voltage levels from 0.9V – 3.45V

Accessories are available to connect to the signals on the board, such as the 34-Pin Grabber Cable and the 34-Pin Split Cable. Other types and sizes of cables are available.

Have any questions or ideas that you want to explore? Email us at sales@totalphase.com, or if you already own one of our devices and have a technical question, please submit a request for technical support.