带MUX可正反插的TYPE-C转HDMI+USB3+PD+VGA - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

专业版 带MUX可正反插的TYPE-C转HDMI+USB3+PD+VGA

  • 1.7w
  • 75
  • 207

简介:带MUX切换的TYPE-C转HDMI+USB3.1+PD,MUX使用VL171,兼容VL170。主控使用CS5268,兼容CS5266。

开源协议: GPL 3.0

(未经作者授权,禁止转载)

创建时间: 2023-01-14 15:23:19
更新时间: 2024-01-19 09:56:07
描述

0.勘误

DS08qZNKfg0yH7nZtHlhq6s6ctPSSUvvEeQ4zYSj.png

今核对发现Q1、Q2 MOS管接错(如上图),正确接法如下图。此接法错误不影响正常使用,此MOS仅作用为拔出时放电用,目前已更正。感谢@雷老师讲电子 勘误

uEmJPqnFDsuV2ahIsc9axM54bGfapSRPeYvwYxsL.png

1.简介

hfp4029OJefVnocMqeUgDeoFE6mPYPG3B6he3FpQ.jpeg

kj3LbgqrqB6ZtKItZMocgyWbcpel9NnDUUtg8mSB.jpeg

35UGLgIAIejjVeW1rHO2ckwYvOpyNaWd51anuJ3G.png

CS5268是USB TYPE-C 转 HDMI1.4b 4K-30Hz 带PD3.0、USB3.1、VGA的控制器。

兼容任天堂SWITCH,大多数Win笔记本,支持视频输出的手机(大部分华为旗舰手机)。

是CS5266的上位,本人做过CS5266的工程,转跳链接:https://oshwhub.com/aknice/type-c-zhuan-huan-qi

本工程是将CS5266改为了CS5268,并且在此基础上多了MUX芯片。

MUX芯片是TYPE-C DP设备不可缺少的部分,有了此芯片才能实现扩展坞母座的正反插。

对应:

扩展坞正插+反插

主设备正插+反插

一共四种情况。

若不加MUX芯片使用TPYE-C母座时设备端可以正反插,但是扩展坞端仅有正插能输出图像!但是两面都可以PD快充。

2.TYPE-C DP 知识补充

以前CS5266的文章已经详细讲过为何需要MUX芯片了转跳链接:

https://oshwhub.com/aknice/type-c-zhuan-huan-qi

简单地说就是使用小尾巴或者直接一个公头的形式直连PD控制器,可以省一个MUX芯片

需要母头的话必须加MUX芯片

3.MUX芯片——VL17X系列

以VL170为例

VL170是4通道DisplayPort源输入和2通道USB 3.1主机输入到USB-C连接器之间使用的MUX芯片,MUX开关信号性能最多支持USB 3.1。 

sxk0nKQUw70XTPbXDTrNfBM2iiHdLR9Jby2XA1zj.png

我们需要传输视频的时候还要传输USB3信号,因此EN是H,AMSEL是L

5l7j73tELJGYdY7oHb4xQulqMmCsxmLgmPNRetoP.png

fqXakqfY6kAo1bQhrepZ03iHL3cV92Ptfp4rwg0E.png

 

VL170和VL171区别主要是VL170传输DP1.3,VL171传输DP1.4,两个芯片PIN对PIN

 

fqpy2n4bgnO9mvNUh1mTffi4FNwc45RgzbFS8QQV.jpeg

nVl47Vo4SWnKetOmwqHEaO4QYoUTFwxLyKGFd3Mj.jpeg

这里给出一个视频接口规格表

接口 传输信号 支持的分辨率/刷新率
VGA 模拟 2560x1600
DVI-D 数字 2560x1600@60Hz
HDMI 1.4b 数字 2560x1600@60Hz
HDMI 2.0b 数字 3840x2160@60Hz
HDMI 2.1 数字 7680x4320@60Hz
DisplayPort 1.1 数字 2560x1600@60Hz
DisplayPort 1.2 数字 4096x2160@60Hz
DisplayPort 1.3 数字 5120x2880@60Hz
DisplayPort 1.4 数字 7680x4320@60Hz

4.MUX控制逻辑

CS526X芯片中,有个别代理的芯片GPIO5脚可以做VL17X的POL控制

qxAwSbWVF0D5tJLSc0FCPF9XRxKUYS2B1tCOyhZT.png

