MIPI摄像头工程=7系列FPGA + OV5640(MIPI) + 15 分钟 + VITIS

news2024/11/23 21:20:47

a0867513d442e5e61a641ac4d7249f8b.png

项目使用东西

  • 硬件

Spartan-7 SP701 FPGA 7系列FPGA+电阻网络实现的MIPI接口

abd2c556aa8b55ece36285d83da4bb31.png

OV5640 MIPI接口

  • 软件

AMD Vivado 2020 版本以上

AMD Vitis 2020

介绍

MIPI 接口现在非常流行,国产FPGA目前基本都带MIPI接口,而AMD-Xilinx是从U+系列开始支持MIPI电平,从国内使用情况来看,7系列FPGA是使用最广的器件,所以这次使用的FPGA是7系列FPGA使用电阻网络实现MIPI电平的例子,具体硬件方案可以查看:

《Xilinx FPGA MIPI 接口简单说明》

搭建工程

本次使用的Vivado尽量使用2020版本以上的,MIPI的IP开始免费。

第 1 步:创建 Vivado 工程

运行 Vivado

17840e2d1d8d13cc6b618a943e523d0d.png

(1)“Create project创建项目” --> (2)按“Next下一步”

d77327f0c941bdeda7ca71731ccf985a.png

指定(1) “Project name项目名称” --> (2)Specify projects directory项目目录 --> (3)设置复选框 --> (4)按“Next下一步”

ab04b55380c55dec2b937780d3ca651f.png

(1)选择项目类型  -->  (2)设置复选框   -->  (3)按“Next下一步”

fd830039c70ef795343cdd55e9e8d3eb.png

(1)选择“Boards电路板”选项卡  -->  (2)查找并选择 SP701  --> (3)按“Next下一步”

7c8c0c06fcc74b1d8af85a5dfc9df9a7.png

(1)按“Finish完成”

5e8c2af4933f61a5dba99e6f2c85de74.png

第 2 步:生成示例设计

在 Vivado 中(1)“Create block design” --> (2)按“OK”

e3e8b350f908a2314aa1ec2fcd0817c0.png

(1)按“+”或“ctrl+I” --> (2)在“Search”中键入“mipi” -->  (3)双击“MIPI CSI-2 Rx 子系统”IP 核

99ed84590bb6c0d232c0e61dd66d61f6.png

(1)右键单击 IP  -->  (2)选择“Customize Block”

6aa4b842b7c483e55bd284fd964103c4.png

(1)打开“Application Example Design”选项卡 --> (2)选择“SP701” --> (3)按“OK”

78d33fff331c4bdfa91cfaf65a615e7d.png

(1)右键单击 IP  --> (2)选择“Open Example Design”

c9c8fb534b821b939c62653f3f3cbe2a.png

按“OK”保存设计更改

e37f1fce172951f858f11612c5a267cb.png

(1)指定示例项目的目录(注意:Windows 上的路径必须尽可能短)  -->  (2) 设置复选框  -->  (3)按“OK” -->  (4)按“OK”

84970fe0b8a69f957b22f904e49cae9e.png

示例项目将在新的 Vivado 窗口中打开。等待几分钟完成项目的构建

5934f3825dee66a1f5bc9e4ef8b38c57.png

在示例项目 Vivado 中(1)“Generate bitstream”  -->  (2)按“YES”

b5f86f0f7e78a2b816365d27b52a92fe.png

等待比特流生成

第 3 步:硬件测试

将 OV5640 sensor连接到 FPGA 板上的 MIPI CSI接口上。将 HDMI 显示器或 MIPI 显示屏连接到开发板上。

第 4 步:运行调试

从 Vivado 打开 VITIS 软件。(1)“Tools” --> (2)“Launch VITIS”

f520f0cc572139a09f34bd2e156b57aa.png

(1)指定工作区(选择历程自带的 mipi_csi2_rx_subsystem_0_ex :: SW :: xmipi_app )--> (2)“Launch”

99830bfadc9deaa751aa1237a6bd1b96.png

关闭 VITIS “Welcome”选项卡

d2da020ba51329b1b87a3872e1e0bfc4.png

现在将看到项目的软件部分。MicroBlaze 软处理器的代码。

0fe3546a3c2299e567802e14576e6c69.png

