发作品签到
专业版

PD拓展坞USB3.1+HDMI+千兆网卡_v1.0

工程标签

588
0
0
5

简介

带PD充电USB3.1拓展坞,PD2.0 + 3×USB3.1 + HDMI(4K@30Hz)+ 千兆网口。

简介:带PD充电USB3.1拓展坞,PD2.0 + 3×USB3.1 + HDMI(4K@30Hz)+ 千兆网口。

开源协议

CC BY-NC-SA 4.0

(未经作者授权,禁止转载)
创建时间:2024-05-17 22:54:53更新时间:2024-11-11 10:58:29

描述

声明

        带PD充电USB3.1拓展坞,PD2.0 + 3✖USB3.1 + HDMI(4K@30Hz)+ 千兆网口。

        本工程为CC-BY-NC-SA协议(即创作共用-署名-非商业性-相同方式共享),要以同样方式共享其工程进行演绎,且需要标注原作者署名以及来源,禁止用于商业行为!请大家自觉遵守开源协议,共同维护开源环境。

        本工程一次性成功费用大概50元左右,多为贴片元件,对芯片焊接和动手能力有较高的要求,不适合入门小白手残党,请慎重复刻。如有其他错漏疏忽之处,还请各位大佬嘴下留情,理性指正,大家相互交流学习,开源不易,大家共勉。

        本示例工程外壳用PCB加螺柱螺母焊接组装,存在很大的装配误差以及设计缺陷,因此只做示例展示用,大家伙有条件还是上3D打印为宜。

        本工程为TypeC母座接口设计,需要配一根全功能TypeC数据线使用;测试中发现通讯过程中接口晃动容易导致断联,可靠性方面存在不足,因此对TypeC母座接口质量要求较高,可能这也是市面上大多数拓展坞都采用带线公头设计的原因。

 

工程简述

        日常使用平板的时候发现平板只有一个TypeC输出口,有时需要一边充电一边传输数据的时候很不方便,于是萌生了搞一个TypeC拓展坞的想法,既然要DIY是吧,那必须得上点强度,收集了一些相关资料参考后,确定了拓展坞的总体方案。

        原理框图如图所示:

        主控部分采用CS5266AN,该芯片带PD控制,并支持音频和HDMI(最高4K@30Hz)输出;需要配合VL170这类通道切换芯片实现TypeC母座正反插(如为带线公头设计可省略该芯片)。
        USB拓展部分采用GL3523,该芯片可实现1出4USB3.1 拓展,并且支持读写呼吸灯指示。
        网卡部分采用Realtek的RTL8153B-VB-CG,芯片为1000M向下自适应网卡,支持电源转换和指示灯定制输出。
        电源转换部分采用南芯的SC8721,是一款内置MOS的升降压芯片,主要用于输出稳定5V电压,保证后级各接口供电稳定。

 

工程介绍

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
关于PD主控芯片CS5266AN:
        该芯片主要负责平板和充电器的CC信号通讯、充电控制以及视频信号输出,PD快充功能就是靠这个CC信号来确定的,充电器根据平板发出CC信号来决定输出电压,这里具体的握手协议由平板和充电器协商就行,我们只是用CS5266AN将平板和充电器的沟通桥梁搭建起来。

        TypeC正反插时信号对接的示意图如上(图片来源于知乎,侵删),CS5266AN本身带有TypeC的正反插识别功能,但是它并不能自行切换通道,因此还需配合VL170高速通道切换芯片,总之目的就是将左边和右边的USB信号和DP信号分别对应接上。当芯片通过CC信号识别到数据线反插时,POL(23脚)送出高电平触发VL170切换通道,才能使USB信号和视频信号都送到他们指定的位置。本工程由于接口布局和方便布线需要,对TypeC接口引脚信号进行了镜像调整,完全不影响实际使用。大家测试时如果遇到正反插POL信号不跳变的情况,可以尝试升级CS5266AN固件,我买的芯片就是因为批次比较早,出厂时还未完善这个功能,测试的时候怎么试POL都不送出翻转信号,联系厂家升级固件后立马能翻转了,在附件里给出了升级所需工具和固件(CS5266AN升级时数据线接到PD充电输入口),大家可按需自行升级。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
