原文链接:https://hackaday.com/2023/01/04/all-about-usb-c-resistors-and-emarkers/
如果您一直关注我们的 USB-C 系列文章,就会知道 USB-C 电缆中的 CC 线用于通信和旋转检测。不过不为人知的是,USB-C 有两种通信协议,一种是模拟协议,另一种是数字协议。今天,让我们来了解一下 USB-C 中使用的模拟信号——在一定程度上,了解一下传说中的 5.1kΩ 电阻及其工作原理。我们还将了解 USB-C 中的标记符号和神秘的 VCONN!
USB-C 电源在为 VBUS 提供 5V 电压之前,需要在 CC 线路上检测到一定值的下拉,而任何更高的电压都必须通过数字协商确定。无论作为笔记本电脑的端口还是充电器,PSU 都能检测到下拉值(称为 Rd),因为它在 CC 线路上保持了上拉(称为 Rp)——然后它会检查 CC 上是否产成了分压,以及所产生的电压是否在可接受的范围内。
如果您插入的设备无法通过线缆中的 CC 线实现下拉,那么您的设备将永远无法从 USB-C 端口获得电源,只能使用 USB-A 转 USB-C 线缆。即使是能与 USB-C 数字部分通信的智能设备也会有下拉功能,只是这些下拉功能是所使用的 USB-C 通信 IC 的内部功能。因此,想要充电的 USB-C 端口需要有下拉功能。
这部分现在已经众所周知,但我们在廉价设备上看到过很多电阻不足的故障,俗话说的就是需要"添加 5.1kΩ 电阻"。你可能会觉得这部分的原理很简单,也可能会大吃一惊。
上拉、下拉和由此产生的分压
USB-C 端口有两种电源角色——电源端和消耗端。在 5V 电压下使用 USB-C 时,USB-C 的模拟侧可让设计人员添加一种简单的方法来协商电源要求,而无需使用特定或昂贵的集成电路——可以使用上拉来控制电源,并使用下拉来控制终端。上拉和下拉的组合形成一个分压器,分出的电压本身代表充电器的电流能力。
在模拟信号模式下,信号源可以根据可用的功率预算调整上拉,这一点非常有用。想象一下:一台笔记本电脑或充电器上有多个 USB-C 端口。随着每个端口的负载增加,可提供给其他端口的电流就会减少,这在很大程度上取决于设备的内部构造。以 Framework 笔记本电脑为例,它配备了四个 USB-C 端口。每个端口可以在 5V/3A 的电压下提供 15W 的功率,但如果您想同时为四个纯 USB-C 端口的设备供电,那么它只能为第三和第四个端口提供 1.5A 的电流,从工程学的角度来看,这是一个相当合理的限制。
这意味着,像最大电流为 1.5A 和 3A 的高耗能设备,需要监控 CC 线路上的电压,以确定它们是否会超出功率预算,方法是调整其功率需求,或者在超出新设定的电流限制时关闭。
这对用户来说意味着什么?如果你的设备足够低功耗,那就没什么。您的设备应监控 CC 线路上的电压,并相应地进行调整。有些面向消费者的设备不会这样做,但这种情况很少见。
而作为黑客?如果你制作的设备从 USB-C 端口来取电,并希望在 5V 电压下获得 3A 电流,那么请记住,并非所有的 USB-C 端口都能提供这样的电流。不过,您可以通过测量 CC 线路上的电压来检查 3A 的可用性。或者也可以不用,我不是你妈(不为你负责),很多黑客设备都是在零检测的情况下茁壮成长的。
那么,CC 线路上会有什么电压呢?您可以使用微控制器的基本 ADC 或比较器读取这种电压。
如您所见,所有电压都在 3.3V 以下,因此如果您使用的是全速微控制器 ADC,就不需要分压器。对了,如果你使用的是 USB-C 插座,当然要记得分别监控两个 CC 引脚。
真的需要吗
我们真的需要监控 CC 电压吗?如果超过了电源端口所能提供的电流需求,它就会停止向设备供电——这是一个相当安全的结果。另一方面,USB-C 的理念是要有多层保障措施,如果您使用简单的 5.1kΩ 电阻器方法来制造 15W 的设备,您不妨让它成为一个能检测到供电不足的设备。而且,这也很容易做到!
否则,你就可以期待你的设备与一个始终能在 5V 电压下提供 3A 电流的充电器配对,而绝大多数充电器都能做到这一点。然而,如果您将设备连接到笔记本电脑端口,无论是 USB-C 还是使用 USB-C 适配器的 USB-A,您都不能完全指望 3A 电流始终存在,总需要检查一下。
但 5.1kΩ 并不是您会遇到的唯一下拉情况。还有一种不同的降压方式,我们黑客以前也遇到过,那就是 Ra——当我们谈到带有电子标记电缆时会出现的一个东西。
VCONN:正确识别电子标记(Emarker/E-marker)芯片
电子标记芯片基本上就是一个能与 USB PD 协议通信的存储芯片。它们用于比普通电缆略微高级的电缆中,即具有 USB3 和 Thunderbolt 等高速功能的电缆以及 5A 电缆。它们接入电缆上的 CC 线路,可由电源或终端查询,但通常由源查询。
如果 USB-C 线缆内有一个电子标记芯片,它也需要电,而 USB-C 有一种为其供电的方法——这就是 VCONN。如你所知,只有一个 CC 引脚用于通信。而未连接到 CC 线路的另一个 CC 引脚用于为电子标记芯片供电;另一个 CC 引脚就会变为 VCONN。
在 USB-C 插头中,您可以知道哪个 CC 引脚与 CC 线相连,因此可以事先知道哪个引脚将充当 VCONN。但是,您可以以两种不同的方向插入插头,这意味着插座必须能够将两个 CC 针脚中的任何一个针脚视为 CC 通信线或 VCONN 针脚。这就使电缆保持了相对简单和廉价的特性,让设备本身来处理复杂的问题。
作为黑客,你很可能不需要担心 VCONN。我们中的大多数人都会使用 USB2 或 USB3,电流不超过 3A,而电子标记芯片检查并不是那么必要。除此以外,还有一些集成电路可以为您解决 USB-C 的各种问题,其中就包括提供 VCONN。
实际上 VCONN 的电压要求相当宽松,与您需要为 VBUS 提供的 5V 电压相比,允许的电压范围为 3V 至 5.5V;在智能手机的实现中,通常是直接采用锂离子单芯电池电压,这意味着您可以避免两次转换,并能节省大量电能。毕竟,VCONN 电源并不只是为电子标记芯片供电,它还可以为小型配件和耳机适配器供电,功率预算最高可达 1W。来自 USB-C hacker 的这一有趣演示讲述了如何制作 VCONN 供电设备的原型,这些设备涵盖了 USB-C 规范允许 VCONN 供电设备做的所有事情。
尽管如此,电子标记芯片是最常见的 VCONN 标志,而且非常简单。有时一根电缆包含两个电子标记芯片,有时只包含一个,这是生产工艺的选择。如果是单电子标记电缆,电缆的一端将包含电子标记芯片,另外还有一条"将标记电源引入另一端"的 VCONN 线从配备标记的插头穿过电缆,连接到另一电缆插头上的 VCONN 针脚。因此,如果你看到有哪里提到了 VCONN 线,那就是这个意思——连接到电缆一端未使用的 CC 引脚的二极管隔离线,只需为另一端的电子标记芯片供电。
到目前为止的一切都很有趣,但那个 Ra 下拉电阻又是怎么回事呢?
树莓派 4 的问题
如果插座能够提供 VCONN,它就会在当前未用于通信的 CC 引脚上寻找该电阻,并在感应到电阻时将 VCONN 输入该引脚。因此,电缆插头内的第二个 CC 引脚(电缆的两个插头)上都有这个电阻。
如果将设备插座中的两个 CC 引脚短接在一起,然后插入一根高容量电子标记芯片电缆,会发生什么情况?5.1kΩ 电阻器会与 1kΩ 电阻器并联,从而获得 840Ω 的总压降。电源在 CC 线路上看到的就是这个压降,它超出了 5.1kΩ 的预期。具体来说,分压器将电压拉得过低,因此电源无法为 VBUS 提供 5V 电压。
树莓派 4 在初版中时就是这样做的,因此,你无法通过 Type-C 充电器使用有电子标记芯片的线缆为树莓派 4 供电——你需要一条无电子标记芯片的线缆,或者一条 USB-A 转 USB-C 线缆,再配上 USB-A 电源。当然,树莓派的官方电源线上也没有标记。它也不一定要有电子标记芯片,毕竟电子标记芯片是用来询问未知电缆的,而它们自己的电缆顾名思义就是已知电缆。
我没看到的问题是:他们为什么要这么做?
如果查看原理图,就会发现连接 CC 引脚的 PD_SENSE 网连接到 PMIC 上的一个模拟输入引脚。您现在可能已经猜到了——他们确实实现了了标准中的"电压监控"部分,但没有正确执行"标记"部分。它们究竟能进行怎样的电压监控,确实值得怀疑,但至少具备了这种能力。
在即将推出的树莓派版本中解决了这个问题,如果你有旧版本,可以自己打补丁。虽然我们还不知道他们是如何打补丁的,但我们最终一定会知道的。
这就是你应该知道的有关电阻、电子标记和难以捉摸的 VCONN 的全部内容。