一个VGA显示器接口显示一个图片需要五个信号:
1)R、G和B信号,也就是红、绿、蓝三原色。
2)HS和VS(水平同步信号和垂直同步信号)。
R、G、B三原色是模拟信号,HS和VS是数字信号。
下面介绍如何驱动VGA连接器:
VGA接口的脚13和14(HS和VS)是数字信号,所以可以直接通过FPGA的两个IO口来控制(或者还可以接上低阻值的电阻,比如:10欧或者20欧)。
脚1、2和3(R、 G 和 B)是常值为0.7V的75欧的模拟信号。由3.3V的FPGA管脚输出,用三个270欧的电阻刚好满足要求。连接头输入的电压驱动电阻为75欧,所以3.3V变成为:3.3*75/(270+75)=0.72V ,
非常接近0.7V。
5, 6, 7, 8 和 10脚接地。
VGA的扫描方式是非交叉式扫描。
同步的极性:
水平和垂直方向都是低电平有效。
RGB显示
FPGA直接用IO口去连接VGA的五个信号接口了,并且三原色信号接口输入的只可能是数字信号(0或1),因此驱动液晶屏上显示的颜色最多也就8种,一般来说,可以在FPGA和VGA接口间加一个DA模块的设计,根据DA位数的大小决定实现的配色效果。理论上来说每个信号是可以有256(就是把0-0.7V电压256等分)个电平值,那么RGB三个信号接口一共最多就会有256的3次方就是1400多万种色彩,在需要做真彩色的设计中一般都是需要AD模块的。但是如果仅仅用VGA来显示诸如工业上的一些简单的菜单,就不需要那么丰富的色彩,也许8色,也许64色或者256色就足够了。
利用上图的电阻网络实现DA的效果,使VGA能得到4x4x4=64种颜色的。这样在工业控制中已经足够了。
本文工程文件下载:
(在Spartan-3E Starter Kit上实现8色显示)
参考资料:
1)实验七、基于verilog的VGA简单接口驱动 -- EDN助学—CPLD学习小组 -- EDN电子设计技术
http://group.**/1375/21344.aspx
2)一种64色VGA的设计思路 -- 特权's Blog
http://blog.**/ilove314/174544/message.aspx
3)VGA接口扫盲篇 -- 特权's Blog
http://blog.**/ilove314/143579/message.aspx
4)VGA接口之硬件结构 -- likee的福地
http://blog.**/likee/111649/message.aspx |