SLLSEO5C October 2015 – May 2017 TUSB322I
PRODUCTION DATA.
The USB Type-C ecosystem operates around a small form factor connector and cable that is flippable and reversible. Due to the nature of the connector, a scheme is required to determine the connector orientation. Additional schemes are required to determine when a USB port is attached and the acting role of the USB port (DFP, UFP, DRP), as well as to communicate Type-C current capabilities. These schemes are implemented over the CC pins according to the USB Type-C specifications. The TUSB322I device provides Configuration Channel (CC) logic for determining USB port attach and detach, role detection, cable orientation, and Type-C current mode. The TUSB322I device also contains several features such as VCONN sourcing, USB3.1 mux direction control, mode configuration, and low standby current, all of which make the TUSB322I device ideal for source or sinks in USB2.0 or USB3.1 applications.
Type-C Specification 1.1 defines several cables, plugs, and receptacles to be used to attach ports. The TUSB322I device supports all cables, receptacles, and plugs. The TUSB322I device does not support any USB feature which requires USB Power Delivery communications over CC lines, such as e-marking or alternate mode.
Below is list of Type-C receptacles and plugs supported by the TUSB322I device:
Below is a list of Type-C cables types supported by the TUSB322I device:
The TUSB322I device supports legacy cable adapters as defined by the Type-C Specification. The cable adapter must correspond to the mode configuration of the TUSB322I device.
The TUSB322I device supports the attaching and detaching of a direct-connect device.
Additionally, the TUSB322I device supports audio adapters for audio accessory mode, including:
The TUSB322I default operation is dual-role port (DRP). The TUSB322I will always default to DRP operation anytime EN_N is asserted from high to low or I2C_SOFT_RESET bit is set. But the TUSB322I can be configured as DFP-only or UFP-only through changing the default state of the MODE_SELECT register. DFP-only and UFP-only mode is not available in GPIO mode. Table 1 lists the supported features in each mode:
SUPPORTED FEATURES | DFP-Only | UFP-Only | DFP |
---|---|---|---|
Port attach and detach | Yes | Yes | Yes |
Cable orientation (through I2C) | Yes | Yes | Yes |
Cable orientation through DIR pin | Yes | Yes | Yes |
Current advertisement | Yes | — | Yes (DFP) |
Current detection | — | Yes | Yes (UFP) |
Accessory modes (audio and debug) | Yes | Yes | Yes |
Active cable detection | Yes | — | Yes (DFP) |
Try.SRC | — | — | Yes (DFP) |
Try.SNK | — | — | Yes (UFP) |
VCONN | Yes | — | Yes (DFP) |
I2C / GPIO | Yes | Yes | Yes |
Legacy cables | Yes | Yes | Yes |
VBUS detection | — | Yes | Yes (UFP) |
The TUSB322I device can be configured as a DFP-only device by changing the MODE_SELECT register default setting. In DFP mode, the TUSB322I device constantly presents Rps on both CC. In DFP mode, the TUSB322I device initially advertises default USB Type-C current. The Type-C current can be adjusted through I2C if the system is required to increase the amount advertised. The TUSB322I device adjusts the Rps to match the desired Type-C current advertisement. As a DFP, the TUSB322I monitors the voltage level on CC pins looking for the Rd termination of a UFP. When a UFP is detected and TUSB322I is in the Attached.SRC state, the TUSB322I will supply VCONN on the CC pin that has Ra.
The following list describes the steps for enabling DFP-only.
1. Write a 1'b1 to DISABLE_TERM register (address 0x0A bit 0)
2. Write a 2'b10 to MODE_SELECT register (address 0x0A bits 5:4)
3. Write a 1'b0 to DISABLE_TERM register (address 0x0A bit 0)
When configured as a DFP, the TUSB322I can operate with older USB Type-C 1.0 devices except for a USB Type-C 1.0 DRP device. The TUSB322I cannot operate with a USB Type-C 1.0 DRP device. The limitation is a result of a backwards compatibility problem between USB Type-C 1.1 DFP and a USB Type-C 1.0 DRP.
The TUSB322I device can be configured as a UFP-only by changing the MODE_SELECT register default setting. In UFP mode, the TUSB322I device constantly presents pulldown resistors (Rd) on both CC pins. The TUSB322I device monitors the CC pins for the voltage level corresponding to the Type-C mode current advertisement by the connected DFP. The TUSB322I device debounces the CC pins and wait for VBUS detection before successfully attaching. As a UFP, the TUSB322I device detects and communicates the advertised current level of the DFP to the system through the I2C CURRENT_MODE_DETECT register once in the Attached.SNK state.
Steps for enabling UFP-only:
1. Write a 1'b1 to DISABLE_TERM register (address 0x0A bit 0).
2. Write a 2'b01 to MODE_SELECT register (address 0x0A bits 5:4)
3. Write a 1'b0 to DISABLE_TERM register (address 0x0A bit 0).
The TUSB322I default operation is a dual-role port controller. As a DRP, the TUSB322I can operate as a UFP (sink) or a DFP (source). In DFP mode, the TUSB322I toggles between presenting as a DFP (Rp on both CC pins) and presenting as a UFP (Rd on both CC pins).
When presenting as a DFP, the TUSB322I monitors the voltage level on the CC pins looking for the Rd termination of a UFP. When a UFP is detected and TUSB322I is in the Attached.SRC state, the TUSB322I will pull the ID pin low to indicate to the system the port is attached to a sink (UFP). Additionally, when a UFP is detected, the TUSB322I will supply VCONN on the unconnected CC pin if Ra is also detected. In DFP mode, the TUSB322I will initially advertise default USB Type-C current. The Type-C Current can be adjusted through I2C if the system wishes to increase the amount advertised. TUSB322I will adjust the Rps to match the desired Type-C Current advertisement. In GPIO mode, the TUSB322I will only advertise default Type C current.
When presenting as a UFP, the TUSB322I monitors the CC pins for the voltage level corresponding to the Type-C mode current advertisement by the connected DFP. The TUSB322I will debounce the CC pins and wait for VBUS detection before successfully attaching. As a UFP, the TUSB322I will detect and communicate the DFP’s advertised current level to the system through the OUT1 and OUT2 GPIOs (if in GPIO mode) or through the I2C CURRENT_MODE_DETECT register once in the Attached.SNK state.
The TUSB322I supports two optional Type-C DRP features called Try.SRC and Try.SNK. Products supporting dual-role functionality can have a requirement to be a source (DFP) or a sink (UFP) when connected to another dual-role capable product. For example, a dual-role capable notebook can be used as a source when connected to a tablet, or a cell phone could be a sink when connected to a notebook or tablet. When standard DRP products (products which don’t support either Try.SRC or Try.SNK) are connected together, the role (UFP or DFP) outcome is not predetermined. These two optional DRP features provide a means for dual-role capable products to connect to another dual-role capable product in the role desired. Try.SRC and Try.SNK are only available when TUSB322I is configured in I2C mode. When operating in GPIO mode, the TUSB322I will always operate as a standard DRP.
The Try.SRC feature of the TUSB322I device provides a means for a DRP product to connect as a DFP when connected to another DRP product that doesn’t implement Try.SRC. When two products which implement Try.SRC are connected together, the role outcome of either UFP or DFP is the same as a standard DRP. Try.SRC is enabled by changing I2C register SOURCE_PREF to 2’b11. Once the register is changed to 2’b11, the TUSB322I will always attempt to connect as a DFP when attached to another DRP capable device.
When a valid cable detection and attach have been completed, the DFP has the option to advertise the level of Type-C current a UFP can sink. The default current advertisement for the TUSB322I device is 500 mA (for USB2.0) or 900 mA (for USB3.1). If a higher level of current is available, the I2C registers can be written to provide medium current at 1.5 A or high current at 3 A. When the CURRENT_MODE_ADVERTISE register has been written to advertise higher than default current, the DFP adjusts the Rps for the specified current level. If a DFP advertises 3 A, it ensures that the VDD of the TUSB322I device is 3.5 V or greater. Table 2 lists the Type-C current advertisements in GPIO an I2C modes.
TYPE-C CURRENT | GPIO MODE (ADDR PIN IN NC) | I2C MODE (ADDR PIN H, L) | |||
---|---|---|---|---|---|
UFP IN DRP MODE | DFP IN DRP MODE | UFP | DFP | ||
Default | 500 mA (USB2.0) 900 mA (USB3.1) |
Current mode detected and output through OUT1 / OUT2 | Only advertisement | Current mode detected and read through I2C register | I2C register default is 500 or 900 mA |
Medium - 1.5 A | N/A | Advertisement selected through writing I2C register | |||
High - 3 A |
The TUSB322I device supports audio and debug accessories in UFP, DFP mode and DRP mode. Audio and debug accessory support is provided through reading of I2C registers. Audio accessory is also supported through GPIO mode with INT_N/OUT3 pin (audio accessory is detected when INT_N/OUT3 pin is low).
Audio accessory mode is supported through two types of adapters. First, the passive audio adapter can be used to convert the Type-C connector into an audio port. To effectively detect the passive audio adapter, the TUSB322I device must detect a resistance that is less than Ra on both of the CC pins.
Secondly, a charge through audio adapter can be used. The primary difference between a passive and charge through adapter is that the charge through adapter supplies 500 mA of current over VBUS. The charge through adapter contains a receptacle and a plug. The plug acts as a DFP and supplies VBUS when the plug detects a connection.
When the TUSB322I device is configured in GPIO mode, OUT3 pin determines if an audio accessory is connected. When an audio accessory is detected, the OUT3 pin is pulled low.
Debug is an additional state supported by USB Type-C. The specification does not define a specific user scenario for this state, but the end user could use debug accessory mode to enter a test state for production specific to the application. Charge through debug accessory is not supported by TUSB322I when in DRP or UFP mode. The TUSB322I when configured as a DFP-only or as a DRP acting as a DFP will detect a debug accessory which presents Rd on both CC1 and CC2 pins. The TUSB322I will set ACCESSORY_CONNECTED register to 3'b110 to indicate a UFP debug accessory. The TUSB322I when configured as a UFP-only or as a DRP acting as a UFP will detect a debug accessory which presents Rp on both CC1 and CC2 pins. The TUSB322I will set ACCESSORY_CONNECTED register to 3b'111 to indicate a DFP debug accessory.
The TUSB322I device can be configured for I2C communication or GPIO outputs using the ADDR pin. The ADDR pin is a tri-level control pin. When the ADDR pin is left floating (NC), the TUSB322I device is in GPIO output mode. When the ADDR pin is pulled high or pulled low, the TUSB322I device is in I2C mode.
All outputs for the TUSB322I device are open drain configuration.
The OUT1 and OUT2 pins are used to output the Type-C current mode when in GPIO mode. Additionally, the OUT3 pin is used to communicate the audio accessory mode in GPIO mode. Table 3 lists the output pin settings. See for more information on the pins and their uses.
OUT1 | OUT2 | DESCRIPTION |
---|---|---|
H | H | Default current in unattached state |
H | L | Default current in attached state |
L | H | Medium current (1.5 A) in attached state |
L | L | High current (3.0 A) in attached state |
When operating in I2C mode, the TUSB322I device uses the SCL and SDA lines for clock and data and the INT_N pin to communicate a change in I2C registers, or an interrupt, to the system. The INT_N pin is pulled low when the TUSB322I device updates the registers with new information. The INT_N pin is open drain. The INTERRUPT_STATUS register will be set when the INT_N pin is pulled low. To clear the INTERRUPT_STATUS register, the end user writes to I2C.
When operating in GPIO mode, the OUT3 pin is used in place of the INT_N pin to determine if an audio accessory is detected and attached. The OUT3 pin is pulled low when an audio accessory is detected.
NOTE
When using the 3.3-V supply for I2C, the end user must ensure that the VDD is 3 V and above. Otherwise the I2C can back power the device.
The TUSB322I device supports VBUS detection according to the Type-C Specification. VBUS detection is used to determine the attachment and detachment of a UFP and to determine the entering and exiting of accessary modes. VBUS detection is also used to successfully resolve the role in DRP mode.
The system VBUS voltage must be routed through a 900-kΩ resistor to the VBUS_DET pin on the TUSB322I device.
The TUSB322I device has the ability to control an external/discrete MUX using the DIR pin. The TUSB322I detects the cable orientation by monitoring the voltage on the CC pins. When a voltage level within the proper threshold is detected on CC1, the DIR pin is pulled low. When a voltage level within the proper threshold is detected on CC2, the DIR is pulled high. The DIR pin is an open drain output. The I2C communicates the cable orientation status for the TUSB322I device.
The TUSB322I device supplies VCONN to active cables when configured in DFP mode or in DRP acting as a DFP mode. VCONN is provided only when the unconnected CC pin is terminated to a resistance, Ra, and after a UFP is detected and the Attached.SRC state is entered. When in DFP mode or in DRP acting as a DFP mode, a 5-V source must be connected to the VDD pin of the TUSB322I device after Attached.SRC. VCONN is supplied from VDD through a low resistance power FET out to the unconnected CC pin. VCONN is removed when a detach event is detected and the active cable is removed.
The TUSB322I device has four functional modes. Table 4 lists these modes:
MODES | GENERAL BEHAVIOR | MODE | STATES(1) |
---|---|---|---|
Unattached | USB port unattached. ID, PORT operational. I2C on. | UFP-Only | Unattached.SNK |
AttachWait.SNK | |||
DRP | Toggle Unattached.SNK → Unattached.SRC | ||
AttachedWait.SRC or AttachedWait.SNK | |||
DFP-Only | Unattached.SRC | ||
AttachWait.SRC | |||
Active | USB port attached. All GPIOs operational. I2C on. | UFP-Only | Attached.SNK |
Audio Accessory | |||
Debug Accessory | |||
DRP | Attached.SNK | ||
Attached.SRC | |||
Audio accessory | |||
Debug accessory | |||
DFP-Only | Attached.SRC | ||
Audio accessory | |||
Debug accessory | |||
Dead battery | No operation. VDD not available. |
DRP | Default device state to UFP/SNK with Rd. |
Shutdown | No operation. VDD available and EN_N pin high |
DRP | Default device state to UFP/SNK with Rd. |
Unattached mode is the primary mode of operation for the TUSB322I device, because a USB port can be unattached for a lengthy period of time. In unattached mode, VDD is available, and all IOs and I2C are operational. After the TUSB322I device is powered up, the part enters unattached mode until a successful attach has been determined. Initially, right after power up, the TUSB322I device comes up as an Unattached.SNK. The TUSB322I device toggles between the UFP and the DFP if configured as a DRP.
Active mode is defined as the port being attached. In active mode, all GPIOs are operational, and I2C is read / write (R/W). When in active mode, the TUSB322I device communicates to the AP that the USB port is attached. This communication happens through the ID pin if TUSB322I is configured as a DFP or DRP connect as source. If TUSB322I is configured as a UFP or a DRP connected as a sink, the OUT1/OUT2 and INT_N/OUT3 pins are used. The TUSB322I device exits active mode under the following conditions:
Shutdown mode for TUSB322I is defined as follows:
During dead battery mode, VDD is not available. CC pins always default to pulldown resistors in dead battery mode. Dead battery mode means:
NOTE
When VDD is off, the TUSB322I non-failsafe pins (DIR, VBUS_DET, ADDR, OUT[3:1] pins) could back-drive the TUSB322I device if not handled properly. When necessary to pull these pins up, TI recommends pulling up DIR, ADDR, and INT_N/OUT3 to the device’s VDD supply. The VBUS_DET must be pulled up to VBUS through a 900-kΩ resistor.
For further programmability, the TUSB322I device can be controlled using I2C. The TUSB322I device local I2C interface is available for reading/writing after TI2C_EN when the device is powered up. The SCL and SDA terminals are used for I2C clock and I2C data respectively. If I2C is the preferred method of control, the ADDR pin must be set accordingly.
TUSB322I I2C Target Address | ||||||||
---|---|---|---|---|---|---|---|---|
ADDR pin | Bit 7 (MSB) | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 (W/R) |
H | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 0/1 |
L | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 0/1 |
The following procedure should be followed to write to TUSB322I I2C registers:
The following procedure should be followed to read the TUSB322I I2C registers:
The following procedure should be followed for setting a starting sub-address for I2C reads:
NOTE
If no sub-addressing is included for the read procedure, then the reads start at register offset 00h and continue byte-by-byte through the registers until the I2C master terminates the read operation. If a I2C address write occurred prior to the read, then the reads start at the sub-address specified by the address write.
Offset | Reset | Register Name | Section |
---|---|---|---|
0x07 through 0x00 | [0x00, 0x54, 0x55, 0x53, 0x42, 0x33, 0x32, 0x32] | Device Identification | Device Identification Register |
0x08 | 0x00 | Connection Status | Connection Status Register |
0x09 | 0x20 | Connection Status and Control | Connection Status and Control Register |
0x0A | 0x00 | General Control | General Control Register |
0xA0 | 0x02 | Device Revision | Device Revision Register |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DEVICE_ID | |||||||
R-0 |
LEGEND: R = Read only; -n = value after reset |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
7-0 | DEVICE_ID | R | For the TUSB322I device these fields return a string of ASCII characters returning TUSB322I Addresses 0x07 - 0x00 = {0x00, 0x54, 0x55, 0x53, 0x42, 0x33, 0x32, 0x32} |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
CURRENT_MODE_ADVERTISE | CURRENT_MODE_DETECT | ACCESSORY_CONNECTED | ACTIVE_CABLE_DETECTION | ||||
RW | RU | RU | RU |
LEGEND: R/W = Read/Write; R/U = Read/Update |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
7-6 | CURRENT_MODE_ADVERTISE | R | 2'b00 |
These bits are programmed by the application to raise the current advertisement from default. 00 – Default (500 mA / 900 mA) initial value at startup 01 – Mid (1.5 A) 10 – High (3 A) 11 – Reserved |
5-4 | CURRENT_MODE_DETECT | RU | 2'b00 |
These bits are set when a UFP determines the Type-C Current mode. 00 – Default (value at start up) 01 – Medium 10 – Charge through accessory – 500 mA 11 – High |
3-1 | ACCESSORY_CONNECTED | RU | 2'b00 |
These bits are read by the application to determine if an accessory was attached. 000 – No accessory attached (default) 001 – Reserved 010 – Reserved 011 – Reserved 100 – Audio accessory 101 – Audio charged thru accessory 110 – Debug accessory when TUSB322I is connected as a DFP. 111 – Debug accessory when TUSB322I is connected as a UFP. |
0 | ACTIVE_CABLE_DETECTION | RU | 1'b0 | This flag indicates that an active cable has been plugged into the Type-C connector. When this field is set, an active cable is detected. |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
ATTACHED_STATE | CABLE_DIR | INTERRUPT_STATUS | VCONN_FAULT | DRP_DUTY_CYCLE | DISABLE_UFP_ACCESSORY | ||
RU | RU | RCU | RCU | RW | RW |
LEGEND: R/W = Read/Write; R/U = Read/Update; R/C/U = Read/Clear/Update |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
7-6 | ATTACHED_STATE | RU | 2'b00 |
This is an additional method to communicate attach other than the ID pin. These bits can be read by the application to determine what was attached. 00 – Not attached (default) 01 – Attached.SRC (DFP) 10 – Attached.SNK (UFP) 11 – Attached to an accessory |
5 | CABLE_DIR | RU | 1'b1 |
Cable orientation. The application can read these bits for cable orientation information. 0 – CC1 1 – CC2 (default) |
4 | INTERRUPT_STATUS | RCU | 1'b0 |
The INT pin is pulled low whenever a CSR changes. When a CSR change has occurred this bit should be held at 1 until the application clears it. 0 – Clear 1 – Interrupt (When INT_N is pulled low, this bit will be 1. This bit is 1 whenever any CSR are changed) |
3 | VCONN_FAULT | RCU | 1'b0 |
VCONN_FAULT Bit is set whenever a VCONN over-current limit is triggered. 0 - No fault. (default) 1 - Interrupt (INT_N is asserted low) |
2-1 | DRP_DUTY_CYCLE | RW | 2'b00 |
Percentage of time that a DRP advertises DFP during tDRP 00 – 30% (default) 01 – 40% 10 – 50% 11 – 60% |
0 | DISABLE_UFP_ACCESSORY | RW | 1'b0 |
Setting this field will disable UFP accessory support. 0 – UFP accessory support enabled (Default) 1 – UFP accessory support disabled |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DEBOUNCE | MODE_SELECT | I2C_SOFT_RESET | SOURCE_PREF | DISABLE_TERM | |||
RW | RW | RSU | RW | RW |
LEGEND: R/W = Read/Write; R/S/U = Read/Set/Update |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
7-6 | DEBOUNCE | RW | 2'b00 |
The nominal amount of time the TUSB322I device debounces the voltages on the CC pins. 00 – 168ms (default) 01 – 118ms 10 – 134ms 11 – 152ms |
5-4 | MODE_SELECT | RW | 2'b00 |
This register can be written to set the TUSB322I device mode operation. The ADDR pin must be set to I2C mode. 00 – DRP mode (start from unattached.SNK) (default) 01 – UFP mode (unattached.SNK) 10 – DFP mode(unattached.SRC) 11 – DRP mode(start from unattached.SNK) |
3 | I2C_SOFT_RESET | RSU | 1'b0 |
This register resets the digital logic. The bit is self-clearing. A write of 1 starts the reset. The following registers can be affected after setting this bit: CURRENT_MODE_DETECT ACTIVE_CABLE_DETECTION ACCESSORY_CONNECTED ATTACHED_STATE CABLE_DIR |
2-1 | SOURCE_PREF | RW | 2'b00 |
This field controls the TUSB322I behavior when configured as a DRP. 00 – Standard DRP (default) 01 – DRP will perform Try.SNK 10 – Reserved 11 – DRP will perform Try.SRC |
0 | DISABLE_TERM | RW | 1'b0 |
This field will disable the termination on CC pins and transition the CC state machine to the disabled state. 0 – Termination enabled according TUSB322I mode of operation (default) 1 – Termination disabled and state machine held in disable state. |
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
REVISION | |||||||
R |
LEGEND: R = Read only |
Bit | Field | Type | Reset | Description |
---|---|---|---|---|
7-0 | REVISION | R | 'h02 | Revision of TUSB322I. Defaults to 0x02. |