以下内容给第一次接触VGA的新人参考,错误之处请老鸟指正!
关于 VGA的学习,购买板子上的教程,虽然给了例子但具体的都没讲,只是笼统的给了个 程序,不过话说回来学习还是得靠自己的理解;
VGA 用到的频率和 分辨率有关,当驱动时钟为50MHZ的时候,分辨率 只能为800*600,
(原文件名:V.JPG)
(场同步)
(原文件名:H.JPG)
(行同步),
当然需要分辨率为640*480的时候,需要25MHZ,只要分频一下50MHZ就可以得到。
对于初学者,主要难理解 的 就是 频率和 分辨率显示的关系, 为什么640*480,60HZ刷新频率时候一定要25MHZ呢?用50MHZ为什么不行呢?
这个是因为 640*480 60HZ的时候,每秒刷新60,每次刷新需要时间为16.6ms,也就是场周期为16.6ms,一个场周期要扫描480行(640*480 宽高比),但是实际上真正的行有525行,如图场同步所示,可能会问为什么捏?为什么是有525行而显示的只有480行捏?这个嘛, 你让人家扫描完难道不需要让然休息下,再说了扫完一场(帧)人家还得回到开头那里去,你说不让人休息行不行啊,还有就是快扫描结束的时候人家偷懒颜 {MOD}变浅了(消隐)你咋办呢,一开始人家没进步状态扫描不合格你又咋办呢?所以就让它多干点活么!保证中间部分OK
所以每次行扫描的周期为16.6/525=31.62us,每行的像素为640个,但是实际上真正的像素点有800行,如图场同步所示,所以每个像素周期为31.62/800=39.525ns;
而39.525刚才计算的时候每步我都化掉了后面的小数点,这个不去理他,39.525就是25.175MHZ的频率周期,也就是所为什么640*480 60HZ刷新频率要用25.175MHZ的原因。
那你说我频率稍微快点 或者稍微慢点行不行啊?
我觉得呢,如果 显示640*480 60HZ的话,频率快了,一行它要求的时序是固定的,同步、后沿、显示时序、前沿 显示器做了固定要求,你快了,时序不能达到要求了。人家行同步脉冲要 先96个像素周期,3.81us,你呢来个96个像素,3us,这样的话你显示一帧最后就不是16.6ms了,也就是 最后刷新频率不是60Hz了。
转载标明 来源 作者:愤怒的青蛙
zych_09@163.com
VGA驱动与实现ourdev_648522IPBO98.pdf(文件大小:865K) (原文件名:VGA驱动与实现.pdf)
一周热门 更多>