USB Type C Display Mode with TPS65994AD and TUSB1046A
[Copy link]
Author: Dylan Zheng
USB Type-C is becoming more and more popular and is widely used in notebooks, mobile phones, desktops, industrial PCs and other fields. In these applications, the Type-C interface is often required to support both USB3.1 and Display (DP). This article mainly introduces how to implement USB Type-C DP Mode through TPS65994AD and TUSB1046A.
TPS65994AD is an independent USB Type-C and USB PD controller with built-in power path, supporting USB PD 3.0, and can implement ALT Mode such as DP and Thunderbolt. TUSB1046A is a VESA USB Type-C AltMode redriving switch, supporting USB3.1 rate up to 10 Gbps, and also supporting DP1.4 rate up to 8.1 Gbps, and integrating up to 14 dB linear redriver. TPS65994AD identifies the connected device through CC, and then communicates with TUSB1046A through I2C or GPIO, and then controls the internal high-speed Mux switching and redriver configuration of TUSB1046A according to the CC status to realize USB3.1 and DP Mode on the Host side. Among them, GPIO mode communication is simple to control and easy to implement; I2C mode communication can reduce the use of peripheral devices and IO ports, saving PCB space.
The system block diagram of TPS65994AD and TUSB1046A implementing USB Type-C DP Mode through I2C mode is shown in Figure 1. Connect the I2C master (I2C3m_SCL, I2C3m_SDA) of TPS65994AD to the I2C interface of TUSB1046A; connect the DP HPD (GPIO0/GPIO1) of the corresponding port of TPS65994AD to the corresponding CTL1/HPDIN pin of TUSB1046A; pull up TUSB1046A I2C_EN to enable I2C mode; leave SSEQ0/A0 and DPEQ0/A1 pins floating, configure the I2C address of TUSB1046A to 0010010 (0x12), or configure it to other addresses as required; for the configuration of other pins, refer to the datasheet of TPS65994AD and TUSB1046A.
查看详情
Figure 1 TPS65994AD and TUSB1046A I2C mode system block diagram
The following focuses on the configuration of TPS65994AD PD Firmware to implement the above DP function. The software tool used is TPS65993_4 Application Customization 6.4.12. The main configuration is as follows:
1. As shown in Figure 2, enable DP SID and DP mode, and make the configurations shown in Figure 2.
查看详情
Figure 2 DP configuration
2. As shown in Figure 3, configure "I2C Master Config" and set slave address 1 to the TUSB1046A I2C address: 0x12.
查看详情
Figure 3 Configuring the I2C address
3. As shown in Figure 4, configure "App Config Binary Data Indices" and set the port1 I2C event start index to index 1, that is, the TPS65994 I2C master starts sending port 1 I2C events from index 1; set the total number of I2C events, which is set to 24 here. It should be noted that index 0 is specifically used for country code, and the I2C event start index cannot be configured as index 0; the number of I2C events must be consistent with the actual number used.
查看详情
Figure 4 Configuring Binary Data Indices
4. As shown in Figure 5, enter the "I2C Master Event Table" through "Settings" to configure the data to be sent. TPS65994 supports 50 Record indexes, where Record index 0 is used for country code. As configured in step 3, here we start configuring from Record index 1. The configuration parameters of Record index 1 are as follows:
a. Trigger Event: used to select the trigger event that triggers the I2C master to send data. Here, I2C_MASTER_EVENT_ATTACH_UU is selected, which means that the USB 3.1 Type-C device is connected to the Host side from the front.
b. Data Length: The length of the sent data, in bytes. The length must be the same as the data filled in Data. Here it is set to 2.
c. Slave Address Index: used to select which I2C slave device to send data to. As configured in step 2, it is configured as 0 here, which means the first slave address is selected: 0x12.
d. Priority: used to set the priority. The default setting is 0.
e. Data: used to set the data sent by the I2C master, in hexadecimal, with the rightmost byte sent first. Here it is configured as 0x110a, that is, write 0x11 to the 0x0a register of TUSB1046A, enable USB3.1 only, and the direction is positive, and EQ uses the setting value of the register. For detailed register definitions, see the TUSB1046A datasheet.
查看详情
Figure 5 Configuring I2C Master
5. Similarly, configure Record index 2 to Record index 24 according to the contents of Table 1 to implement USB3.1 and DP Mode on the Host side.
Record index
|
Trigger Event
|
Data Length
|
Slave Address index
|
Priority
|
Data
|
1
|
I2C_MASTER_EVENT_ATTACH_UU
|
2
|
0
|
0
|
0x110a
|
2
|
I2C_MASTER_EVENT_ATTACH_UD
|
2
|
0
|
0
|
0x150a
|
3
|
I2C_MASTER_EVENT_DP_CONFIG_ACE_UU
|
2
|
0
|
0
|
0x120a
|
4
|
I2C_MASTER_EVENT_DP_CONFIG_ACE_UD
|
2
|
0
|
0
|
0x160a
|
5
|
I2C_MASTER_EVENT_DP_CONFIG_BDF_UU
|
2
|
0
|
0
|
0x130a
|
6
|
I2C_MASTER_EVENT_DP_CONFIG_BDF_UD
|
2
|
0
|
0
|
0x170a
|
7
|
I2C_MASTER_EVENT_POWER_ON_REST
|
2
|
0
|
0
|
0x110a
|
8
|
I2C_MASTER_EVENT_POWER_ON_REST
|
2
|
0
|
0
|
0x3310
|
9
|
I2C_MASTER_EVENT_POWER_ON_REST
|
2
|
0
|
0
|
0x3311
|
10
|
I2C_MASTER_EVENT_POWER_ON_REST
|
2
|
0
|
0
|
0x3320
|
11
|
I2C_MASTER_EVENT_POWER_ON_REST
|
2
|
0
|
0
|
0xa21
|
12
|
I2C_MASTER_EVENT_ATTACH_UU
|
2
|
0
|
0
|
0x3320
|
13
|
I2C_MASTER_EVENT_ATTACH_UU
|
2
|
0
|
0
|
0xa21
|
14
|
I2C_MASTER_EVENT_ATTACH_UD
|
2
|
0
|
0
|
0x3320
|
15
|
I2C_MASTER_EVENT_ATTACH_UD
|
2
|
0
|
0
|
0xa21
|
16
|
I2C_MASTER_EVENT_DP_CONFIG_ACE_UU
|
2
|
0
|
0
|
0x3310
|
17
|
I2C_MASTER_EVENT_DP_CONFIG_ACE_UU
|
2
|
0
|
0
|
0x3311
|
18
|
I2C_MASTER_EVENT_DP_CONFIG_ACE_UD
|
2
|
0
|
0
|
0x3310
|
19
|
I2C_MASTER_EVENT_DP_CONFIG_ACE_UD
|
2
|
0
|
0
|
0x3311
|
20
|
I2C_MASTER_EVENT_DP_CONFIG_BDF_UU
|
2
|
0
|
0
|
0x3310
|
21
|
I2C_MASTER_EVENT_DP_CONFIG_BDF_UU
|
2
|
0
|
0
|
0x3311
|
22
|
I2C_MASTER_EVENT_DP_CONFIG_BDF_UD
|
2
|
0
|
0
|
0x3310
|
23
|
I2C_MASTER_EVENT_DP_CONFIG_BDF_UD
|
2
|
0
|
0
|
0x3311
|
24
|
I2C_MASTER_EVENT_DETACH
|
2
|
0
|
0
|
0xa
|
Table 1 Configuration Record index 2~ Record index 24
This article introduces a USB Type-C DP Mode system based on TPS65994AD and TUSB1046A implemented in I2C mode, and analyzes its system architecture and firmware configuration in detail. This solution has the advantages of fewer peripheral devices, saving PCB space, and redriver parameters can be adjusted through firmware software according to different lines. Users can quickly build a USB Type-C DP Mode system based on this article.
|