系统软件实现
本方案中选用STC公司的STC89LE516RD+,其工作频率为0~80MHz,内部FLASH的储存空间为63Kb,RAM的空间为1280字节。使用KEIL C51编程,系统软件可以分为两个部分,一个是ANX9011的初始化的处理和ANX9011的状态机的变化,另一个是ANX9030的初始化的处理和ANX9030的状态机的变化。主循环程序如下。
void main(void){
Init_mcu();
Init_9011();
Init_9030();
while(1){
ANX9011_IntProcess ();
ANX9011_TimerProcess ();
ANX9030_Interrupt_Process();
ANX9030_Timer_Process ();
}
}
1 ANX9011的初始化
在ANX9011的复位电路的上升沿,DEVAD_CLK48B引脚的状态决定ANX9011的I2C地址。假定此引脚为低,I2C地址为0X60和0X68被选择。
首先确认ANX9011存在且能正常工作,代码如下。
c1 = 0;
while (1){
HDMIRX_reset_pin = 0;
delay_ms(10);
HDMIRX_reset_pin = 1;
delay_ms_(10);
c = i2c_read_P0_reg(0x02, &c1);
if ((c == 0) && (c1 == 0x21)) {
c = i2c_read_P0_reg(0x03, &c1);
if (c == 0) && (c1 == 0x90))
break;
}
}
如ANX9011存在,且能正常工作,开始初始化。
2 ANX9030的初始化
在ANX9030的复位电路的上升沿,DEV_ADDR_SEL引脚的状态决定ANX9030的I2C地址。假定此引脚为低,I2C地址为0x72和0x7A被选择。
首先确认ANX9030存在且能正常工作,代码如下:
while (1) {
ANX9030_Resetn_Pin = 0;
delay_ms(2);
ANX9030_Resetn_Pin = 1;
delay_ms(2);
c = ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDL_REG, &c1);
if ((c == 0) && (c1 == 0x30)) {
c = ANX9030_i2c_read_p0_reg(ANX9030_DEV_IDH_REG, &c1);
if((c == 0) && (c1 == 0x90))
break;
}
}
ANX9030在上电复位后,除了像素时钟检测(CKDT)和热插拔检测(HPDT)功能外,ANX9030的大部分功能处于待机状态。软件需要正确的配置其他寄存器。
总结
目前市场上需要的HDMI分配器都需要带信号复制和增强功能。据笔者所知,在市场上出售的HDMI分配器中,较少采用HDMI信号直接分两路的方案。一般都采用HDMI的接收器加上几个HDMI的发送器来完成。随着HDMI市场的成熟,此类产品的需求量会逐渐增加。本文详细说明HDMI分配器的系统结构、芯片特点、设计注意事项和HDMI分配器的测试方法及系统软件设计思路,可作为广大音视频工程师的
考资料。

数字平板电视持续增长,可望2008年在全球的电视市场取得超过50%的份额。平板电视(包括...

如今的电子设备中所包含的软件代码量动辄达到数百万行。用不了几年,设备软件代码量又...

血压是人体重要的生理参数之一,对其进行精确测量,有利于早期发现和鉴别高血压类型,...

黄氏兄弟初到北京时物色下的珠市口的那家两层小店,本是一家国营服装厂的门市部,名叫...

HAND(汉德)系列产品作为国内领先产品,将工业市场现场仪器、仪表产品技术含量提高到...