(1)按照箭头  --> (2)按“Debug Configurations”

a2e744ff2b54409040fc5eb7e2b5cd1a.png

(1) 双击“Single Application Debug (GDB)” --> (2)选择“Debugger Executable”  --> (3) 指定 由 Vivado 生成bitsream.bit 文件 --> (4)设置复选框  --> (5)按“Debug”

8094764e054998b70bf7c4e5b38c1818.png

按运行按钮并按照 串口 终端上的消息进行操作

4ab64ce08f1ce0171f1e2ebe211b46ac.png e7bee0b667a882c6037418e1770006ea.png

结论

从 Vivado 为 FPGA 板上的 MIPI 接口生成示例工程非常简单。

https://www.xilinx.com/products/boards-and-kits/sp701.html#resources

16555e56a376b4799b1c73e5ecbd479d.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/449447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用CMake的CPack工具打包项目

为了介绍如何使用CMake的CPack工具进行项目打包,这里使用了前文CMake项目使用ctestgtest进行单元测试中的示例。 为了更接近实际开发中项目的情况,自行下载gtest并进行源码编译来模拟实际项目中的依赖项;在实际的开发中,可能会有…

chatgpt智能提效职场办公-ppt怎么压缩文件大小

作者:虚坏叔叔 博客:https://xuhss.com 早餐店不会开到晚上,想吃的人早就来了!😄 压缩PPT文件大小有以下几种方法: 压缩图片大小:在PPT当中,图片是占用存储空间最大的部分&#xff0…

物联网多协议、多场景自定义测试|XMeter Cloud 更新

近日,全球首个物联网 MQTT 负载测试云服务 XMeter Cloud 推出了自定义场景测试功能。 该功能将满足用户自主定义测试场景和测试更广泛协议的需求,实现对除 MQTT 以外的 TCP、WebSocket、HTTP 等其他网络协议的测试,帮助用户构建更复杂的测试…

mybatis模糊查询以及结果封装详解

mybatis模糊查询以及结果封装详解 创建maven项目&#xff1a;项目结构如图所示 准备数据库表&#xff1a; 准备pom.xml所需的依赖&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0…

程序地址空间(下)

目录 &#xff1a; 1.接上部分内容再谈谈地址空间是什么&#xff1f;&#xff1f; 2.页表MMU&#xff08;硬件设备&#xff09; 3.为什么要搞个虚拟地址映射到物理地址 4.解释为什么最开始的问题&#xff1f;&#xff1f;&#xff1f; ---------------------------------------…

Spring 的 IoC(控制反转)

IoC 是 Inversion of Control 的简写&#xff0c;译为“控制反转”&#xff0c;它不是一门技术&#xff0c;而是一种设计思想&#xff0c;也是一个概念&#xff0c;同时是一个重要的面向对象编程法则&#xff0c;能够指导我们如何设计出松耦合、更优良的程序。 在这里说 IoC 之…

Java ---包装类

&#xff08;一&#xff09;包装类概念 官方说法&#xff1a; Java是面向对象的语言&#xff0c;但是为了便于开发者的使用&#xff0c;Java中却沿用了C语言的基本数据类型&#xff0c;在进行基本的数据计算时&#xff0c;开发者可以直接使用基础类。但是当需要和Java其他对象…

如何理解ThreadLocal

ThreadLocal的基本概念 在并发编程中&#xff0c;多个线程访问同一个变量&#xff0c;可能会出现线程安全问题、为了保证在多线程环境下访问共享变量的安全性&#xff0c;通常在访问共享变量的时候加锁&#xff0c;以实现线程同步的效果。 使用同步锁机制保证多线程访问共享变…

ChatGPT | 一文详解ChatGPT(学习必备)

本文概要 本篇文章主要介绍ChatGPT的产生和使用体验&#xff0c;适合不了解ChatGPT或者了解不够透彻的小伙伴&#xff0c;文中的描述非常详细&#xff0c;干货满满&#xff0c;感兴趣的小伙伴快来一起学习吧&#xff01; &#x1f31f;个人简介 ☀️大家好&#xff01;我是新人…

信息的相关性和冗余度:信息在整个文明中的作用

