FPGA、MCU(stm32&51)驱动VGA显示器_电阻分压法硬件设计_VGA电阻网络分压

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Mr_liu_666/article/details/102761178

常见的显示屏(LCD TFT之类的)驱动数据线一般都是16bits,RGB565的,VGA不一样,它就5根有意义的线,别的都是地线(图中的地址码0 1 2 3没有使用):

VGA显示器在市面上流通很久了,集成度很高,集成好了的东西一般都有成型的驱动模块,比如ADV7123:

太贵了,算了算了。

这里VGA和FPGA(stm32或51)的连接采用一种结构更简单的方法,VGA的时钟输入是3.3V的,通过小的去耦电容,电阻耦合到FPGA上即可。VGA规定,RGB三根线的输入电压范围是0~0.714V,通过电阻网络分压做出(VGA的输入阻抗是75Ω,配合外部电阻,实现3.3V分压获得0.714V即可)。参照下图设计我搭建了multisim仿真电路,测试了到达RGB三根线的电压值,例子的电压也是高于0.714V 的,应该是高于此值会满色,但是不会烧毁,但是稳妥起见,我保证了每一路的输入电压都不超过0.714(快速刷新时可能有超过,不过时间短,没关系)。

综上所述,我的设计可以满足要求,把每个值都限制在测算值以下就可以防止被烧坏。再次注意,VGA的输入阻抗是75Ω,在设计和测试仿真的时候,就想着我们的阻抗匹配网络是在串联一个75Ω的电阻,有效信号是中间连接处电压值即可。

搭建面包板电路实测一下:

以上是16bits全接3.3V的(也就是16位数据线都输入1),最大值超过0.714了,所以我们需要像仿真电路一样控制输入最大值。

面包板连接的电路十分不稳定,于是我焊了块转接板:

焊好了以后一定要用万用表再测一遍每一路的阻值,看一看是否还满足要求,此步骤可以找出漏焊或虚焊的情况。接下来引脚分配,分好了一定写在贴的标签上,否则每次连线都重新对照将会很麻烦。

确认无误之后开始连线,高频电路对连线长度相等与否、平行与否、直角拐弯还是圆滑拐弯都有讲究,然而此电路主时钟25M,输出时钟仅有25000000/800=31.25KHz,频率蛮低,这才可以使用电阻分压网络。连接FPGA(或stm32),在程序中分配好引脚,做好接口函数。

烧录并且测试,一次性成功,没有返工修改。再贴两张动图(源码及讲解见下一篇):

猜你喜欢

转载自blog.csdn.net/Mr_liu_666/article/details/102761178
今日推荐