USB Type-C: An Autonomous Port Controller with I2C and GPIO Control

February 26, 2018 by Nick Davis

In this article, we look at ON Semiconductor's FUSB303, which is a fully autonomous USB Type-C controller.

In this article, we look at ON Semiconductor's FUSB303, which is a fully autonomous USB Type-C controller.

ON Semiconductor's new FUSB303 is touted as being a fully autonomous USB Type-C controller. Recall that USB Type-C is characterized as the USB port connection itself (not to be confused with the data transfer speeds and electrical specifications that are called out in the USB 3.1 specs), and one that is poised to replace the previous USB connectors, which means not only USB Type-A and Type-B but also the micro and mini USB versions. Also, the USB Type-C connector is reversible, which means you'll no longer have to rotate the connector around, multiple times, before figuring out its correct orientation. This feature alone will surely be appreciated by countless USB users.

As described in its datasheet, the FUSB303 has been optimized for applications of up to 15 W, such as smartphones, tablets, and their numerous accessories. And given that these targeted applications are physically small, it makes sense that the FUSB303 USB controller itself is a small device: its 12-lead QFN package measures only 1.6 × 1.6 × 0.375 mm (see the image below).


Figure 1. The FUSB303 comes in a small 12-lead QFN package (1.6 × 1.6 × 0.375 mm), from the datasheet.

What Makes It Autonomous?

The FUSB303 is described as being fully "autonomous" due to its ability to automatically select between serving as a source port, a sink port, or a DRP (dual role port), as well as its support for debug functionality and audio accessories. When deciding which role to implement, this USB Type-C controller uses CC (configuration channel) logic-detection pins for making its decision.

The block diagram below conveys some of the device’s internal functionality.


Figure 2. FUSB303 block diagram, from the datasheet.

Your Choice: Use Either I2C or GPIO

The FUSB303 supports I2C- and GPIO-based interfaces (see the figure below). Fortunately, a combination of GPIO and I2C can't be utilized...yes, I said fortunately because ON Semi has simplified and kept the IC package small by allowing the I2C pins to operate as dual-function pins. In fact, five of the twelve pins on this device are dual-function pins:

  • Pin 3: PORT/DEBUG_N: A 3-state input (high, low, or float) to set the port's role (sink, source, DRP), or used for debug accessory detection.
  • Pin 5: ADDR/ORIENT: First it’s a 3-state input to set the I2C mode and address, then it’s an output related to orientation-detection functionality.
  • Pin 6: INT_N/OUT3: The interrupt for I2C, or a GPIO open-drain output (OUT3)
  • Pin 7: SDA/OUT1: The I2C's serial data line, or a GPIO open-drain output (OUT1).
  • Pin 8: SCL/OUT2: The I2C's serial clock line, or a GPIO open-drain output (OUT2).


Figure 3. The FUSB303 allows you to use an I2C or GPIO interface. Diagram taken from the datasheet.


You can see from these diagrams that the FUSB303 provides much of the functionality that is needed to allow a processor-based device to successfully communicate via a USB Type-C connection. And apparently it is designed to work together with two other ON Semi parts, namely, the FUSB340 (a 10 Gbps 2:1 data switch) and the FAN54511 (a 3.2A switch-mode battery charger).  

High-Voltage Tolerance

The FUSB303 can tolerate up to 28V on the CC1, CC2, and VBUS pins. Presumably this provides adequate protection in most of the intended applications. If for some reason you need the chip to survive voltages greater than 28V, you can use a 900kΩ external resistor in conjunction with a TVS. This is the datasheet’s recommendation, though if you really expect that the device will be subjected to voltages above 28V, it would probably be a good idea to contact ON Semi and ask for some implementation details.

Dead Battery Support

The datasheet's Description section states that the FUSB303 offers “dead battery support” as defined in the USB Type-C specifications. The datasheet has a dedicated Dead Battery section, though the section consists of one rather short paragraph, and furthermore this paragraph doesn’t seem particularly clear. If you’re not already an expert on USB Type-C “dead battery” functionality, the description in the datasheet probably won’t give you enough information to thoroughly evaluate this feature.


Have you had a chance to use this new USB Type-C controller? If so, leave a comment and tell us about your experiences.