1、简单易用,可快速上手
2、流畅支持300个器件或1000个焊盘以下的设计规模
3、支持简单的电路仿真
4、面向学生、老师、创客
1、全新的交互和界面
2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计
3、更严谨的设计约束,更规范的流程
4、面向企业、更专业的用户
专业版 带MUX可正反插的TYPE-C转HDMI+USB3+PD+VGA
简介:带MUX切换的TYPE-C转HDMI+USB3.1+PD,MUX使用VL171,兼容VL170。主控使用CS5268,兼容CS5266。
开源协议: GPL 3.0
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快充。
以前CS5266的文章已经详细讲过为何需要MUX芯片了转跳链接:
https://oshwhub.com/aknice/type-c-zhuan-huan-qi
简单地说就是使用小尾巴或者直接一个公头的形式直连PD控制器,可以省一个MUX芯片
需要母头的话必须加MUX芯片
以VL170为例
VL170是4通道DisplayPort源输入和2通道USB 3.1主机输入到USB-C连接器之间使用的MUX芯片,MUX开关信号性能最多支持USB 3.1。
我们需要传输视频的时候还要传输USB3信号,因此EN是H,AMSEL是L
VL170和VL171区别主要是VL170传输DP1.3,VL171传输DP1.4,两个芯片PIN对PIN
这里给出一个视频接口规格表
接口 | 传输信号 | 支持的分辨率/刷新率 |
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 |
CS526X芯片中,有个别代理的芯片GPIO5脚可以做VL17X的POL控制
但是在淘宝上买的到的CS526X芯片是没有的
目前我个人认为最好的方法是加MCU来控制,当然可以加晶体管电路做匹配,但是这样调参数比较复杂
那么我们可以有两种方法可以来判断TYPE-C目前是正插还是反插
关于CC脚PD和DP通讯(注意区分PD和DP)
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来传。
把其中一段波形放大看:
1.充电器 CC先提供充电规格选择给PD设备
PD控制器选择电源规格
VDM,进入替代模式
DFP确定DP
此过程上述所说的DP通讯过程一致
那么通过上面分析你就会发现正插时CC1被拉低,只有CC2在确定PD和DP规格,反插则相反。
那么我们判断正插时CC1是否是低电平就好了。
是的,这是一个不错的方法,但是我们检测CC2时如果在CC通讯时检测也有可以会误检测,导致CC通讯异常,而且设备涓流充电时PD充电规格会根据设备要求动态调整的
SBU1,SBU2:边带使用(Side Band Use)信号适用于传输非USB信号,它们可以用于模拟音频模式,也可用于可选(Alternate)模式。
网上找了很多文章,也没有具体说有啥用,看上去多用于模拟音频传输。
但是在正反插时SBU总会有一个信号是高,一个是低,因此可以使用SBU信号判断正反插。
上面知道如何判断后,我们还需要一个控制方法
我们可以使用硬件电路的方法的来控制,把SBU输入接到三极管,做个逻辑电路,SBU1高POL就高这样。
这个方法不错,但是也不推荐,既然SBU有时候有用,那为了不影响SBU传输信号,加MCU,使用ADC检测那是比较好的方法了。
MCU我用了一颗CH552T作为主控。
这颗MCU也是目前我主用的一款小MCU。
这款MCU多用在键盘上,便宜又高性能的MCU,不过没有硬件IIC比较可惜。
这是扩展坞上CH552T部分的原理图
我将SBU1和SBU2分别接在了P1.4和P1.5中
规格书对应AIN1和AIN2
作为ADC使用,输入SBU的高低判断正插还是反插
整个控制逻辑实际上非常简单
代码实际上非常简单,而且还是Arduino写的
就是将SBU1和SBU2接入CH552的P1.4和P1.5,作为ADC检测他们的电平
接着判断AD值SBU1<10且SBU2>70,就是反插,POL拉高,反过来就拉低POL脚,其他默认情况下就把POL拉低
实际上POL脚默认状态就是需要拉低的
VL17X芯片POL脚上,下拉电阻使用100K
而这边CH552控制POL脚需要一个电平转换电路
由于我们使用5V供电给CH552,因此IO输出是5V,而VL17X芯片POL脚虽然没有说最大的电平值
但是为了VL17X芯片的稳定,不建议输入超过它自身电压的输入,因此建议此处逻辑高电平输入3.3V~2.7V。
当然本人实测直接给5V也能正常运行。
有POL指示灯
正插时灭,反插时亮
板上预留了一个升级和一个复位按钮,升级仅需使用升级按钮
下载好附件的固件 CH552T for CS5268.7z 后解压得到两个文件,一个是.ino的源码,一个是hex文件,固件上传的是hex文件,不需要搭环境再编译
解压附件 Tools.7z,管理员身份运行 WCHISPTool_Setup.exe 安装CH烧录工具
打开工具
点击CH55X系列,选择CH552
选择hex固件
接着把TYPE-C数据线A端插入电脑
按住升级按钮后插入TYPE-C数据线到PD充电口
注意,一定要先按住,再插线,不要弄反,不要插到左边的设备TYPE-C口,要插在下图所示的PD充电口
此时工具能识别到CH552,识别到就可以松手了,不用一直按着。
然后就可以点击下载烧录进去了
下载完成有成功提示,接着可以拔掉数据线了
使用1.0板厚,四层板,阻抗结构JLC04101H-7628,可以白嫖
HDMI,DP部分走100欧姆阻抗匹配
TYPE-C的B2、B3、A10、A11,HDMI的D0、D1、D2、CLK信号需要走
USB部分走90欧姆阻抗匹配
TYPE-C的A2、A3、A6、A7、B10、B11信号需要走
马云网搜索CS5268芯片或CS5266芯片即可
PDD我看到也有一家卖,不知怎么样,可以试试
1.任天堂SWITCH正反插+扩展坞正反插
2.笔记本HDMI+USB3+PD快充
加载中...
是否需要添加此工程到专辑?