iPhone 15更新了充电口,由lightning口改为了Type-C口,它所配备的有线耳机也改成了Type-C口。而苹果Type-C有线耳机的供电方案较为独特,有鹤立鸡群的感觉,显示出苹果对协议的独特理解。
但在手机开发过程中,发现苹果耳机搭配部分安卓手机却有一些小插曲,可能无法正常使用,装聋作哑。

问题定位
常规的有线耳机(数字耳机)都是OTG方案,但这个耳机不是,苹果另辟了蹊径。将苹果耳机插入typec转接板测试进行对地阻抗测试。

发现一个CC对地阻抗是5.1K,另一个CC对地阻抗是1K。熟悉Type-C规范的同学可知,这5.1K其实就是Rd,1K就是Ra。
如果是常规的数字耳机的话,则只能测到一个5.1K Rd,测不到1K Ra的。
根据Type-C规范提供的设备类型表,这是一个VPD设备,如下图所示:

既然是VPD设备,vconn powered usb device,顾名思义,那就需要手机端的一个CC(接入Ra的一边,即下图中的CC2)被配置成VCONN,作为电源给给耳机供电。

但是安卓机上,之前面对的都是常规的数字耳机(CC脚上只有一个Rd,OTG类型),通过OTG VBUS给耳机供电,其生态还没cover到苹果耳机这种VPD设备的情形。
而且安卓机上通常CC走线宽度很细,是信号走线,而非功率走线。有的安卓机甚至串接了电阻(100欧姆左右,浪涌防护的作用),如下图所示,不满足苹果耳机依靠CC线供电的要求。

但实验过程中发现:苹果这个耳机也可以通过Vbus供电(猜测是为了兼容安卓)。但关键是,部分安卓机在检测到Rd和Ra时,不会配置手机为OTG模式,仅检测到Rd时才会配置为OTG模式。
解决方案
- 安卓机修改程序,在检测到Rd和Ra时,将手机配置为OTG模式,VBUS输出5V给苹果耳机供电。
- 已发货的手机,用户自然无法更改程序,除了等待厂商OTA,还可以采用如下方案(我和B站网友沟通确认的):用胶带屏蔽掉Type-C的一侧,这样手机就只能检测到Rd或者Ra。如果运气好直接检测到Rd,就会进入OTG模式,VBUS输出5V给耳机供电;如果没检测到Rd,你再换一面插进去。Type-C是中心对称的结构,两侧都有D+/D-,屏蔽掉一侧不影响通信,就像你遮住一只眼睛,照样能走路。


VPD更多信息
手机内部充电芯片的PD控制器的VCONN电源,通过CC脚给Type-C外设供电。如下图手机PD控制器有个VCONN switch。
这些外设便被称为VPD设备(VCONN-Powered USB Device),如苹果的airpods、部分e-mark线缆、Display Port alt-mode。

既然手机的一个CC脚被配置成VCONN通道,给设备供电,那么在电路设计中就要review通路上的阻抗,避免在抽载过大的时候带来压降。也要review VCONN电压大小,是否和外设门当户对,避免和外设不匹配。
在Type-C规范中,VBUS和VCONN都可以给外设供电,但VBUS是一个高达20V的高压轨,适合大功率的场景,但与之匹配的,耐压较高的芯片也更贵。与VBUS相比,VCONN是一个工作于2.7~5.5V之间的低压轨,功率被限制在1W,更适合低功率、低压的场景。坦白说,苹果的设计更为合理,它更省电、更容易把成本做低。
