首页 > IT业界 > 正文

从树莓派4 USB-C设计失误 看嵌入式系统的接口升级

2019-07-11 15:23 来源:快科技

  近日,树莓派4 Model B(树莓派4B)正式发布,从处理能力,通信方式,对外接口都进行了全方位的升级,为嵌入式开发者带来了福音。

  收到货后,不少开发者怀着激动的心情开始尝试使用,结果却发现USB-C接口在设计规范性上出现了严重的问题。

从树莓派4 USB-C设计失误 看嵌入式系统的接口升级

  带USB-C接口的树莓派4

  经过实际测试发现,树莓派4上面的这个USB-C接口,其CC1和CC2是连接在一起的,并共用了一颗5.1k的电阻下拉到地。

  这个设计看似非常巧妙,USB-C接口的控制做到了极致简单,只需要一颗5.1k下拉电阻。当外接的USB-C 数据线是不带Emark芯片的情况下,一起都可以正常工作。

  因为这类USB-C 数据线的CC2是悬空的,只有CC1有连接到对端,所以,这种数据线跟树莓派4B的USB-C接口母座一连起来,就非常好的符合了Sink端的设计规范,即CC1上,有一个5.1k的电阻下拉到地。

从树莓派4 USB-C设计失误 看嵌入式系统的接口升级

  树莓派4B在使用不带Emark 芯片的连接线时的连接情况

  但是,USB TYPE-C规范里面,还规定了一种带Emark 芯片的数据线(Cable),这种数据线的CC2上,有一个1K的下拉电阻,用来告知DFP端的CC识别芯片,需要往CC2上提供VCONN Source。

  一旦跟这样的数据线连接起来,树莓派4 Model B就会出现严重问题,因为CC1和CC2连接起来后,会跟数据线上的1K到地电阻并联,形成一个比1k电阻还小的阻抗,从而满足了USB-C规范中Audio Adapter Accessory Mode的连接规范,被电源端误认为是一个模拟耳机设备,从而拒绝供电。

从树莓派4 USB-C设计失误 看嵌入式系统的接口升级

  树莓派4B在使用带Emark 芯片的连接线时的连接情况

  通过上图我们可以看到,Emark连接线上的1k电阻会导致,CC1建立失败,1k电阻和5.1k电阻的并联,会导致树莓派4B被认为是一个Audio Adapter Accessory Mode。


  解决这个问题的方法也很简单,只需要在CC1和CC2上各接一个5.1K电阻到地,互相独立就行了。

  树莓派4B在USB-C接口上的设计,其实属于入门级设计,因为这个接口仅仅用来进行5V供电和一个USB2.0 通信而已,并无复杂的音视频及USB 3.0功能。

从树莓派4 USB-C设计失误 看嵌入式系统的接口升级

  在实际的嵌入式开发中,一个USB-C接口的功能,可能远不止于此。下面我们就大功率供电供电、高速信号传输、双C口DRP控制三点进行阐述。

  第一, 需要使用USB-C接口来获得9V/12V/15V/20V的供电电压。

  很多嵌入式系统具有非常复杂的功能,仅仅5V的供电,是无法满足要求的。那么这个时候,只是通过在CC1和CC2上单独设置5.1k下拉电阻,就不够了,而是必须使用USB PD控制芯片,最好是能够灵活配置各种电压的USB PD控制芯片,例如LDR6015和LDR6021就可以实现这个功能。

  某些系统设计中,甚至希望USB PD控制芯片自动去判断适配器的最高功率档,让电源适配器直接供应最高功率给嵌入式系统,这个时候,就可以使用LDR6015Max,可以不需要任何的控制,直接获得最高功率。

  第二, 需要使用USB-C接口进行高速视频信号传输的应用开发。

  USB-C接口,可以同时支持10G/b的USB 3.1Gen2数据传输和4K高清视频传输。但是要让Sink端进入DP ALT mode,这个是吧必须使用一颗USB PD Controller,例如LDR6282等。

  这类USB PD控制芯片,充当的是一个交通管理员的角色,通过USB PD通信,对USB-C 数据线内的高速差分对通路进行配置,让数据信号和视频信号适配到合适的差分对上。

  第三, 双C口DRP功能控制。

  很多嵌入式应用不仅仅使用单个USB-C口,还可能会有两个USB-C口,其中一个C口用于供电,另外一个C口用于进行高速数据及视频信号传输。

  但用户使用过程中,并不确定两个中的哪一个口会插上电源,或者多媒体设备,因此需要满足双C口盲插识别和控制,最典型的应用是USB-C接口的显示屏和投影仪。

  这就属于比较复杂的USB PD控制功能了。目前市面上仅仅有LDR6282可以满足这个需求。

从树莓派4 USB-C设计失误 看嵌入式系统的接口升级


  用于双C口DRP控制的USB PD芯片LDR6282

  综上所述,我们可以看出,对于USB-C接口仅仅用于供电和Debug功能的嵌入式系统,USB-C接口并不需要使用任何芯片控制,通过CC1和CC2各自独立下拉一个5.1k电阻到地即可。对

  于需要用到大功率供电或者高清视频传输功能的嵌入式设计,则必须要使用USB PD控制芯片。

文章内容来源于网络,不代表本站立场,若侵犯到您的权益,可联系多特删除。(联系邮箱:[email protected]