HDMI 9进1出群控切换器【立创·地文星】
简介
使用立创·地文星开发板作为主控,4颗MS9601A做HDMI切换的HDMI 9进1出群控切换器
简介:使用立创·地文星开发板作为主控,4颗MS9601A做HDMI切换的HDMI 9进1出群控切换器开源协议
:GPL 3.0
(未经作者授权,禁止转载)描述
HDMI 9进1出群控切换器
0.前言
本人之前做过很多HDMI切换器,包括
AG7111方案的3进1出
https://oshwhub.com/Aknice/1dfda80b41104751846aecc99dd9e055
双AG7111+ESP32的5进1出
https://oshwhub.com/Aknice/83d25e9c5f9240499dfcd01eeaa45b82
MS9601的3进1出
https://oshwhub.com/aknice/ms9601
双MS9601的5进1出
https://oshwhub.com/aknice/yin-shi-pi
由于5进1出已经不满足本人的HDMI设备使用需求,虽然可以将两个5进1出级联出9进1出的形式,但是接线太乱了,因此本人使用4MS9601方案制作一个9进1出HDMI切换器
1.简介
使用立创·地文星开发板作为主控,4颗MS9601A做HDMI切换的HDMI 9进1出的群控切换器
立创·地文星主控为国产CW32F030C8T6
带128*32的OLED屏幕辅助显示
支持HDMI拔插状态显示
每个HDMI通道独立按键
2.原理图
先来看框图
因为一颗MS9601A只能1切3,所以使用4颗MS9601A就可以3颗做HDMI9个的切换,出3路,再加一个MS9601A做3个出来的MS9601A的切换出一路,因此是4颗,看框图中HDMI信号流就很清楚了。
电源MS9601A都是使用5V,内部LDO转出3.3和1.8给内部使用。
OLED的3.3V从开发板的LDO转出的3.3V使用
9个按键使用3组ADC,节省IO资源。
每一个HDMI插入和输出口都有IO口做插入拔出的检测。
还有IO去到9601的使能脚
2.1 开发板
由于使用立创·地文星开发板作为主控,因此将使用母座对接到开发板公座
将所有IO引出,基本上用完了所有IO口
主要是IIC的端口是固定的,ADC也是固定那几个的。MS9601A的使能,HDMI的检测都可以挑选任意一个GPIO
2.2 MS9601A
主要是不要搞混HDMI信号,因为有9进,1出,还有转出3组的中间信号一共有13组HDMI信号,他们的DATA,CLK,IIC容易接错
IO口触发其实可以随意接,在软件做调整就好
比如要打开HDMI1口是拉高EN3和EN10,HDMI2拉高EN2和EN10
2.3 指示灯
指示灯使用HPD就可以了,不需要额外从MCU拉
2.4 按键ADKEY
主要是不要有过于接近的分压值,这里的分压值都分的比较开
3.PCB
由于一个HDMI口占用的面积比较大,因此整张板的长度会比较长,所以使用了双面板省钱
当然也有节省的方法,就是使用立式的HDMI座子
OLED和按键放置在左上角,开发板和电源座放置在右上角,HDMI切换芯片在中间
由于使用双面板节省成本,因此需要打多点地孔以获得良好的性能。
HDMI需要做100欧姆阻抗匹配,两正负信号之间需要走等长,<5mil长度
4.代码
使用 礦ision 5 keil 5开发
基于地文星开发板的 0.91寸彩屏 代码为基础开发:
https://wiki.lckfb.com/zh-hans/dwx-cw32f030c8t6/module/screen/0-91-single-screen.html
在此基础上进行修改
4.1 IO口初始化
初始化输出的IO口,使能时钟,配置速度等操作
配置输入的IO口,内部下拉
ADC的配置
由于我们使用的是3个ADC,因此这个需要配置ADC为序列连续转换模式,才能同时采集这几组ADC
参考电压设置为VDDA电压
ADC采样时间推荐为5个ADC采样周期
4.2 ADKEY
这个简单,就是看各个按键按下的AD值,然后做通道判断即可
4.3 插拔检测
这个也简单
检测到高电平就显示OLED反显,低电平就正常显示,就能做拔插检测了
5.外壳设计组装
使用SW绘制亚克力外壳
厚度为2mm的亚克力
导出dxf后导入立创eda制作面板
使用到的装配零件如下:
M2.5*30mm螺丝*4PCS
M2.5螺母*4PCS
尼龙柱3.2*5*18 *4PCS
尼龙柱3.2*5*3 *4PCS
装配完成
6.总结
80以下的成本比起买群控机节省占地,价格也便宜
7.演示
视频演示插拔检测和9个设备切换
评论