在设计载板时添加USB-C - 第2部分
这是我们两篇博客系列的第二部分。在第一部分中,您学习了 USB-C 引脚、配置通道和电源分配。 让我们继续通过您已经学到的知识分析现实世界的示例,然后我们将以分析USB-C上的数据信号来结尾。
在跳进现实案例之前,让我们快速回顾一下电阻设置以及DFP设备(主机)在连接不同电阻时检测CC引脚时可能检测到的状态:
USB-C Configuration Channel
CC1 | CC2 | State | Cable Orientation |
Open | Open | Nothing attached | N/A |
Rp | Rp | Another DFP / No action | N/A |
Rd | Open | Sink Attached | Normal |
Open | Rd | Inverted | |
Open | Ra | Powered cable without Sink attached | Normal |
Ra | Open | Inverted | |
Rd | Ra | Powered cable with Sink, VPA* or VPD** | Normal |
Ra | Rd | Inverted | |
Rd | Rd | Debug Accessory Mode Attached | N/A |
Ra | Ra | Audio Adapter Accessory Mode Attached | N/A |
*VPA - Vconn-Powered Accessory | |||
**VPD - Vconn-Powered USB Device |
现在,您可以查看一个真实的工作案例 ,一个双重角色的 USB-C 端口,可以为连接设备提供电源。
Simple USB-C dual role port
本节摘自Verdin开发板,使用了TUSB321芯片来处理配置通道和VBUS中的功率切换芯片。CC连接的芯片检测线缆的方向和电源输入设备的存在(请参见上面的表格)。然后,它将检测到的状态告知给Verdin模块,该模块控制功率切换芯片。根据引脚状态,TUSB321可以宣布不同的最大输出电流级别(0.5 / 0.9A,1.5A和3A)。功率切换芯片(IC4)的电流限制需要相应调整。
The block diagram for the TUSB321
在 TUSB321 中,您可以看到 CC 引脚切换到下拉电阻,并且可配置上拉电阻。这种方式使您的设备可以用于 UFP、DFP 和 DRP 配置 ,由 PORT 引脚控制 ,并可配置以宣布其电源传递能力 ,这由 CURRENT_MODE 引脚控制。由于 TUSB321 仅使用上拉电阻来宣布端口的电源能力,因此它只能宣布最大为5V和3A(15W)的电源。对于更高的电压,需要使用高级电源传递配置芯片。
您还会发现查看电源汇输入设备示例很有帮助。
USB-C power sink
本节内容适用于我们的 Dahlia 载板,该板具有一个能够进行总线通信的芯片(IC23)。因此,这种解决方案可以协商获得具有高于5V和大于3A的电流的功率配置。连接到CC引脚的芯片具有内置的EPROM,其中包含三个配置。这些信息通过CC总线进行通信,并由可用匹配配置的电源输出设备使用。当两个设备都同意一个相互可用的配置时,VBUS被切换,设备可以从总线上开始消耗电力。
原理图还提供了一个选配的充电器检测器芯片(IC22)。通过检查D+和D-数据信号是否短路在一起,IC22可以检测到传统充电器。如果USB电源输送协商成功(IC23)或接入USB Type-A充电器(IC22),则启用总线电源(IC20),并且载板可以开始启动模块。如果未检测到充电器或USB-C电源输送端口,则系统将不会启动,因为不被允许从端口吸取超过5V / 100mA的电流。
USB-C 接口相比以前的接口,具有更多的数据信号引脚,这一点值得注意。
两条 Super-Speed 信号通道——TX 和 RX 对。
对称的 D+ 和 D- 信号对(只在设备端冗余)。
两个 Sideband Use(SBU)引脚,用于其他模式下的特殊功能。
USB 2.0的D+/D-引脚在插座上是对称的,这意味着不需要识别插入的电缆的方向,也不需要多路复用器来切换信号。
为了充分利用USB-C的 Super-Speed 信号功能,必须使用多路复用器以及使用CC引脚进行正确的电缆方向检测,如第一篇博客所解释的那样,以便多路复用器能够得到正确的控制。这是在使用双路或单路配置时确保使用正确的通道所必需的。
让我们看看实际的案例,以了解它们是如何联系在一起的;
使用USB-C的最简单的配置是作为上行面向的高速端口设备。
USB-C Client
使用CC引脚的下拉电阻和D+ / D-引脚,所示电路是Micro Type-B连接器的简单替代品,完全符合USB-C标准。它可以用于鼠标和闪存驱动器等设备。
可以使用下图所示的配置替换OTG,该配置来自我们的Verdin开发板,在分析USB-C电源输出源时曾在本博客文章中出现过。
High-Speed DRD
CC引脚和已经解释过的检测过程用于定义设备的角色,即作为DFP或UFP,以及 D+和D-引脚被用作 Data Signals 和之前示例相同。
在这里使用没有 Super-Speed 引脚的连接器是一个好的做法,否则会可以大大增加引脚密度,增加PCB布线的工作量。
在我们的 Apalis 载板参考设计中,您可以看到USB-C的更高级用途。
USB-C Super-Speed
当向您的USB-C应用添加 Super-Speed 功能时,如前所述,所需的多路复用器用于将 Super-Speed 信号连接到电缆的正确一侧,这可以简单地由同一个 TUSB321芯片控制。
在这个设计中,使用了一个技巧来简化布线过程:CC引脚被反转,因此用于控制多路复用器的信号也被反转,简化了多路复用器周围的布线。
现在,让我们来看一个来自笔记本电脑应用的完整功能示例。
Laptop USB-C implementation Source: https://www.nxp.com/docs/en/data-sheet/PTN5100.pdf
在这个设置中,笔记本可以充电或为UFP设备提供电源,包括通过专用IC(PTN5100)进行电源协商和可同时使用的显示端口功能。请注意矩阵切换器IC,它可以连接来自CPU图形部分的视频信号和南桥的 Super-Speed 信号。
让我们更仔细地看一下使用USB-C和显示端口配置的可能性。您可以在下面的图像中看到其中一些选项:
Display port configurations
重申一下,DisplayPort最多可以使用4个通道,但也可以使用1个或2个通道。每个用于 super-speed 信号的双向通道(TX/RX对)可以容纳2个DisplayPort通道,因为它的通道是单向的。因此,如果您只使用2个DisplayPort通道,则可以在剩余的双向通道中与 super-speed 信号结合使用。这也意味着在DisplayPort中使用高分辨率(使用4个通道)时,您只能使用 D+和D-引脚的 USB 2.0。
让我们看看一些错误,这些错误可以通过严格遵循标准来避免。
Rasp Pi 4 USB-C circuit Source: https://datasheets.raspberrypi.com/rpi4/raspberry-pi-4-reduced-schematics.pdf
在树莓派4的第一个版本中,CC引脚共用了同一个Rd电阻,这导致它们被短接在一起。当使用被动线缆(无标记芯片)连接时,DFP设备只能在一个CC引脚上检测到Rd,因为只有CC1 在线缆中被连接,这导致UFP设备可以正常工作。对照表格进行查看:
CC1 | CC2 | State | Cable Orientation |
Rd | Open | Sink Attached | Normal |
Open | Rd | Inverted |
然而,让我们看看当它连接到一个在 CC2 两端都有Ra电阻的主动USB-C线缆时会发生什么:
Resultant configuration with marker cable
在DFP设备端,CC2引脚检测到Ra电阻,CC1引脚检测到并联于电缆另一端的Ra电阻,由于Raspberry Pi板上的CC1和CC2引脚短接而引入的Rd电阻。这种并联配置导致形成了836欧姆的电阻,其在Ra电阻的允许值范围内。如果你仔细检查一下表格,你会发现这导致了检测到音频适配器的状态,使板子无法获得电源。
CC1 | CC2 | State | Cable Orientation |
Ra | Ra | Audio Adapter Accessory Mode Attached | N/A |
通过介绍基本的USB-C概念,你现在了解了它所带来的可能性、限制以及使用其资源的基本设置。 更详细的信息可通过下面的链接获得,如果你需要设计载板方面的帮助,欢迎给我们留言。
Official USB Specifications https://www.usb.org/documents
Wikipedia articles
https://en.wikipedia.org/wiki/USB-C
https://en.wikipedia.org/wiki/USB_3.0
https://en.wikipedia.org/wiki/USB
Short USB-C and Power Delivery Guide https://microchipdeveloper.com/usb:type-c
Easy to read USB 2.0 - the basic about enumeration and the protocol https://www.beyondlogic.org/usbnutshell/usb1.shtml
Toradex Design Guides
https://docs.toradex.cn/108140-verdin-carrier-board-design-guide.pdf
https://docs.toradex.cn/101123-apalis-arm-carrier-board-design-guide.pdf
提交
Verdin AM62 LVGL 移植
基于 NXP iMX8MM 测试 Secure Boot 功能
隆重推出 Aquila - 新一代 Toradex 计算机模块
Verdin iMX8MP 调试串口更改
NXP iMX8MM Cortex-M4 核心 GPT Capture 测试