USB Type-C日益普及,广泛应用于笔记电脑,手机,台式机和工业PC等领域,在这些应用场合往往需要Type-C 接口既支持高速数据传输,同时也能够支持多媒体功能。本文主要介绍如何通过TPS65994AD和TUSB1044在Type-C接口实现USB3.1 Gen2和DP1.4。
TPS65994AD是一款独立的USB Type-C和 USB PD控制器,内置电源路径,支持USB PD 3.0,可以实现DP,Thunderbolt等ALT Mode。TUSB1044是一款USB Type-C Alt Mode redriving switch,支持速率可达10 Gbps,可搭配集成USB3.1/DP MUX的Host实现支持USB3.1 Gen2和DP1.4功能的Type-C接口。TPS65994AD通过CC识别接入的设备,再通过I2C或者GPIO与TUSB1044通信,进而根据CC 状态控制TUSB1044内部AUX切换和USB3.1/DP redriver配置,实现Host端的USB3.1和DP Mode。其中, GPIO模式通信,控制简单,易于实现;I2C模式通信,控制灵活,并可以减少外围器件和IO口的使用,节省PCB空间。
TPS65994AD和TUSB1044通过I2C 模式实现USB Type-C USB3.1/DP Mode的系统框图如图1所示。将TPS65994AD的I2C master(I2C3m_SCL,I2C3m_SDA)连接到TUSB1044的I2C接口;将TPS65994AD 相应port 的DP HPD(GPIO0/GPIO1)连接到对应TUSB1044的HPDIN引脚;将TUSB1044 I2C_EN上拉,使能I2C模式;通过UEQ0/A0和UEQ1/A1引脚悬配置TUSB1044的I2C地址,有16个地址可供选择;其他引脚的配置可以参考TPS65994AD和TUSB1044的datasheet。
图1 TPS65994AD和TUSB1044 系统框图
下面着重介绍TPS65994AD PD Firmware的配置以实现上述USB3.1 Gen2和DP1.4功能,采用的软件工具为TPS65993_4 Application Customization Tool,主要配置如下:
如图2所示,使能DP SID和DP mode,并做图2所示配置。
图2 DP配置
如图3所示,配置“I2C Master Config”,将slave address 1配置为所设定的TUSB1044 I2C地址,这里为“12”。
图3配置I2C 地址
如图4所示,配置“App Config Binary Data Indices”,将port1 I2C event start index配置为index 1,即TPS65994 I2C master从index 1开始发送port 1的I2C event;设置I2C event的总个数,这里设置为20个数。需要注意的是,index 0专门用于country code,不能将I2C event start index配置为index 0;I2C event的个数需与实际所用个数一致。
图4配置Binary Data Indices
如图5所示,通过“Settings”进入“I2C Master Event Table”配置待发送的Data。TPS65994支持50个Record index,其中Record index 0用于country code。如步骤3所配置,这里从Record index 1开始配置,Record index 1配置参数如下:
Trigger Event:用于选择触发I2C master发送data的触发事件,这里选择为I2C_MASTER_EVENT_POWER_ON_RESET,即以TPS65994AD重新上电复位为触发事件。
Data Length:发送data的长度,以byte为单位,长度需与Data里面填入的数据相同,这里设置为2。
Slave Address Index:用于选择给哪一个I2C slave 设备发送数据,如步骤2所配置,这里配置为0,即选择第一个slave address:0x12。
Priority:用于设置优先级,这里采用默认设置0。
Data:用于设置I2C master发送的数据,采用十六进制,最右边的byte最先发送,这里配置为0x100a,即PD刚上电时对TUSB1044的0x0a寄存器写入0x10,关断USB和DP模式,EQ采用寄存器的设置值。寄存器定义详见TUSB1044的datasheet。
图5配置I2C Master
同理,对Record index 2~ Record index 20按表1内容进行配置,以实现Host端的1和DP Mode。
Record index | Trigger Event | Data Length | Slave Address index | Priority | Data |
1 | I2C_MASTER_EVENT_POWER_ON_REST | 2 | 0 | 0 | 0x100a |
2 | I2C_MASTER_EVENT_DETACH | 2 | 0 | 0 | 0x100a |
3 | I2C_MASTER_EVENT_ATTACH_UU | 2 | 0 | 0 | 0x110a |
4 | I2C_MASTER_EVENT_ATTACH_UU | 2 | 0 | 0 | 0x680c |
5 | I2C_MASTER_EVENT_ATTACH_UU | 3 | 0 | 0 | 0x666610 |
6 | I2C_MASTER_EVENT_ATTACH_UU | 3 | 0 | 0 | 0x333320 |
7 | I2C_MASTER_EVENT_ATTACH_UD | 2 | 0 | 0 | 0x150a |
8 | I2C_MASTER_EVENT_ATTACH_UD | 2 | 0 | 0 | 0x680c |
9 | I2C_MASTER_EVENT_ATTACH_UD | 3 | 0 | 0 | 0x666610 |
10 | I2C_MASTER_EVENT_ATTACH_UD | 3 | 0 | 0 | 0x333320 |
11 | I2C_MASTER_EVENT_DP_CONFIG_ACE_UU | 2 | 0 | 0 | 0x1a0a |
12 | I2C_MASTER_EVENT_DP_CONFIG_ACE_UU | 3 | 0 | 0 | 0x555510 |
13 | I2C_MASTER_EVENT_DP_CONFIG_ACE_UD | 2 | 0 | 0 | 0x1e0a |
14 | I2C_MASTER_EVENT_DP_CONFIG_ACE_UD | 3 | 0 | 0 | 0x555510 |
15 | I2C_MASTER_EVENT_DP_CONFIG_BDF_UU | 2 | 0 | 0 | 0x1b0a |
16 | I2C_MASTER_EVENT_DP_CONFIG_BDF_UU | 3 | 0 | 0 | 0x665510 |
17 | I2C_MASTER_EVENT_DP_CONFIG_BDF_UU | 3 | 0 | 0 | 0x333320 |
18 | I2C_MASTER_EVENT_DP_CONFIG_BDF_UD | 2 | 0 | 0 | 0x1f0a |
19 | I2C_MASTER_EVENT_DP_CONFIG_BDF_UD | 3 | 0 | 0 | 0x556610 |
20 | I2C_MASTER_EVENT_DP_CONFIG_BDF_UD | 3 | 0 | 0 | 0x333320 |
表1配置Record index 1~ Record index 20
本文介绍了一种基于TPS65994AD和TUSB1044通过I2C模式实现的USB Type-C USB3.1/DP Mode系统,详细分析了其系统架构和Firmware配置,该方案具有外围器件少,节省PCB空间,Redriver参数可根据不同线路通过Firmware软件灵活调节等优势。用户可根据此文快速搭建USB Type-C USB3.1 Gen2/DP1.4系统。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !