SC16IS750 I2C/SPI to UART Bridge Module


This module is designed to enable I2C/SPI to UART conversion. It works in I2C/SPI slave mode and interfaces with devices working in I2C/SPI master mode. There are also 4 extra GPIOs for IO expansion. NXP SC16IS750 is used as the key component on this module. Flow control and modem signals are also supported. This module is useful when extra UART interface is needed. Due to the multi-slave characteristics of I2C and SPI, many UART interfaces could be added to the system at the same time.


  • LED indicators for the Tx, Rx, SCL, and SDA activities
  • 4 extra software programmable GPIOs for IO expansion
  • Up to 4MHz SPI Clock
  • Up to 400 kHz I2C Clock
  • 4-pin interlock connectors onboard
  • Arduino IDE compatible library
  • All pins are 5V tolerant (after power supply applied)
  • 5V TX signal
  • Compact size

Pin Configuration

  • VCC: 5V power supply (Power)
  • SCL: I2C Bus Clock (Input)
  • SDA: I2C Bus Data (Open drain)
  • IRQ: SC16IS750 IRQ (Open drain)
  • TX: UART TX Out (Push-pull)
  • RX: UART RX In (Input)
  • IO0: GPIO0
  • IO1: GPIO1
  • IO2: GPIO2
  • IO3: GPIO3
  • GND: Common Ground (Power)

Operating Mode Selection


As shown in the above picture, marked by the red box, the mode selection resistor is soldered to the upper two pads to selected I2C mode as the factory default configuration.

To select SPI mode, the resistor should be soldered to the lower two pads. The two resistors of the I2C address selection resistor should be removed, too. If you are using Arduino Duemilanove, you should also remove the SCL pull-up resistor(R7, see assembly picture below), which locates near the silkscreen marking “A0”.

The pinout of the I2C interface is marked on both the front and the back of the board whereas the pinout of the SPI interface is marked only on the back of the board. As shown in the following picture.


I2C Address Selection

In I2C mode, the address of the module can be set to any value between 0x90-0xAE (8-bit I2C Address, odd address for reading and even address for writing). The address is set by the two resistors marked by the red box shown in the following picture.


The I2C address table is on the back of the module. The address selection is made by the two resistors as shown in the above picture. By default, the A1 = A and A0 = D. This combination gives an address of 0x96 according to the address table printed on the back of the module. (0x96 for write, 0x97 for read.)

Install the Library and Run the example sketch

  1. Download the and unzip the file to the Arduino library directory. The Arduino example directory is the folder examples under Arduino program root folder. e.g. C:\Program Files (x86)\Arduino\examples
  2. Start the Arduino IDE.
  3. Select the example sketch from File->Examples->UARTBRIDGE->SELFTEST.
  4. Short the TX and RX pins together.
  5. Upload the sketch.
  6. All four LEDs should be ON in a 200ms interval.

The library provides a set of Serial communication functions similar to that of the original Arduino Serial library. Basically, a class named SC16IS750 is used instead of the original Serial.

To use this library, an object should be created by referencing the class SC16IS750.

To set the baudrate

To send a byte 0x55 over the UART

To read a byte from the UART

To set gpio0 as an input pin

To set gpio0 as an output pin

To set gpio0 to HIGH

To read from gpio0

Other methods like peek(), flush(), available(), etc., are also supported by the library.

Assembly Drawing





6 thoughts on “SC16IS750 I2C/SPI to UART Bridge Module

  1. Hi

    I was wondering if it would be possible for you to send me a copy the library for this part?



  2. Hi Kim,

    we have order some SC16IS750 I2C/SPI to UART Bridge Module.
    so we need a schematic manual to combine it with ouer device.

    With best regards


Leave a Reply

Your email address will not be published. Required fields are marked *

nine − = 7