0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用FPGA逻辑来驱动VGA显示器

电子森林 来源:电子森林 作者:电子森林 2022-05-09 14:24 次阅读

如果能够用FPGA能够驱动显示器,就可以做不少与视频相关的实验,很多FPGA开发板使用了比较简单的VGA接口,连接非常简单,如下图:

18276d1c-cc5e-11ec-bce3-dac502259ad0.jpg

只需要5跟线就可以连接VGA显示器

183eaf86-cc5e-11ec-bce3-dac502259ad0.jpg

连接VGA的原理图

1860e4c0-cc5e-11ec-bce3-dac502259ad0.jpg

VGA连接器

然后我们就可以用FPGA的逻辑来做各种游戏了:

188436be-cc5e-11ec-bce3-dac502259ad0.jpg

经典的Pong游戏

关于如何用FPGA逻辑来驱动VGA显示器,可以参考页面:

然而,现在的显示器基本上都使用的是HDMI连接器,VGA接口的显示器只能在古老的实验室里才有。所以我们要做视频的一些项目,就要用FPGA来输出HDMI的信号,HDMI的连接器有不同大小,常用的体积比较大,信号线的定义如下图:

18a35468-cc5e-11ec-bce3-dac502259ad0.jpg

HDMI连接器

18c1907c-cc5e-11ec-bce3-dac502259ad0.jpg

HDMI的信号线

标准的HMDI连接器有19个管脚,只有其中的8根是以差分信号的方式来传输高速视频信息的,所以只需要8根FPGA的管脚,配制成7对差分TMDS输出即可。

18db6754-cc5e-11ec-bce3-dac502259ad0.jpg

时钟的速率需要多快呢?如果我们要生成一个640*480 RGB 24bpp的视频信号,刷新频率为60Hz,每帧有307200个像素,每一个像素为24位(R|G、B各8位),需要0.44Gbps的又用数据才能传输。再考虑一些屏外区域的信息,实际的分辨率需要大一些,比如800*525.

18f5270c-cc5e-11ec-bce3-dac502259ad0.jpg

1919d818-cc5e-11ec-bce3-dac502259ad0.png

一个像素需要3 * 8位来传输,实际上HDMI还需要添加2bits以便对数据进行加扰,也就是需要3*10位来传输,每个像素需要30bits。

加扰用的额外数据用于接收端对接收到的数据进行同步,下面是TMDS差分信号的时序:

1936461a-cc5e-11ec-bce3-dac502259ad0.jpg

对于640*480分辨率的显示,我们需要至少250MHz的时钟信号,如果要获得更高的分辨率则需要更高的时钟频率,小脚丫FPGA模块中使用的Lattice的XO2-4000HC系列FPGA以及Intel的MAX10器件内部的时钟通过锁相环生成,可以达到400MHz。支持640*480分辨率是没有问题的,如果要获得更高的分辨率可以采用DDR输出的方式。

195a07c6-cc5e-11ec-bce3-dac502259ad0.png

显示驱动逻辑

1982187e-cc5e-11ec-bce3-dac502259ad0.png

屏幕的分布

通过逻辑编程,可以在显示屏上实现如下的效果:

19aa2df0-cc5e-11ec-bce3-dac502259ad0.jpg

用HDMI显示器实现的Pong游戏,比VGA实现的要效果好很多

19c242c8-cc5e-11ec-bce3-dac502259ad0.jpg

PacMan游戏

具体的代码实现可以参考页面

讲完了FPGA驱动HDMI,有没有可能用单片机/微控制器也能实现同样的效果呢?一般的MCU真的够呛,但树莓派基金会推出的RP2040却是可以做到的:

虽然RP2040的标称时钟为125MHz,但可以轻松超频到250MHz,能够满足640*480分辨率的时钟要求了

RP2040的PIO可以通过编程配置称为4对差分输出的串行信号

具体如何实现,看一下技术大神Luke Wren在RP2040上用GPIO通过Bitbang的方式得到的DVI接口

下面是他的电路原理图(用KiCad绘制的,有源文件)

19df378e-cc5e-11ec-bce3-dac502259ad0.png

有位小哥使用他的代码,在SparkFun的RP2040板上实现的效果:

19fe9994-cc5e-11ec-bce3-dac502259ad0.jpg

在显示屏上显示文字:

1a1a46ee-cc5e-11ec-bce3-dac502259ad0.jpg

显示月亮:

1a588896-cc5e-11ec-bce3-dac502259ad0.jpg

当然也可以播放视频

有人专门制作了一个板子,RP2040超频到252MHz

1a777d64-cc5e-11ec-bce3-dac502259ad0.jpg

关于用RP2040驱动HDMI的更多资源可以在Github搜索HDMIRP2040.

原文标题:用FPGA/树莓派RP2040驱动HDMI的资源

