zynq 7000 的HDMI 显示SD卡内图片文件

本文介绍如何在Zynq 7000平台上,通过HDMI接口显示SD卡中的BMP图片。首先需要完成HDMI显示的基础实验,然后在SDK中新建应用工程,添加文件系统支持读取SD卡文件。通过修改display_demo.c文件,使用bmp_read函数读取图片数据,并将其送入VDMA缓存,最终在屏幕上显示。硬件设计只需使能SD0,软件设计涉及文件系统的配置和图片读取函数的实现。示例图片需为24位BMP格式,文件名为shatan.bmp,放置在SD卡根目录。
摘要由CSDN通过智能技术生成

本文是zynq 7000 的HDMI 显示实验 一文的继续,在上文中显示的内容包含在代码中,而本文直接显示SD卡里的BMP图片文件。

你必须先完成了zynq 7000 的HDMI 显示实验 ,才能本实验。

代码下载:

链接:https://pan.baidu.com/s/11-RLOYtl1AyxcQ_XGbw2YQ 
提取码:zvnc 

hdmiSDsrc.zip 是本文代码 17k, satan.zip是样本图片的压缩,其他是上文的内容

硬件设计

本实验的硬件设计基本与zynq 7000 的HDMI 显示实验 相同,所以不必重新建立新的工程,打开其 Vivado 工程,另存为一个新的工程并明命名为“ sd_hdmi_out” ,如下图所示,完成之后打开工程文件夹,删除.sdk 文件夹,这是上一个实验的程序,本实验不需要。

之后软件会自动打开这个工程,点击“ Open Block Design”,打开设计文件。因为本实验要读取 SD 卡的数据,所以要使能 SD0。 双击 ZYNQ7 Processing System打开设置页面,使能 SD0, 如下如图所示(这个要根据你SD卡硬件情况设置):

之后点击“ OK”并保存设置。接着重新生成顶层 HDL。点击 Generate Bitstream 生成新的 BIT 流文件。

生成完成后导出硬件(File->Export->Export Hardware),导出时勾选 Include bitstream。

硬件部分就完成了。File ->Launch SDK 我们就进入软件设计部分。

软件设计

在打开的

FPGA读写SD卡读取BMP图片通过LCD显示例程实验 Verilog逻辑源码Quartus工程文件+文档说明,FPGA型号Cyclone4E系列中的EP4CE6F17C8,Quartus版本17.1。 1 实验简介 在前面的实验中我们练习了 SD 卡读写,VGA 视频显示等例程,本实验将 SD 卡里的 BMP 图 片读出,写入到外部存储器,再通过 VGA、LCD 等显示。 本实验如果通过液晶屏显示,需要有液晶屏模块。 2 实验原理 在前面的实验中我们在 VGA、LCD 上显示的是彩条,是 FPGA 内部产生的数据,本实验将彩 条替换为 SD 内的 BMP 图片数据,但是 SD 卡读取速度远远不能满足显示速度的要求,只能先写 入外部高速 RAM,再读出后给视频时序模块显示 module top( input clk, input rst_n, input key1, output [5:0] seg_sel, output [7:0] seg_data, output vga_out_hs, //vga horizontal synchronization output vga_out_vs, //vga vertical synchronization output[4:0] vga_out_r, //vga red output[5:0] vga_out_g, //vga green output[4:0] vga_out_b, //vga blue output sd_ncs, //SD card chip select (SPI mode) output sd_dclk, //SD card clock output sd_mosi, //SD card controller data output input sd_miso, //SD card controller data input output sdram_clk, //sdram clock output sdram_cke, //sdram clock enable output sdram_cs_n, //sdram chip select output sdram_we_n, //sdram write enable output sdram_cas_n, //sdram column address strobe output sdram_ras_n, //sdram row address strobe output[1:0] sdram_dqm, //sdram data enable output[1:0] sdram_ba, //sdram bank address output[12:0] sdram_addr, //sdram address inout[15:0] sdram_dq //sdram data ); parameter MEM_DATA_BITS = 16 ; //external memory user interface data width parameter ADDR_BITS = 24
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值