您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF51X技术支持专区 -> BF518的PPI详解
本帖共有676个阅读者
发表帖子 发表投票 回复主题
BF518的PPI详解
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
BF518的PPI详解

PPI(Parallel Peripheral Interface )接口在ADSP-BF51x 上常用于视频信号和同步数据的传输,是半双工接口,支持数据的采集和数据的传输。

ADSP-BF51x 上有一个16Bit 的PPI 接口,最高速度可以到系统时钟的1/2,有视频信号传输使用的行、列、场是三个同步信号,支持ITU656,ITU601 等模式,可兼容大部分视频相关的芯片。

PPI 接口自身不能产生时钟信号,所以PPICLK 信号必须由外部设备或者晶振提供。PPI 接口没有发送和接收数据的寄存器,不能采用Core 来操作数据,只能采用DMA 传输。

接口寄存器说明

PPI_CONTROL PPI :控制寄存器,用于配置PPI 工作模式
PPI_STATUS PPI :状态寄存器
PPI_COUNT PPI :传输计数寄存器,设置图像一条线由多少数据组成
PPI_DELAY PPI :延时计数寄存器,设置在传输时延时多少个时钟开始采数据
PPI_FRAME PPI :帧寄存器,用来设置一幅完整图像一帧的线条数



我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/7 13:39:55
尊贵身份标志
OpenADSP(管理员)
OpenADSP
头衔:社区公民
帮派:无帮无派
帖数:5195
金钱:34806
积分:6378
注册时间:2011/6/7
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

例子代码分析

上传的附件
   2012671341169.rar [ 798.87 KB ]

*pDMA0_START_ADDR = 0; //配置PPIDMA 数据起始地址
*pDMA0_X_COUNT = 480; //配置DMA 一行要传输多少次数据
*pDMA0_X_MODIFY = 2; //配置每次传输行地址的增量
*pDMA0_Y_COUNT = 286; //配置要传输多少行数据
*pDMA0_Y_MODIFY = 2; //配置每次列数据地址的增量
*pDMA0_CONFIG = 0x1034; //配置DMA 工作模式
*pPPI_CONTROL = 0x781e; //配置PPI 工作偶是
*pPPI_DELAY = 0; //配置时钟延时为0
*pPPI_COUNT = 479; //配置PPI 每行要传输480 次
*pPPI_FRAME = 286; //配置每帧图像有286 行
*pTIMER0_PERIOD = 525; //配置行同步信号产生的周期
*pTIMER0_WIDTH = 41; //配置行同步信号宽度
*pTIMER0_CONFIG = 0x00a9;//配置行同步信号工作模式

*pTIMER1_PERIOD = 150150;//配置列同步信号产生的周期
*pTIMER1_WIDTH = 5250; //配置列同步信号宽度
*pTIMER1_CONFIG = 0x00a9; //配置列同步信号工作模式
*pDMA0_CONFIG |= 0x1; //使能DMA
asm("ssync;"); //系统同步 /
*pPPI_CONTROL |= 0x1; //使能PPI
asm("ssync;"); //系统同步
*pTIMER_ENABLE|= 0x0003; //使能行场同步信号
asm("ssync;"); //系统同步

PPI 的行场同步信号与TIMER0 和TIMER1 复用,所以要配置TIMER 寄存器来启动PPI 的同步信号。

代码实现功能

代码实现了 PPI 连续发送525*286 尺寸图像的数据,其中图像有效数据尺寸为480*286。

测试结果

PPI 接口传输设置的数据。该代码实现了使用 PPIDMA 传输数据的功能,没有实际的设备与其通讯来观察结果,如需要看结果,可以运行板卡驱动下的液晶屏代码,观察传输的图像数据。




我是OP...
等级:管理员 参考IP地址:*.*.*.*
2012/6/7 13:42:41
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159511 Call, 1 Queries, Processed in 0.062500 second(s),