ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条

这篇具有很好参考价值的文章主要介绍了ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条

简介

像素(Pixel):像素是指由图像的小方格组成的,这些小方快都有一个明确的位置和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子。

分辨率(Resolution):是屏幕图像的精密度,是指显示器所能显示的像素有多少。

像素格式(Pixel Format):将RGB三种颜色进行量化,每种颜色用8Bit表示,RGB共需要24位,即RGB888格式。

LCD屏幕的接口有RGB、MCU、LVDS、MIPI等。

时序

对于显示屏来说,是在不断的进行像素刷新的,从左往右一行一行的刷新,一行刷新完后接着刷新下一行,整个过程就是从左往右,从上往下进行刷新的。在刷新的过程中每个像素点都赋予不同的颜色,一直刷新到最后一行最后一列时,一帧图像也就显示出来了,然后再重头开始重复刷新。

每个不同尺寸的显示器都有自己对应的有效显示区域(Addressable Video)和无效显示区域(Border)。像素的刷新过程是从无效区域的左上角开始刷新到右下角结束。比如4.3寸屏的真正有效区域为480*272,其余的都是无效区域,但它们会占用刷新时间。

驱动TFT显示屏的关键是正确分析其水平和垂直扫描时序,何时输出的图像才有效。由下面两张图可以很明显的分析
ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条

下图中的HSync为行同步信号,它有效时,开始一行的刷新;VSync为场同步信号,它有效时表示一帧刷新的开始。Back Porch:后沿,Front Porch:前沿。
行扫描时序如下,场扫描时序同理,只是对应数值不同。
ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条

ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条
ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条

分析

通过下面的4.3寸屏的管脚图可知,我们设计的显示屏驱动模块的端口数为LCD_RGB、LCD_DCLK、LCD_HSYNC、LCD_VSYNC和LCD_DE。SPI开头的端口是触摸用的,这里只是显示功能可不用管。

可针对行时序和场时序分别使用一个计数器,行时序的计数器范围为0——524,场时序范围为0——285。

顶层文件,需要注的是480*272显示屏的驱动时钟是9Mhz,而我们给的系统时钟是100Mhz,所以需要用到clk_wiz IP核:

module lcd_test( 
    input				clk		    ,
    input				rst_n	    ,
    output      [7:0]   lcd_r       ,
    output      [7:0]   lcd_g       ,
    output      [7:0]   lcd_b       ,
    output              lcd_dclk     ,
    output              lcd_vsync   ,
    output              lcd_hsync   ,
    output              lcd_de                    
);								 
     	 
  clk_wiz_0 clk_wiz_inst
   (
    // Clock out ports
    .clk_out1(lcd_dclk),     // output clk_out1
    // Status and control signals
    .reset(!rst_n  ), // input reset
   // Clock in ports
    .clk_in1(clk));  

lcd_driver lcd_driver_inst
(
    .clk         (lcd_dclk    ),
    .rst_n       (rst_n      ),
    .lcd_r       (lcd_r      ),
    .lcd_g       (lcd_g      ),
    .lcd_b       (lcd_b      ),
    .lcd_vsync   (lcd_vsync  ),
    .lcd_hsync   (lcd_hsync  ),
    .lcd_de      (lcd_de     )  
);

endmodule

约束文件,根据J11扩展口和4.3寸TFT显示屏管脚图一一对应分配即可:

set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_b[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_g[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[7]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[5]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {lcd_r[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports clk]
set_property IOSTANDARD LVCMOS33 [get_ports lcd_clk]
set_property IOSTANDARD LVCMOS33 [get_ports lcd_de]
set_property IOSTANDARD LVCMOS33 [get_ports lcd_hsync]
set_property IOSTANDARD LVCMOS33 [get_ports lcd_vsync]
set_property IOSTANDARD LVCMOS33 [get_ports rst_n]
set_property PACKAGE_PIN J18 [get_ports {lcd_r[7]}]
set_property PACKAGE_PIN H18 [get_ports {lcd_r[6]}]
set_property PACKAGE_PIN G19 [get_ports {lcd_r[5]}]
set_property PACKAGE_PIN G20 [get_ports {lcd_r[4]}]
set_property PACKAGE_PIN F19 [get_ports {lcd_r[3]}]
set_property PACKAGE_PIN F20 [get_ports {lcd_r[2]}]
set_property PACKAGE_PIN F16 [get_ports {lcd_r[1]}]
set_property PACKAGE_PIN F17 [get_ports {lcd_r[0]}]

set_property PACKAGE_PIN K19 [get_ports {lcd_g[7]}]
set_property PACKAGE_PIN J19 [get_ports {lcd_g[6]}]
set_property PACKAGE_PIN K17 [get_ports {lcd_g[5]}]
set_property PACKAGE_PIN K18 [get_ports {lcd_g[4]}]
set_property PACKAGE_PIN M19 [get_ports {lcd_g[3]}]
set_property PACKAGE_PIN M20 [get_ports {lcd_g[2]}]
set_property PACKAGE_PIN L19 [get_ports {lcd_g[1]}]
set_property PACKAGE_PIN L20 [get_ports {lcd_g[0]}]

set_property PACKAGE_PIN D19 [get_ports {lcd_b[7]}]
set_property PACKAGE_PIN D20 [get_ports {lcd_b[6]}]
set_property PACKAGE_PIN M17 [get_ports {lcd_b[5]}]
set_property PACKAGE_PIN M18 [get_ports {lcd_b[4]}]
set_property PACKAGE_PIN L16 [get_ports {lcd_b[3]}]
set_property PACKAGE_PIN L17 [get_ports {lcd_b[2]}]
set_property PACKAGE_PIN J20 [get_ports {lcd_b[1]}]
set_property PACKAGE_PIN H20 [get_ports {lcd_b[0]}]

set_property PACKAGE_PIN E19 [get_ports lcd_clk]
set_property PACKAGE_PIN G17 [get_ports lcd_de]
set_property PACKAGE_PIN E18 [get_ports lcd_hsync]
set_property PACKAGE_PIN G18 [get_ports lcd_vsync]
set_property PACKAGE_PIN U18 [get_ports clk]
set_property PACKAGE_PIN L15 [get_ports rst_n]

ZYNQ7020标准J11扩展口管脚:
ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条

4.3寸TFT液晶屏的对应的管脚接口原理图:
ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条
测试结果:
ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条文章来源地址https://www.toymoban.com/news/detail-462633.html

到了这里,关于ZYNQ7020(黑金)纯verilog驱动4.3寸RGB接口TFT液晶屏(AN430)显示彩条的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA实现jpeg图片解码RGB 纯verilog代码编写 提供基于zynq得工程源码和技术支持

    jpg是一种压缩的图片格式,之所以压缩是为了减小图片所占空间,jpg压缩原理这里不罗嗦,可以自行百度或者b站,大佬讲的比我好,jpg解压缩就是逆向过程,用opencv啥的解压缩就是一句话的事儿,但对于fpga硬件来说就是大型工程了。 本设计使用zynq7100位平台,将jpg图片的c语

    2024年02月07日
    浏览(56)
  • 【正点原子STM32】LTDC LCD(RGB屏)实验(TFT LCD、RGB LCD信号线、驱动模式、LTDC驱动LCD-TFT显示器、LTDC控制器、DMA2D-GPU、DMA2D颜色填充步骤)

    一、RGB LCD简介 二、LTDC介绍 2.1、LTDC简介 2.2、LTDC控制器框图介绍 2.3、LTDC相关寄存器介绍 2.4、LTDC相关HAL库驱动介绍 三、RGB屏基本驱动步骤 四、编程实战1 五、DMA2D介绍 5.1、DMA2D简介 5.2、DMA2D框图介绍 5.3、DMA2D相关寄存器介绍 六、DMA2D颜色填充的具体步骤 七、编程实战2 八、

    2024年04月16日
    浏览(61)
  • 关于配置tft液晶屏时,屏幕不显示遇到的问题

    本人新手小白,在使用单片机配置tft屏幕时,发现屏幕一直显示白屏(如下图)。但是仔细检查多遍后都无法找到问题所在,于是在CSDN上搜索了很久都没有发现类似问题的解决方法。无奈只能重新回到代码上寻找原因,终于功夫不负有心人让我找到了问题并成功解决。以下向

    2024年02月16日
    浏览(44)
  • FPGAC程序固化——ZYNQ7020

            刚开始学习FPGA的小伙伴们,想必都会遇见到一个问题就是程序固化。在FPGA开发过程中,我们不仅需要编写代码实现所需功能,还需要将这些代码固定在FPGA芯片上,以确保其稳定运行并符合项目需求。尽管此过程听起来可能有些复杂,但它却是使得FPGA成为如此强大工

    2024年02月21日
    浏览(36)
  • ZYNQ AC7020C的“点LED”实验

    一、创建 Vivado 工程 1、启动 Vivado 2、在 Vivado 开发环境里点击“Create New Project”,创建一个新的工程 3、弹出一个建立新工程的向导,点击“Next” 4、在弹出的对话框中输入工程名和工程存放的目录。需要注意工程路径“Project location”不能有中文、空格,路径名称也不能太长

    2024年02月20日
    浏览(39)
  • Alinx ZYNQ 7020 LED调试--in RAM

    设置拨码开关为JTAG方式 烧写LED bit stream a. 点击“Program device”烧录程序到FPGA中(重新上电程序就丢失了) b. /01_led/led.runs/impl_1/led.bit 程序烧录到Flash中 ZYNQ与以往的直接烧录Flash不同,首先必须PS,然后烧录PL,参考这个实例。

    2024年01月18日
    浏览(44)
  • AD9361+zedboard(ZYNQ7020)的SDK工程(上)

    1.准备工具 vivado2018.3 HDL源码:https://wiki.analog.com/resources/fpga/docs/releases no_os:https://github.com/analogdevicesinc/no-OS 注意:HDL源码下载的版本要与vivado一致,我这里是2018.3 HDL版本选择 2.构建vivado工程 2.1编译源文件 解压下载的HDL文件的压缩包 进入该文件夹C:AD9361hdl-hdl_2019_r1project

    2024年02月13日
    浏览(46)
  • Zynq7020 使用 Video Processing Subsystem 实现图像缩放

    没玩过图像缩放都不好意思说自己玩儿过FPGA,这是CSDN某大佬说过的一句话,鄙人深信不疑。。。 目前市面上主流的FPGA图像缩放方案如下:1:Xilinx的HLS方案,该方案简单,易于实现,但只能用于Xilinx自家的FPGA;2:非纯Verilog方案,大部分代码使用Verilog实现,但中间的fifo或

    2024年01月16日
    浏览(41)
  • ZYNQ 7020 之 FPGA知识点重塑笔记一——串口通信

    目录 一:串口通信简介 二:三种常见的数据通信方式—RS232串口通信 2.1 实验任务 2.2 串口接收模块的设计 2.2.1 代码设计 2.3 串口发送模块的设计 2.3.1 代码设计 2.4 顶层模块编写 2.4.1 代码设计 2.4.2 仿真验证代码 2.4.3 仿真结果 2.4.4 板上验证        通信方式一般分为 串行

    2024年02月03日
    浏览(49)
  • 【Linux下6818开发板(ARM)】在液晶屏上显示RGB颜色和BMP图片

    (꒪ꇴ꒪ ),hello我是 祐言 博客主页:C语言基础,Linux基础,软件配置领域博主🌍 快上🚘,一起学习! 送给读者的一句鸡汤🤔: 集中起来的意志可以击穿顽石! 作者水平很有限,如果发现错误,可在评论区指正,感谢🙏         在嵌入式系统的开发中,我们经常需要在液晶

    2024年02月08日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包