

The SC16IS750, manufactured by NXP Semiconductors, is a high-performance I2C/SPI to UART bridge. This versatile component enables seamless serial communication between microcontrollers and other devices. It features a built-in 64-byte FIFO buffer for both transmit and receive operations, supports a wide range of baud rates, and can be configured for either I2C or SPI communication protocols.








The SC16IS750 is designed to provide robust and flexible serial communication. Below are its key technical details:
| Parameter | Value |
|---|---|
| Supply Voltage (VDD) | 2.5 V to 3.3 V |
| I/O Voltage Range | 1.8 V to 3.3 V |
| Communication Protocols | I2C, SPI |
| UART Baud Rate | Up to 5 Mbps |
| FIFO Buffer Size | 64 bytes (TX and RX each) |
| Operating Temperature | -40°C to +85°C |
| Package Type | HVQFN24, TSSOP28 |
The SC16IS750 is available in multiple package types. Below is the pin configuration for the TSSOP28 package:
| Pin Number | Pin Name | Description |
|---|---|---|
| 1 | A0 | I2C address selection or SPI chip select |
| 2 | A1 | I2C address selection |
| 3 | A2 | I2C address selection |
| 4 | RESET | Active-low reset input |
| 5 | XTAL1 | Crystal oscillator input |
| 6 | XTAL2 | Crystal oscillator output |
| 7 | VSS | Ground |
| 8 | TXD | UART transmit data |
| 9 | RXD | UART receive data |
| 10 | RTS | UART request to send |
| 11 | CTS | UART clear to send |
| 12 | GPIO0 | General-purpose I/O |
| 13 | GPIO1 | General-purpose I/O |
| 14 | GPIO2 | General-purpose I/O |
| 15 | GPIO3 | General-purpose I/O |
| 16 | VDD | Power supply |
| 17 | SCL/SCLK | I2C clock or SPI clock |
| 18 | SDA/MOSI | I2C data or SPI master out/slave in |
| 19 | IRQ | Interrupt request output |
| 20 | NC | No connection |
| 21 | NC | No connection |
| 22 | NC | No connection |
| 23 | NC | No connection |
| 24 | NC | No connection |
| 25 | NC | No connection |
| 26 | NC | No connection |
| 27 | NC | No connection |
| 28 | NC | No connection |
Below is an example Arduino sketch to communicate with the SC16IS750 over I2C:
#include <Wire.h> // Include the Wire library for I2C communication
#define SC16IS750_ADDR 0x48 // Replace with the actual I2C address of the SC16IS750
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Configure SC16IS750 (example: set baud rate to 9600)
Wire.beginTransmission(SC16IS750_ADDR);
Wire.write(0x03); // LCR register address
Wire.write(0x80); // Enable access to baud rate registers
Wire.endTransmission();
Wire.beginTransmission(SC16IS750_ADDR);
Wire.write(0x00); // DLL register address
Wire.write(0x60); // Set baud rate divisor (9600 baud)
Wire.endTransmission();
Wire.beginTransmission(SC16IS750_ADDR);
Wire.write(0x01); // DLM register address
Wire.write(0x00); // Set baud rate divisor (9600 baud)
Wire.endTransmission();
Wire.beginTransmission(SC16IS750_ADDR);
Wire.write(0x03); // LCR register address
Wire.write(0x03); // 8 data bits, no parity, 1 stop bit
Wire.endTransmission();
Serial.println("SC16IS750 configured successfully!");
}
void loop() {
// Example: Send data to SC16IS750
Wire.beginTransmission(SC16IS750_ADDR);
Wire.write(0x00); // THR register address
Wire.write("Hello, SC16IS750!"); // Send a string
Wire.endTransmission();
delay(1000); // Wait for 1 second
}
No Communication with the SC16IS750:
Data Loss or Corruption:
Interrupts Not Triggering:
Q: Can the SC16IS750 operate in both I2C and SPI modes simultaneously?
A: No, the SC16IS750 can operate in either I2C or SPI mode, but not both simultaneously. The mode is determined by the hardware connections.
Q: What is the maximum UART baud rate supported?
A: The SC16IS750 supports UART baud rates up to 5 Mbps.
Q: How do I reset the SC16IS750?
A: Use the RESET pin to perform a hardware reset or write to the appropriate register for a software reset.
Q: Can I use the GPIO pins for custom functions?
A: Yes, the GPIO pins can be configured as general-purpose inputs or outputs.