一、前言
昨天对于HDMI多路视频切换系统进行了简化。现在只包括了一个 九路和五路的切换设备。之前制作的基于STC8G1K08遥控器已经不适合现在使用。因为它主要是控制这款四路切换器。下面利用这款单片机重新改装制作多路HDMI切换控制器。
这里有三种外接控制键盘和摇柄。这个16按键红外遥控器是原来九路HDMI切换器配的遥控器。利用它可以控制现在 九路+五路视频切换。主要有一个问题,那就是它的输出是红外脉冲信号。这需要通过单片机对输出脉冲信号进行解码。
将红外遥控器外壳打开,令人感到惊奇的是,居然使用了一个 8PIN 的芯片来读取 17 个按键,具体原理是什么呢? 芯片的型号为 PRT008C,网络上很难找到它的数据手册,只有一些简单的介绍。不知道谁那里有它的资料能够共享出来。
为了便于测试,将遥控器的电源、地线以及输出信号引出。外部三芯接口中,红色线为 3V电源线,中间为地线,另外一个是输出信号线。然后将它的外壳再合在一起。
给遥控器增加 3.3V电压,使用示波器观察信号波形。按动遥控器按钮,观察不同按钮对应的波形。遥控器输出的是带有 38kHz 调制的信号波形。经过测试,遥控器在5V下也能够工作。为了便于单片机读取波形信息。外部搭建一个二极管整流滤波电路。使用 二极管、上拉电阻以及电容对于调制波形进行解调。这样调制的波形,就会被解调。这是解调好的信号波形。上下波动幅度大约为 1.5V。经过电阻分压之后,便可以在单片机 IO口上形成数字信号。
▲ 图1.3.1 红外模块发送的调制信号
下面使用 STM32F030单片机 的IO端口 PF0 读取波形,同时将逻辑电平在 PF1 输出。可以看到波形的电平被正确识别为 0 和 1。
▲ 图1.3.2 单片机读取的波形信息
AD\Test\2023\HDMISwitchSTC32.PcbDoc
下面设计控制电路板。核心单片机是 STM32F030,下面是红外遥控器接口,根据刚才实验中的调制信号的解调电路的参数,将解调后的信号连接PF0,单片机通过串口连接 WiFi 模块,与前面制作的HDMI视频切换模块进行通信。这是设计的单面电路板。经过一分钟制版,获得了测试电路板。经过检查,电路板非常完美。
▲ 图1.4.1 电路原理图
▲ 图1.4.2 实验电路板PCB版图
焊接测试实验板,上面包括两个 0Ω 跳线。下面对其进行调试。
给电路供电5V,板上稳压电路提供 3.3V单片机工作电源。下载程序,测量单片机读取红外信号。单片机将读取的逻辑电平从 PF1 输出,可以看到,单片机能够将红外调制信号正确的识别。下面通过软件编程,让单片机根据脉冲编码的不同,获得不同按键信息。
设置单片机定时器1,使其达到40kHz 的中断。在中断中采集遥控信号波形。这里显示了在中断程序中PF1反转,输出 20kHz 的方波,验证了中断频率为 40kHz。在中断中,读取PF0 输入的遥控信号,可以看到一个按键对应前面一组脉冲,以及接下来的短的脉冲。可以看到正脉冲的宽度不同,下面根据正脉冲的宽度不同进行波形编码。
将接收到的遥控器编码转换成按键编码,然后再通过WiFi 发送HDMI 切换命令。使用 UDP 协议,最终经过测试,功能一切正常。最终验证了制作方案有效。
D:\zhuoqing\window\ARM\IAR\STM32\Application\Test\2023\TestSTM32F030K6_EXP\Core\Src\main.c
本文测试了利用已有的一个红外遥控器,进行解码之后,通过WiFi控制 HDMI视频切换器的方案。这种解决方案为之后系统的改进提供依据。
通过有人WiFi模块控制HDMI多路切换: https://zhuoqing.blog.csdn.net/article/details/133408215
[2]基于STC8G1K08制作HDMI控制器: https://zhuoqing.blog.csdn.net/article/details/133412881
[3]HDMI多路切换器的红外遥控器: https://zhuoqing.blog.csdn.net/article/details/133897744
[4]复制 HDMI 多录视频切换器的红外遥控器信号: https://blog.csdn.net/zhuoqingjoking97298/article/details/133918466
[5]基于STC32F单片机制作的HDMI多路视频切换控制器: https://zhuoqing.blog.csdn.net/article/details/133933600
[6]PRT008C【工厂直供】8脚红外遥控器MCU 红外发射芯片IC: https://detail.1688.com/offer/693973915134.html