ZYNQ7010把SD卡的图片显示到HDMI
在ZYNQ基础系列(三)中有相关IP核的初步介绍,在已有的基础上可以搭建一个基础的显示通路了
实验目的:在Mi701N开发板的基础上,驱动800*600的显示屏输出图片(图片文件[.bin文件]存放SD卡中)
一、PL部分实现
大体框图:
- AXI接口连接模块和复位模块是通过自动生成的
- rgb2dvi模块:用于IO口输出HDMI信号 [在ZYNQ基础系列(二)],也可以不加该模块直接以VGA形式输出,或者加一个驱动HDMI芯片的IP核输出
- PS模块:注意根据板子具体情况设置PS时钟和PL时钟以及DDR型号
- CLOCK模块:PS倍频到100M的时钟输出(图中红色线)作为CLOCK模块的输入,由于分辨率是800*600的,所以时钟clock1输出40M,clock2是clock1的5倍,200M,(两个输出时钟,图中青色线),该模块的lock信号作为显示通路的复位信号
- VTC、VDMA和Vid_Out核的配置,和上一文中的一样
二、制作图片文件
Image2Lcd工具
按照如上设置,将.bin图片文件,导出
三、SDK部分实现
初始化:首先PS通过AXI总线配置PL的工作模式
工作:从SD卡中读取图片文件,然后PS将图片数据写入DDR,PL不断从DDR中读取数据,然后通过视频通路,显示在屏幕上
设置开启xilinx自带的文件系统的库:
如图将xilffs勾选(否则提示找不到 ff.h 文件):
勾选此库之后,就可以使用文件系统相关的函数了
等下的代码中,SD_Init
和SD_Transfer_read
分别是初始化SD卡和读取SD卡中的文件内容(.bin文