ZYNQ学习——(摄像头_VDMA_HDMI显示工程搭建)

	最近在学习ZYNQ,使用PS和PL端的交互,初始阶段在看米联客SDK入门教程,同时按照邓堪文的示例搭建了基本的摄像头捕获图像后存储到DDR3然后读取出来到摄像头显示,这部分工程作为启动,可以在这基础上部署视觉相关的加速内容,在此处做下整理。

工程结构:在这里插入图片描述

初始zynq配置:

请添加图片描述
请添加图片描述
请添加图片描述
设置完毕zynq核以后,先搭建读取DDR部分,即摄像头显示:
请添加图片描述
请添加图片描述
开始加入PS部分:

VDMA工程建立

1.新建vitis文件夹后,导出硬件信息到此文件夹,lunch vitis打开vitis软件,新建project。
2. 在src文件夹下新建main.c文件
在这里插入图片描述
3.在vivado中查看DDR3中AXI_HPO高速总线对应的地址为0x0000_0000到0x0FFF_FFFF,其中AXI_LITE总线地址是0x4300_0000到0x4300_FFFF
在这里插入图片描述
4.VDMA文档阅读,进行配置。
在这里插入图片描述
过搜索0x00找到MM2S读DDR的配置
在这里插入图片描述
找到说的RS
在这里插入图片描述
RS就是启动VDMA
5.视频缓冲区的起始地址
在这里插入图片描述
6.stride以字节为单位,每一行的第一个地址的字节数量。(此处800个像素点,设置为800*2个字节)
在这里插入图片描述
7.与上一项配置相同
在这里插入图片描述
8.配置有多少行(600行)
在这里插入图片描述
9.总配置结果
在这里插入图片描述

Vitis程序编写

1.Xil_Out32(VDMA_BASEADDR + 0x5c , VDMA_FRAME0 ); 配置0x4300005c时写入的VDMA_FRAME0是数据存储的地址
即:0x4300005c 所存的数据是0x1000000
而图像数据存储的位置是0x1000000开始的600*800个字节
在这里插入图片描述
在这里插入图片描述

添加摄像头作为DDR的读输入

1.PL部分添加MT9V034和video in axi 模块,添加2SMM接口。
在这里插入图片描述
2.摄像头输入8bit数据,对之前IP进行更改
在这里插入图片描述
在这里插入图片描述
对vitis部分更改:
在这里插入图片描述
主函数部分没有其他改动,添加写通道配置,其配置方法与读通道配置时一致,只是偏置地址不同。

添加HDMI模块作为显示

在这里插入图片描述
添加HDMI模块作为显示接口
1)VGA时序数据
2)进行8bit输入,10bit输出编码,通过调用TMDS_ENCODER模块完成。
3)编码后数据串行输出,调用Select_io模块(调用时要在IP catalog中设置,并在添加子模块时到run/ip/中找到.v文件,加到ip_repo中,防止因为不能直接添加IP到BD中报错)
到此为止,摄像头正常启用
在这里插入图片描述

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值