ADI Blackfin DSP处理器-BF533的开发详解56:CVBS输入-DSP和ADV7180的MDMA用法(含源码)

news2024/11/16 6:29:52

硬件准备

ADSP-EDU-BF533:BF533开发板
AD-HP530ICE:ADI DSP仿真器

软件准备

Visual DSP++软件

硬件链接

在这里插入图片描述
CVBS IN视频输出

代码实现功能

电视视频是奇场合偶场交替传输的,所以通过 CVBSIN 模块采集到的图像如上实验所看到的,是奇场和偶场分离的图像,不方便做视频处理。这个代码实现了通过 CVBSIN 子卡板采集一帧 YUV 格式的奇偶场分离的图像数据,
通过启动 MemoryDMA 将这个图像数据交织在一起,形成一幅完整的图像。运行代码后,代码会不断的采集图像进行交织,并打印完成信息。待看到打印的完成信息时,即可停下代码查看内存中的数据。

代码使用说明

在 CMOS 采集到一帧图像之后,会进入 DMA0 的中断函数,在中断函数中,启动 MemoryDMA,通过MemofyDMA 将图像进行交织。

EX_INTERRUPT_HANDLER(DMA0_PPI_ISR) //CMOS DMA0 中断函数
{
pDMA0_IRQ_STATUS = 0x1; //清除中断标志
pPPI_CONTROL &= 0xfffe; //关闭 PPI
Init_MDMA_Interrupt(); //初始化 MDMA 中断
Init_MDMA((void
)&video_buffer_temp[0],(void
)&video_buffer[0]); //设置 DMA 的源和目的缓存
MDMA_Enable(); //使能 MDMA
}
MemoryDMA 初始化配置:
*pMDMA_S0_START_ADDR = (void *)pSrc; //设置源地址
*pMDMA_S0_X_COUNT = 720; //传输次数
*pMDMA_S0_X_MODIFY = 2; //地址修改增量 2,16bit 模式一次读 2 个 byte
*pMDMA_S0_Y_COUNT = 312; //传输次数
*pMDMA_S0_Y_MODIFY = 2; //Y 修改增量

*pMDMA_D0_START_ADDR = (void *)pDest; //目的地址
*pMDMA_D0_X_COUNT = 720; //传输次数
*pMDMA_D0_X_MODIFY = 2; //地址修改增量 2,16bit 模式一次读 2 个 byte
*pMDMA_D0_Y_COUNT = 312; //传输次数
pMDMA_D0_Y_MODIFY = 1442; //Y 修改增量,目的地址需要空出偶(奇)场的数据空
间,所以设置 1442,即空出一行 720
2 个字节,再偏移已传输过的 2 个字节。

*pMDMA_S0_PERIPHERAL_MAP = 0x0040; //配置使用的 DMA 通道
*pMDMA_D0_PERIPHERAL_MAP = 0x0040;

*pMDMA_S0_CONFIG = 0x0034; //配置源 DMA 工作模式
*pMDMA_D0_CONFIG = 0x00b6; //配置目的 DMA 工作模式

代码实验步骤

1. 将仿真器(ICE)与 ADSP-EDU-BF53x 开发板和计算机连接好,将 CVBS_IN 子卡板按板上“圆圈”符号提示,插入板卡。正确插入后,莲花头视频接口朝板外。
2. 将视频信号源通过莲花头接入 CVBS_IN 子卡板上黄色的接口,并确保信号源正在传输视频信号。
3. 先给 ADSP-EDU-BF53x 开发板上电,再给仿真器(ICE)上电。
4. 运行 VisualDSP++ 5.0 软件,选择合适的 BF53x 的 session 将仿真器与软件连接。
5. 加载 VisualDSP++ 5.0 工程文件 BF53x_CVBSIN_MDMA.dpj 文件,编译并全速运行。

代码实验结果

代码运行完成后,会出现以下打印,当看到这些信息时,可停下代码查看内存数据。

在这里插入图片描述

将代码停止运行,打开 Image Viewer 工具,按下图配置:

在这里插入图片描述

在 Image Viewer 工具窗口中查看采集到的 CVBS 图像。

按如上图配置完成后,点“OK”,稍等片刻就可以在 VDSP 窗口中看到一帧已经交织好奇偶场的图像。

在这里插入图片描述

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

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

相关文章

CentOS 7.6 安装与配置 MySql 5.7.40

1 通过wget下载MySql的rpm # wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm2 检查是否存在MySql的repo # cd /etc/yum.repos.d/ # ls CentOS-Base.repo CentOS-Epel.repo可以看到没有MySql的repo 3 安装MySql的repo,并查看是否安…

React 生命周期