关于网卡芯片RTL8153B-VB-CG:
        该芯片主要负责网络信号和USB信号的转换,RTL8153B-VB-CG支持1000M向下自适应,自带电源输出、定制LED灯和Flash拓展等功能,电源输出1.0V有LDO和开关输出(需要外接电感)2种形式选择,3.3V只有LDO稳压器输出一种。本工程采用了内部电源输出方式(1.0V为DCDC;3.3V为LDO),实测工作温度在30度左右。另外还预留了3.3V和1.0V跳线短接焊盘,可以自行选择电源方式。至于定制LED功能就有点小复杂了,需要用到PC调试工具(RtPGtoolUI)将对应代码写入到RTL8153B的EFUSE中,注意这个EFUSE的写入次数是有限制的,大概能写个6~7次左右就写满了。另外MAC地址和其他功能的开启也可以用RtPGtoolUI设置,下面简单介绍一下用RtPGtoolUI工具设置LED的方法。

        首先打好对应的8153B驱动,确保电脑能识别网卡。然后打开RtPGtoolUI(推荐使用v2.0.19版本,该版本可以手动设置Flash内存),一般过一会儿就自动识别8153B并显示当前MAC地址,默认会进到EFUSE配置,点击Dump可以读取当前芯片的配置状态,然后我们可以根据需要在CURRENT栏设置指定的MAC地址,中间的Characteristics栏可以设置相应功能使能,本工程只用勾选CTAPSHORTGPHY_FLOW_CONTROL(空闲节能模式,按需勾选)就行。这里需要注意,本工程用LED2引脚(24脚)作为网口绿灯控制引脚,而8153B的LED2是一个多功能复用引脚,手册中对该引脚进行了说明:如果启用了“GPIO模式”或“LANWAKEB模式”或“EEPROM模式”或“SPIFlash模式”中的一个,则LED2引脚会丧失LED指示灯功能,因此本工程如果想正常控制网口的绿灯,则SPI_FLASH_ENEEPROM_ENLAN_WAKE_ENLINK_OKLAN_DIS都不能勾选!!!下面说明一下8153B设置LED寄存器的方法。

        参考技术手册可以看到,8153B的LED控制由DD90h~DD91h共16个数据位设置,其中Bit0~Bit11分别控制3个LED引脚的接通亮灯和通讯闪烁,单独拿出LED0(Bit0~Bit3)举例,下面简单绘制了一个LED0引脚的配置表。

        LED1和LED2引脚的配置同理,然后说说LED工作模式配置(Bit12~Bit15)的方式,Bit12~Bit15主要负责配置各LED的工作模式和有效电平,Bit15控制工作模式选择,官方给出了2种工作模式,大概就是指定网络通讯闪烁和全网络通讯闪烁的区别;Bit12~Bit14分别是各LED有效电平选择,这个很好理解了,本工程是低电平点亮,因此Bit12~Bit14全写0。大概绘制了一个总体配置表格。

        表格中示例是为了让大家便于理解各数据位的用法,回到本工程,本工程用到了LED2(绿灯)和LED0(黄灯),并且我们的预设目标是千兆网接入时绿灯常亮,在千兆网通讯时绿灯闪烁;百兆或十兆网接入时黄灯常亮,百兆或十兆网通讯时黄灯闪烁。因此Bit11~Bit8(LED2)中的数据应为 1100 B;Bit3~Bit0(LED0)中的数据应为 1011 B;LED1(Bit7~Bit4)没用到我们全部写 0 即可。然后本工程明显是指定网络通讯才闪烁的,并且所有引脚都是低电平有效,因此Bit15~Bit12中的数据为 0000 B。那么总结下来我们应该写入的数据为0000 1100 0000 1011 B(0x0C0B)。这里注意RtPGtoolUI中LED的配置顺序为先排低八位再排高八位,因此我们需要将上面的数据高低位对调后才能正确控制(高低位对调后为0x0B0C),将“0B0C”填入“LED_SEL_CFG”栏中既是正解。
        前面已经强调过了,LED2引脚为多功能复用引脚,因此LED2想要正常控制,不能勾选SPI_FLASH_ENEEPROM_ENLAN_WAKE_ENLINK_OKLAN_DIS这几个选项,大家可以自行动手将绿灯引脚改为LED1,PCB稍微改动一下连线就可避免该问题。然后其他根据自己需要设置完成后,点击“Program”进行配置写入。等进度条推完显示“PASS”则表明配置写入成功。
        下面介绍一下8153B的SPIFlash(使用SPIFlash需要在写入配置时勾选SPI_FLASH_EN,这将导致LED2指示灯不能正常使用,介意的自行将绿灯换至LED1引脚)。SPIFlash用于拓展外部存储,我们可以将驱动文件(需要转换成ISO格式)写入SPIFlash中,8153B在接入时如果检测不到驱动,会在电脑上加载出一个盘符,手动安装驱动后即可正常识别网卡了。我们先要将要写入的驱动压缩成一个ISO格式的文件(可以使用UltraISO,或者暴力点压缩成ZIP后直接改后缀名也是可以的,但可能会有兼容性的问题),然后打开RtPGtoolUI识别到8153B后,在右侧Model Select栏选择FLASH,下方的ISO栏选择刚才制作好的驱动ISO文件,再在下方的Flash Size栏填入存储芯片的大小,然后点击“Program”等待驱动文件写入(进度条跑完也先不要动它,直到显示“通过”或者“错误”),这个过程网口的指示灯会不断闪烁,大概8分钟这样显示PASS就表示写入完成了(文件越大写入时间越久)。
        官方文档推荐使用8M(W25Q64)的SPIFlash,实际测试使用32M(MX25L256)调试工具会无法识别内存大小,不知是不是8153B识别内存大小限制的问题,因此要使用v2.0.19版本,该版本可手动设置Flash大小。但是测试中发现写入的文件大小似乎也有限制的,WIN7、10、11这3个版本的驱动加起来已经将近18M了,进行过多次尝试都写入失败,所以舍弃了WIN11(新系统的兼容性较好,有可能会自带8153B驱动),缩减后大概12M左右就可以正常写入了。本工程PCB预留了SPIFlash的焊盘位,大家自行按需焊接。
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
其他注意事项:
        1.大家买TypeC接口和USB3.0接口尽量买质量好一点的(比如富土康),目前测试下来发现TypeC母座方式的拓展坞相对来说接触不是很可靠,很容易因为被触碰到导致接口松动就会断联,有时也会因为接触不良导致通讯速度上不来,但是平板端的TypeC接口端倒是挺牢靠的。同样USB3.0接口也是,前期买的便宜货插上U盘怎么都不识别3.0,以为是拓展芯片GL3523的问题折腾了好久,最后发现是USB3.0接口的问题,真坑......
        2.D15、D16的快恢复二极管1N5819必须得加,目的是降低MOS管的体二极管导通压降。5V电源的条件下如果压降过大会导致无法达到SC8721的启动电压而无法正常工作,1N5819压降只有0.3V左右,即使输入电源只有5V也可以满足要求。

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

附件

序号文件名称下载次数
1
PD拓展坞功能演示.mp4
6
2
调试工具.rar
29
3
相关芯片技术文档.rar
9
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航