文章目录 I 古埃及的象形文字1.1 罗塞塔石碑1.2 古埃及文字音节和希腊字母的对应表1.3 破解古埃及文字 I 古埃及的象形文字 1.1 罗塞塔石碑 这个石碑是在公元前196年埃及国王托勒密五世加冕一周年的诏书。 在此前大约一百年&#xff0c;埃及已经被来自希腊北方城邦的亚历山大…

C++------引用

一、 引用概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空间&#xff0c;它和它引用的变量共用同一块内存空间。 类型& 引用变量名(对象名) 引用实体&#xff1b; int main() {//一个变量可以有多个引用…

LWIP协议与TCP/IP

1. 学习一个东西&#xff0c;先了解这个东西是干什么用的&#xff0c;哪些场景会用到它&#xff0c;与自己已经掌握的其他知识的联系 a. 例如&#xff1a;LWIP这个东西是干什么用的&#xff1a;他就是一个裁剪后保持大部分TCP/IP功能的协议。用少量的资源消耗实现一个较为完整的…

大数据实战 --- 淘宝用户行为数据分析

目录 开发环境 数据描述 功能需求 数据准备 数据清洗 用户行为分析 找出有价值的用户 开发环境 HadoopHiveSparkHBase 启动Hadoop&#xff1a;start-all.sh 启动zookeeper&#xff1a;zkServer.sh start 启动Hive&#xff1a; nohup hiveserver2 1>/dev/null 2>…

从零开始的ChatGLM 配置详细教程

从零开始的ChatGLM配置教程 文章目录 从零开始的ChatGLM配置教程一&#xff0c;前言二&#xff0c;环境配置1、下载ChatGLM项目2、配置程序运行环境 三、在HuggingFace下载chatGLM-6B模型1&#xff0c;安装 Git Lfs2&#xff0c;下载相关文件3&#xff0c;在HuggingFace中下载相…

什么是隔离放大器

隔离放大器&#xff08;也称为单位增益放大器&#xff09;是一种提供隔离的运算放大器电路电路的一部分与另一部分电路不同&#xff0c;这样就不会在电路的一部分中使用、消耗或浪费功率。 现在将对此进行彻底解释&#xff0c;因为这乍一看似乎是一个令人生畏的话题&#xff0c…

【TCP Wrappers】

目录 一、保护原理二、TCP Wrappers 保护机制的两种方式三、TCP Wrappers 的访问策略四、TCP Wrappers 机制的基本原则1、允许所有&#xff0c;拒绝个别2、允许个别&#xff0c;拒绝所有实列 一、保护原理 二、TCP Wrappers 保护机制的两种方式 1.直接使用 tcpd 程序对其他服务…

JavaFx 自定义封装 DateTimePicker 时间选择组件(支持时分秒)

JavaFx DateTimePicker 时间选择组件 javaFx 自定义时间选择组件 DateTimePicker&#xff0c; javaFx 源代码不支持时分秒选择&#xff0c;该代码组件支持时分秒选择&#xff0c;同时也支持清空、取消、此刻等操作&#xff01; 效果如下图所示&#xff1a; 源码地址&#xff…

AXI4总线学习笔记

AXI4 总线是 ARM 公司开发的一种总线&#xff0c;广泛应用于 Xilinx 的 IP 核中&#xff0c;比如笔者近期涉及 DDR 的读写控制&#xff0c;需要用到 MIG IP 核&#xff0c;这个 IP 核就通过 AXI4 总线进行控制。 AXI4 共有 5 种通道&#xff1a;读地址通道 ARC&#xff0c;读数…

虽然音视频开发只是功能组件开发,但薪资远高于普通开发岗……

首先要明白一件事情&#xff0c;音视频开发是功能组件开发而不是应用开发。应用开发的具体需求基本上是定制化的&#xff0c;而且需求一直在改&#xff0c;比如今天加个按钮&#xff0c;明天改个风格&#xff0c;只要应用还在天天都有活干。而功能组件开发的需求大多都比较统一…

一文详解过滤器Filter、拦截器Interceptor和切面Aspect的区别

目录 Filter过滤器 作用 应用场景 拦截器Interceptor Aspect切片 三者对比 执行顺序 拦截层面 过滤器Filter和拦截器Interceptor的区别 Filter过滤器 Filter 过滤器它是 JavaWeb 的三大组件之一 三大组件分别是&#xff1a;Servlet 程序、Listener 监听器、Filter 过滤…