React 生命周期 这篇文章,我们来聊一聊在React中的生命周期。首先我们明确一点,在React中,函数式组件是没有生命周期的。谈到生命周期,都是关于类组件的! 生命周期官方网址 React.Component – React (docschina.or…

macOS Monterey 12.6.2 (21G320) Boot ISO 原版可引导镜像

macOS Monterey 12.6,皆为安全更新,不再赘述。 macOS Monterey 12.6,发布于 2022 年 9 月 12 日(北京时间今日凌晨),本次为安全更新。 今日(2022-07-21)凌晨,Apple 终于…

CentOS 8:SSH远程登录

SSH远程登录 SSH远程登录,也是 C / S 模式 服务端:sshd ,默认是启动的 systemctl status sshd systemctl start sshd SecureCRT 是打开了一个远程终端 注意:在终端环境里,不可以启动GUI程序 例如,在 …

【单片机】DS1302时钟/蜂鸣器

目录 一、DS1302时钟 1、DS1302时钟的介绍 2、DS1302时钟寄存器 3、DS1302时序图 4、BCD码 5、写一个时钟 6、写一个可调时钟 二、蜂鸣器 1、蜂鸣器的介绍​编辑 2、三极管放大驱动蜂鸣器 2.1NPN三极管工作原理(基极电流和发射电流均流向集电区&#xff…

Python图像识别实战(二):实现批量图像读取和像素转换(附源码和实现效果)

前面我介绍了可视化的一些方法以及机器学习在预测方面的应用,分为分类问题(预测值是离散型)和回归问题(预测值是连续型)(具体见之前的文章)。 从本期开始,我将做一个关于图像识别的…

Dubbo 3 Dubbo 快速入门 3.2 Dubbo 快速入门 3.2.3 服务消费者

Dubbo 【黑马程序员Dubbo快速入门,Java分布式框架dubbo教程】 3 Dubbo 快速入门 文章目录Dubbo3 Dubbo 快速入门3.2 Dubbo 快速入门3.2.3 服务消费者3.2 Dubbo 快速入门 3.2.3 服务消费者 OK,之前我们 已经完成了 服务提供 者的改造 现在来改造 服务…

智能电网中采用博弈论的方法(Python代码实现)

目录 1 概述 2 系统模型 2.1 单价模型 2.2 效用模型和 能源消费者(EC) 的目标 2.3 成本模型和 中央电站(CPS) 的目标 2.4 优化问题 3 优化的能源管理模型 4 模型的特性 4.1 均衡的存在 4.2 决策过程 5 算法 6 数值的…

vector详解(不定长数组)

目录 什么是vector vector的介绍 模板的声明方式 vector的基本操作 push_back insert erase 遍历vector 小明爱数列-练习题 思路 什么是vector vector的介绍 和我一样,我猜你们看到题目时心里都会产生一个疑问"什么是vector?(大佬除外)".vector其实是…

一起Talk Android吧(第四百四十四回:UI控件之DatePicker)

文章目录概念介绍使用方法内容总结各位看官们大家好,上一回中咱们说的例子是"UI控件之NumberPicker",这一回中说的例子是"UI控件之DatePicker"。闲话休提,言归正转,让我们一起Talk Android吧! 概念介绍 看官…

CSS实现文字扫光特效

上大学的玩 ae 的时候,就曾遇到过这个特效。偶然在百度看到了类似特效,没想到竟然能用 css 实现,所以就研究了一下,文字扫光效果如下: 实现思路: 光效移动效果,可以通过 background-image 设置…

RCNN网络源码解读(Ⅲ) --- finetune训练过程

目录 0.回顾 1.finetune二分类代码解释(finetune.py) 1.1 load_data(定义获取数据的方法) 1.2 CustomFineTuneDataset类 1.3 custom_batch_sampler类( custom_batch_sampler.py) 1.4 训练train_mod…

JVM.......未完待续

一、了解 JVM JVM ( Java Virtual Machine ),又称之为 Java虚拟机。JVM 的运行与操作系统无关,能够实现跨平台,只要是安装了JVM的机器,都能运行Java程序,Java语言最重要的特点 "跨平台运行",也…

关于应用形态数轴方法的一点展望

“既然目前物理化学关于物质世界的最高理论成果,即所谓由量子力学和统计力学组成的第一原理,只能求算物质无生命的性质,而药物设计关心的却是有生命的性质.那么是否第一原理对药物设计就无所作为呢?不是的.也就是说,尽…

设备资产管理系统有什么用?

在PC时代,电脑、打印设备的那个已经成为当代企业的必备资产,生产型企业还有生产设备等资产,企业规模越大资产就越多,就越难管理,因此设备资产管理系统成为诸多企业数字化管理的重要组成之一。设备管理系统的应用不仅能…

算法基础篇-10-动态规划

1. 简介 动态规划是一种算法思想; 动态规划递归式子问题 1.1 案例1: 斐波那契数列 斐波那契数列:FnFn-1Fn-2 代码演示: 使用递归和非递归的方法来求解斐波那契数列的第n项; 递归的方法: public static…

uniapp实战仿写网易云音乐(二)—视频页面(scroll-view组件实现横线滑动,mescroll-uni实现视频列表,向下滑动刷新当前页面)

文章目录前言顶部导航条的实现视频列表的展示部分CSS部分最后前言 接着上篇文章继续完成剩下的部分,本篇文章是完成第二个页面——视频页面的部分,视频还是没有做播放的效果,主要是做展示效果。下面附上两篇文章链接,没看过的同学…

【概率论】正态分布

前导知识: 概率密度函数(密度函数):描述一个随机变量的在某个确定的取值点附近的可能性的函数。 随机变量的取值落在某个区域内的概率为概率密度函数在这个区域上的积分。 性质: f(x)>0 数学期望 又称均值&am…

vue组件

9.Vue组件 组件(Component)是 Vue.js 最强大的功能之一。 组件可以扩展 HTML 元素,封装可重用的代码。 组件系统让我们可以用独立可复用的小组件来构建大型应用,几乎任意类型的应用的界面都可以抽象为一个组件树: 9…

SpringBoot 自定义starter yaml提示失效问题

自定义starter yaml提示失效问题自定义starter yaml提示失效问题问题场景解决办法自定义starter yaml提示失效问题 问题场景 在自定义starter后,必不可少会有properties配置参数需要指定,而在有时又不知道为什么出现这个问题。官方 Configuration Meta…