嵌入式系统的VGA接口设计 (包含各种VGA接口的设计)

网友投稿 253 2022-10-25

嵌入式系统的VGA接口设计 (包含各种VGA接口的设计)

LCD接口转换为VGA接口

其场同步信号,宽度为(VSPW+1),之前有场消隐前肩(VFPD+1),之后有场消隐后肩(VBPD+1);

其行同步信号,宽度为(HSPW+1),之前有行消隐前肩(HFPD+1),之后有场消隐后肩(HBPD+1);

可以发现,扫描式LCD接口的同步信号时序和VGA接口是一致的。原因是发明LCD后,尽管显示原理不同,但为了在时序上和CRT兼容,也采用了这样的控制时序。基于此,完全能将LCD接口转换为VGA接口。

图1 三星S3C2410A的LCD信号时序图(来自S3C2410A数据手册)

方案实现

VGA接口只需Hsync和Vsync两个同步信号和RGB三个色彩分量信号。而扫描式LCD接口的同步信号的时序和VGA接口的完全一致,可直接把两个同步信号接入VGA接口。

表1 S3C2410A的LCD控制器与CH7004C的连接

在选择数据格式时,RGB565较合适,因为16位数据已经有6.5万色,完全足够;24位数据时每个像素实际占用32位,4个字节,传输时对S3C2410A的总线资源占用太大。

图2 CH7004C的电路原理图

CH7004C片内有25个寄存器。其中比较关键的是Display Mode,Input Data Format,Sync Polarity三个寄存器。Display Mode显示模式寄存器,片内地址0X00,输入分辨率为640×480,由芯片手册,可选模式从Mode13到Mode17均可。实验中选择的是默认的Mode17,对应参数为0X6A。Input Data Format输入数据格式寄存器,片内地址是0X04,因为输入的数据格式为RGB565,且需打开pass-through模式,故对应参数为0X20。Sync Polarity同步信号极性寄存器,片内地址0X0D,根据输入的Hsync和Vsync的极性来设定,如果是均为负脉冲,则把VSP位和HSP位都置0;如果均为正脉冲,则把VSP位和HSP位都设置为1。实验中,把S3C2410A的LCD控制器的同步信号极性均设为低电平有效,故参数为0X00。

S3C2410A的LCD控制器设置

作为输出源,S3C2410A的LCD控制器也需要进行相应设置。需要的输出分辨率是640×480,16位色(RGB565格式),刷新率60Hz。一共有LCDCON1到LCDCON5共5个寄存器需要设置,具体参数要参考VGA时序规范和LCD时序图(图1)。所需设置的寄存器如表2。

表2 S3C2410A的LCD控制器中需要设置的寄存器

实验及数据

实验中还发现,设定SPR同步信号极性寄存器时,如果都设同步信号为正脉冲有效,接显示器也能正常显示,但是有闪烁。负脉冲有效则无这种情况,故推荐均设置为负脉冲有效。

表3 正常工作时,CH7004C的各个寄存器读出的数据

图3 Linux下外接VGA显示器

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:k8s动态分配存储【helm安装nfs-client】
下一篇:K8s问题【flannel一直重启问题,CrashLoopBackOff】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~