文章出处:【微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21729

    浏览量

    603047
  • HDMI
    +关注

    关注

    32

    文章

    1695

    浏览量

    151868
  • 树莓派
    +关注

    关注

    116

    文章

    1707

    浏览量

    105610

原文标题:用FPGA/树莓派RP2040驱动HDMI的资源

文章出处:【微信号:xiaojiaoyafpga,微信公众号:电子森林】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA实现VGA的彩色图片显示

    VGA进行控制,实现任一彩色图像的显示。通过采用FPGA设计VGA接口可以将要显示的数据直接送到液晶
    发表于 03-24 11:54 4361次阅读
    基于<b class='flag-5'>FPGA</b>实现<b class='flag-5'>VGA</b>的彩色图片<b class='flag-5'>显示</b>

    显示器vga接线

    显示器vga接线
    发表于 09-04 20:56

    液晶显示器-VGA 视频接口及显示规范

    液晶显示器-VGA 视频接口及显示规范 本部分规定了液晶显示器接收设备中视频VGA信号外部接口互连的电气特性标称值和机械配接要求。
    发表于 11-21 16:00

    求教:如何用VGA显示出汉字,并能在VGA显示器上随机移动?

    数电问题请教思路:如何用VGA显示出汉字,并能在VGA显示器上随机移动?
    发表于 01-08 19:49

    FPGA实战演练逻辑篇27:VGA显示驱动子板设计

    显示器的专用D/A转换芯片AVD7123,FPGA通过OUPLLN连接驱动ADV7123芯片产生供给VGA
    发表于 05-20 10:40

    Xilinx FPGA入门连载68:VGA驱动ColorBar显示

    ,本实例需要用户自己准备好一台VGA显示器和相应的VGA线,VGA线用于连接SF-SP6开发板的J1插座和显示器
    发表于 04-11 09:51

    请问如何查询液晶显示器VGA协议??1366*768

    手头有一个1366*768的联想液晶显示器,我想用fpga驱动,使用VGA接口,但是不知道这个显示器的参数,比如
    发表于 08-13 17:11

    例说FPGA连载28:VGA显示驱动子板设计

    ``例说FPGA连载28:VGA显示驱动子板设计特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1c0nf6Qc SF-
    发表于 09-05 18:46

    例说FPGA连载78:基于VGA显示器的720p的广告机设计之功能概述

    `例说FPGA连载78:基于VGA显示器的720p的广告机设计之功能概述特权同学,版权所有配套例程和更多资料下载链接:http://pan.baidu.com/s/1c0nf6Qc 本实例的基本架
    发表于 02-28 21:30

    液晶显示器VGA视频接口及显示规范

    液晶显示器VGA视频接口及显示规范 本部分规定了液晶显示器接收设备中视频VGA信号外部接口互连的电气特性标称值和机械配接要求。本部分适用于
    发表于 03-03 16:34 83次下载

    VGA图形控制FPGA实现

    经过硬件平台的验证,基于FPGAVGA 图形显示器已达到设计要求,可实现彩条、汉字、小图像和大图像的显示,并可实现FPGA 器件对
    发表于 06-08 09:55 2151次阅读
    <b class='flag-5'>VGA</b>图形控制<b class='flag-5'>器</b>的<b class='flag-5'>FPGA</b>实现

    VGA显示与基于FPGAVGA彩色图片显示设计

    FPGAVGA 进行控制,实现 任一彩色图像的显示。通过采用 FPGA 设计 VGA 接口可以将要
    发表于 11-30 14:57 63次下载
    <b class='flag-5'>VGA</b><b class='flag-5'>显示</b>与基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>VGA</b>彩色图片<b class='flag-5'>显示</b>设计

    应用于彩色显示器VGA时序信号和彩条图像信号的设计与实现

    利用现场可编程逻辑器件产生VGA时序信号和彩条图像信号,并将其作为信号源,应用于电视机或计算机等彩色显示器的电路开发,方便彩色显示器驱动控制
    的头像 发表于 05-03 09:09 4321次阅读
    应用于彩色<b class='flag-5'>显示器</b>的<b class='flag-5'>VGA</b>时序信号和彩条图像信号的设计与实现

    显示器接口针脚定义及接法,VGA Pin Definition

    显示器接口针脚定义及接法,VGA Pin Definition 关键字:VGA针脚定义 显示器接口针脚定义及接法
    的头像 发表于 09-20 19:45 5780次阅读

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

    常见的显示屏(LCD TFT之类的)驱动数据线一般都是16bits,RGB565的,VGA不一样,它就5根有意义的线,别的都是地线(图中的地址码0 1 2 3没有使用):VGA
    发表于 11-05 18:05 14次下载
    <b class='flag-5'>FPGA</b>、MCU(stm32&51)<b class='flag-5'>驱动</b><b class='flag-5'>VGA</b><b class='flag-5'>显示器</b>_电阻分压法硬件设计_<b class='flag-5'>VGA</b>电阻网络分压