但是在淘宝上买的到的CS526X芯片是没有的

目前我个人认为最好的方法是加MCU来控制,当然可以加晶体管电路做匹配,但是这样调参数比较复杂

4.1判断TYPE-C正反插的方法

那么我们可以有两种方法可以来判断TYPE-C目前是正插还是反插

4.1.1 CC判断

关于CC脚PDDP通讯(注意区分PDDP

USB PD是在CC(Configuration Channel) pin上传输,PD有个VDM (Vendor defined message)功能,定义了装置端ID,读到支持DP或PCIe的装置,DFP就进入替代(alternate)模式。

如果DFP认到device为DP,便切换MUX/Configuration Switch,让Type-C USB3.1信号脚改为传输DP信号。AUX辅助由Type-C的SBU1,SUB2来传。

pGZGiBoEgqMno623X0A1K6psAz5QBLSwznAB0x2F.png

把其中一段波形放大看:

1.充电器 CC先提供充电规格选择给PD设备

sl2M2H4oRjxIotPhU2IzORUxG602fjAL7NUMVOCE.png

PD控制器选择电源规格

bfZkwPOXaDZkI8WYVrpJyWvlIbuNNuLmOCa3VhFP.png

VDM,进入替代模式

5NgxEWJO2LvjKfvKnYnXHDFBhKcHAspBlnKNg4Ro.png

DFP确定DP

TlidoMbLG14IaYljYnvHZIA1ZYbKkLIZWG4g4mMI.png

此过程上述所说的DP通讯过程一致

 

那么通过上面分析你就会发现正插时CC1被拉低,只有CC2在确定PD和DP规格,反插则相反。

那么我们判断正插时CC1是否是低电平就好了。

是的,这是一个不错的方法,但是我们检测CC2时如果在CC通讯时检测也有可以会误检测,导致CC通讯异常,而且设备涓流充电时PD充电规格会根据设备要求动态调整的

因此为了避免影响设备通讯,我们尽量不使用检测CC通讯的方法

4.1.2 SBU信号判断

SBU1,SBU2:边带使用(Side Band Use)信号适用于传输非USB信号,它们可以用于模拟音频模式,也可用于可选(Alternate)模式。

网上找了很多文章,也没有具体说有啥用,看上去多用于模拟音频传输。

但是在正反插时SBU总会有一个信号是高,一个是低,因此可以使用SBU信号判断正反插。

 

----------------------------分隔线----------------------------

2023.07.09

今发现使用SBU信号判断正反插时,对于全功能TYPE-C是有SBU信号的

但是只有USB3传输功能的TYPE-C口,插上去,就没有SBU信号

因为没有SBU信号导致外挂的MCU对控制VL171芯片的POL口没作用了

因此对于只有USB3传输功能的TYPE-C口只能跑USB2的速度

建议还是使用CC信号进行判断正反插控制POL

 

----------------------------分隔线----------------------------

 

4.2控制TYPE-C正反插的方法

上面知道如何判断后,我们还需要一个控制方法 

我们可以使用硬件电路的方法的来控制,把SBU输入接到三极管,做个逻辑电路,SBU1高POL就高这样。

这个方法不错,但是也不推荐,既然SBU有时候有用,那为了不影响SBU传输信号,加MCU,使用ADC检测那是比较好的方法了。

MCU我用了一颗CH552T作为主控。

这颗MCU也是目前我主用的一款小MCU。

  • 外围非常简单,只需要复位电路、下载按键、晶振即可,比传统单片机还要少个USB转TTL电路
  • 超便宜1.5块钱一颗
  • 支持多种开发环境:KEIL,Arduino等
  • 4路8位ADC
  • 2组PWM
  • 2组UART
  • 内置USB控制器
  • 内置5V转3.3V的LDO,外部供电也可以去到2.8V

这款MCU多用在键盘上,便宜又高性能的MCU,不过没有硬件IIC比较可惜。

这是扩展坞上CH552T部分的原理图

QprIJ4ZcXbBiuIzon18YmuIlw6514nH5vn05A1Ha.png

我将SBU1和SBU2分别接在了P1.4和P1.5中

规格书对应AIN1和AIN2

vxkdtonZ1agUJaZkl30qV3sXbDoQuowzxOJY0eFv.png

作为ADC使用,输入SBU的高低判断正插还是反插

整个控制逻辑实际上非常简单

4.3 CH552代码

代码实际上非常简单,而且还是Arduino写的

就是将SBU1和SBU2接入CH552的P1.4和P1.5,作为ADC检测他们的电平

接着判断AD值SBU1<10且SBU2>70,就是反插,POL拉高,反过来就拉低POL脚,其他默认情况下就把POL拉低

MlWS9u6zRcbEbnUL4I7gTU99wX0BsvHSc1grR4Xn.png

4.4控制电路还需要注意的地方

实际上POL脚默认状态就是需要拉低的

VL17X芯片POL脚上,下拉电阻使用100K

AmMWjVUZK18wFBSIig7K6HwdIxlG3v8z7OmqMcWf.png

而这边CH552控制POL脚需要一个电平转换电路

A903TUt2E49eFxoMSLlT0jU96Lw50AYvUckAhUi5.png

由于我们使用5V供电给CH552,因此IO输出是5V,而VL17X芯片POL脚虽然没有说最大的电平值

3ypyXVpjHHsUMgs1JbymQePLVDJLfAKslWR8nXrf.png

但是为了VL17X芯片的稳定,不建议输入超过它自身电压的输入,因此建议此处逻辑高电平输入3.3V~2.7V。

当然本人实测直接给5V也能正常运行。

有POL指示灯

OC4SNJz0GyYJtlx4zYZxleci9U9O85Fdi3lT2c1B.png

正插时灭,反插时亮

8YGbeW1tl5eT5NBEgUS78VEeF43XlYxlxTkSNcfT.png

5.CH552固件烧录

板上预留了一个升级和一个复位按钮,升级仅需使用升级按钮

eAPI1pGJNqUgWp7qVfVOuaA5yt08iOv9bmXgCiK1.png

下载好附件的固件 CH552T for CS5268.7z 后解压得到两个文件,一个是.ino的源码,一个是hex文件,固件上传的是hex文件,不需要搭环境再编译

gD1oYGQx8YLln4R2CkjL9NX2ySRxAjhkU5ksTYFu.png

解压附件 Tools.7z,管理员身份运行 WCHISPTool_Setup.exe 安装CH烧录工具

dflHstB1bpfwEUWZzrusR8rxtRfwdHit370KeO9m.png

打开工具

7sBOcZ5KLnRHtSIUnUFRZiGB28ycTnFKaw6QDhaS.png

点击CH55X系列,选择CH552

horSlcONC0suo1OaK8ohvfGa6IOiXONIRtFEqvf2.png

选择hex固件

W7GpWMk5INVnHHF1luqZ5WFRGhXe3xWdfQxuDKjk.png

接着把TYPE-C数据线A端插入电脑

w3mDhQVI62al3Z2t7FgSlfKvOCgNcN9nQgeu8vIT.jpeg

按住升级按钮后插入TYPE-C数据线到PD充电口

注意,一定要先按住,再插线,不要弄反,不要插到左边的设备TYPE-C口,要插在下图所示的PD充电口

yB3LUtj4vTxkNnFLasJWhCBEjt2oWpnZTidw4ts4.png

此时工具能识别到CH552,识别到就可以松手了,不用一直按着。

然后就可以点击下载烧录进去了

zziuB7YrfAkVJTwpf2QWuzcna08ZpAQwRg0nh6Nx.png

下载完成有成功提示,接着可以拔掉数据线了

mflQV8kmawc5SkG7LQbQSIE8NRCau7o9gYfBIg3L.png

6.LAYOUT部分

使用1.0板厚,四层板,阻抗结构JLC04101H-7628,可以白嫖

HDMI,DP部分走100欧姆阻抗匹配

TYPE-C的B2、B3、A10、A11,HDMI的D0、D1、D2、CLK信号需要走

 

s1oy1D0zVAYC7g46tZN9pgHFEstZguIIqlMIInzc.png

 

USB部分走90欧姆阻抗匹配

TYPE-C的A2、A3、A6、A7、B10、B11信号需要走

xdJeONB8n6inJaU57FRyIgoXcPBHEKODMPbOU1ax.png

7.芯片购买

马云网搜索CS5268芯片或CS5266芯片即可

PDD我看到也有一家卖,不知怎么样,可以试试

8.实测

1.任天堂SWITCH正反插+扩展坞正反插

2.笔记本HDMI+USB3+PD快充

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
工程视频/附件
工程成员
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP