Killoser

  • 478 主题
  • 503 帖子
  • 4813 积分
  • 身份:版主
  • E币:1890

一个下拉电阻引发的“血案”?树莓派 4 的设计是怎么翻车的?

2019-7-11 15:09:38 显示全部楼层
新出的树莓派4出了个看起来有些坑的“BUG”,这使得它不能兼容自带e-mark电子标记的USB Type-C线,比如苹果Mac的充电线。

43.jpg
两周前,树莓派 Raspberry Pi  发布了最新的产品 Raspberry Pi 4 Model B,提供了一个 USB-C 供电端口。当时大家还在惊喜于该产品“飞跃式”的配置升级。

可惜的是,现在它被发现USB-C口和很多Type-C线不兼容。

树莓派4 是Raspberry Pi 第一款支持 USB-C 的设备。

我们从树莓派官方发布的电路板原理图可以看到,树莓派4的电源设计出了问题。(https://www.raspberrypi.org/documentation/hardware/raspberrypi/schematics/rpi_SCH_4b_4p0_reduced.pdf)

问题的根本原因是,树莓派4 USB Type-C接口上的共用cc下拉电阻。 看看下面的原理图。
4234.jpg
截取自Raspberry Pi 4 Model B原理图
Pi_CC_resistors.png
树莓派4 CC电阻位置

对于大多数线缆/充电器而言,也就是不带Emark芯片的USB-C,这不是问题,因为这类USB-C线仅用通过电缆连接的一条CC引脚,因此将正确地检测到树莓派并接收电力。

问题在于带有两个CC连接的Emark线缆。要理解这一点,请查看Type C规范文档。(https://www.usb.org/document-library/usb-type-ctm-cable-and-connector-specification-revision-14-march-29-2019)
image-1.png
摘自Type-C规范(图4-5)

根据规范,源设备在检测到连接的接收设备之前不会在连接器上提供电源。这是通过将Rd电阻(5.1K欧姆)接地来实现的。有源电缆还使用另一个值或电阻器Ra(800欧姆 -  1200欧姆)发出信号。 Type-C规范有一个表,用于根据CC线的状态查找连接了什么。
image-2.png
摘自Type-C规范(图4-10)

在正确的操作中,充电器将检测Rd电阻(Or Rd Ra cobination)并打开电源。但当使用在两端呈现Ra的有源电缆时会出现问题。在源极侧,一个CC引脚将连接到电缆中的Ra电阻,另一个CC引脚连接到树莓派的CC线。树莓派将两条线连接在一起,因此呈现了电缆树莓派端的Ra和Rd下拉的组合。假设Ra的平均值计算所呈现的电阻仍然给出在Ra范围内的值。(同样注意,当电缆电子设备汲取功率时,允许Ra电阻低于800,因此低于800的电阻也可能被检测为Ra)。

image-5.png
将两个Ra值呈现给源端,会导致树莓派 4 被认为是“音频适配器附件”。

也就是说电源端将被误认为是一个模拟音频接口,从而拒绝为树莓派供电。

2.png
树莓派4 连带Emark 芯片的线缆时
1.png
树莓派4 连不带Emark 芯片线缆时

概括

简单来说,树莓派4 的设计错误,即,USB-C 端口上的两个"CC" 本应该都有自己的 5.1K 电阻,结果 树莓派4 的电路设计允许它们共享一个5.1K 电阻,这一设计破坏了树莓派4与许多 USB-C 充电器的兼容性。


Raspberry Pi 联合创始人 Eben Upton 表示,会在未来版本修正这一设计。眼下比较简单的解决方法是,购买不带e-mark电子标记的线缆或充电器。

最新评论

楼层直达:

bokes

  • 11 主题
  • 53 帖子
  • 289 积分
  • 身份:LV1 技术小白
  • E币:167
bokes 2019-7-11 17:24:02 显示全部楼层
哇塞,出这么大篓子

测量无处不在

  • 29 主题
  • 156 帖子
  • 825 积分
  • 身份:版主
  • E币:3855
不兼容最先的技术,这个有点落后了啊
我要评论
2
15
广告
关闭 热点推荐上一条 /2 下一条
快速回复 返回列表