· Ivan Li  · 8 min read

造一个支持隔离、PD 供电的全速 USB-C HUB Rev.2

第二版的隔离 USB-C HUB 开发笔记。对上一版进行了修正和改进,依旧使用 ISOUSB211 作为隔离芯片,改用了 CH335F 作为 HUB。

上次设计的第一版基本上可以说没通过验证……思路是对的,但是时间比较赶,出现了一些大的纰漏。 这次重新设计了一版,大部分还是延续了之前的经验,做出了一些简化和改进。

Rev.2 设计目标

  • 去掉 DC-DC 隔离电源 外部供电一般使用 AC-DC 转换器,目前常见的都是隔离型的,我就不再在 USB-C HUB 里面再弄一个 DC-DC 隔离了。
  • HUB 改成 3 个外部 USB-C 下行端口 由于前面去掉了两个 DC-DC 隔离电源模块,体积就可以做小了。 还是考虑到内置的大功率 PD 供电,还是得考虑使用铝合金外壳。我挑选了下公模外壳,决定选 632575mm 的尺寸。这样导致前面板只适合放三个 USB-C 接口了。进而决定:
    • 使用 4 个下行端口的 HUB 芯片就行 -> CH335F
    • 内部主控芯片占用一个下行端口,用于与 host 通信

修复 USB PD DC-DC 电路

上一版直接漏掉了两个 boost 二极管,导致 DC-DC 部分没有正确启动。 不过也不是大问题,毕竟第一次用 Boost-Buck 芯片,本想着少打一次样的,结果没省下。后续单独对整个 USB1 端口的 USB PD 部分单独打样验证,已经没问题了。

实现 SW2303 高侧检流

SW2303 只支持低侧检流。低侧检流在多电源系统中可能导致“共地问题”: 当多个电源(A和B)共用同一地平面且均采用低侧检流时:

  1. 电源A输出的电流可能通过负载后,经共享地线流经电源B的检流电阻返回
  2. 导致:
    • 电源A的测量电流值 = 真实输出电流 - 跨接电流ΔI
    • 电源B的测量电流值 = 真实输出电流 + 跨接电流ΔI
    • 系统总电流仍满足ΣI测量 = ΣI实际,但各端口独立测量值失真

SW2303 的参考设计是使用低侧检流。说实话,我没找到电源使用低侧检流的可行性。除非,这只是一个聊胜于无的方案?毕竟 DC-DC 芯片是采用高侧检流方案的,或许是前级兜底的信心吧。不知道以后有没有机会让我了解到他真正的价值。

至少来说,对于 HUB 类应用,一旦下游设备同时连接了两个 HUB 端口,低侧检流肯定是不准的,而我平常测试设备,调试器和设备供电很可能会选择连同时连 HUB,所以至少出于这点,我也希望实现高侧检流。更别提更复杂的连接组合了。

为了实现高侧检流,我使用 G=1V/V 的高侧电流检测芯片进行转换,转换后输出的电压范围就是能被 SW2303 接受的、等价于低端检流的信号。

SW2303+INA138 实现高侧检流的原理图

用 CH335F 作为 HUB 芯片

之前使用的 CH338X 不确定是不是我焊接反了烧坏了还是焊接不良,一片好贵的说!目前确定了外壳尺寸,所以不需要那么多下行接口了,就直接换成 CH335F 了。CH338X 的各种功能配置快把我绕晕了。

CH335F 介绍

CH335F 便宜的说!不超过 CH338X 三分之一的价格还容易购买。 支持独立过流检测和独立电源控制,支持每个端口独立指示灯,够用了够用了。 CH335F 还支持免晶振应用,对于我这种业余玩家跑起来能快不少,验证通过后再增加晶振来避免偏离 HUB 规范。 CH335F 使用 QFN28_4x4 封装,至少比 CH338X 的 QFN48_7x7 好焊点。希望这次不会出问题了。

TPS25810 USB-C DFP 控制器

见鬼了,上一个版本完全忘记加这个芯片了(或者说加错芯片了),大失策。 TPS25810 的作用是,通过 USB-C DFP 的控制,可以实现 USB-C DFP 控制器和输出控制开关。

芯片支持双输出协同限流:

TPS25810 端口电源管理(PPM)和 Power Wake 实现

我在电路上预留了这部分设计,我准备前期先用硬件实现(用 0Ω 电阻连接)来关控两个 5V 输出的 USB 端口 2 和 3,后期在我的固件中用软件管理三个端口的输出功率,再去掉这个 0Ω 电阻。

下行端口 2 和 3 的供电

独立供电

这两个端口分别使用 DC-DC 转换电路独立输出 5V 电压。参考设计如下:

TPS62933DRLR 8V-21V to 5.00V @ 3A 参考设计原理图

TPS62933DRLR 8V-21V to 5.1V @ 3A

下行端口独立供电原理图

后面想了下,由于 TPS62933 支持最大持续电流是 3A,完全没冗余好像也不太合适,虽然我自己用不太可能用不支持 PD 的端口跑 3A,但是设计上还是不应该这么搞,所以就没选这个方案。另一个原因就是独立供电电路还是要时刻保持工作,因为 USB-C DFP 控制器需要一直提供 5V 的 VCONNV_{CONN} 供电才行。这样看来独立供电作用不太大,毕竟不能插入 USB device 后再启动。

共用供电

我选择了 TPS53319 作为 5V 的 DC-DC 电源转换芯片。TPS53319 和 TPS62933 一样,是一款全集成高频同步整流降压开关变换器。

TPS53319: 德州仪器的高效8A或14A同步降压转换器,集成MOSFET,适用于低外部元件和紧凑型电源系统。

TPS53319 5.1V 6A 输出在线参考设计

看参考设计没什么问题。

Back to Blog

相关文章

查看更多 »
STM32G031G8U6 Nano 开发板

STM32G031G8U6 Nano 开发板

用了一段时间的 STM32G031G8U6 这颗 MCU,回过头来完善了一下之前做的开发板,尽量做到符合推荐设计。

电子负载开发笔记

我准备开发第一版的电子负载,并在此记录一些流水账。这个版本作为我第一次开发电子负载以及运放相关的硬件,希望能实现 CC 模式和 CV 模式,不求精度,只求大概。

在本地运行 Act Runner

这是一个快速步骤备忘录,用于快速手动在 ArchLinux 上运行 Act Runner 并连接到 Gitea 实例。