您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> BF53x技术支持专区 -> 为何我设置BF532的PPI接口为接收模式时一直... 
本帖共有488个阅读者
发表帖子 发表投票 回复主题
为何我设置BF532的PPI接口为接收模式时一直使能DMA后一直收不到数据
Zhan_Xin(论坛新手)
Zhan_Xin
头衔:社区公民
帮派:无帮无派
帖数:1
金钱:114
积分:2
注册时间:2016/4/23
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
为何我设置BF532的PPI接口为接收模式时一直使能DMA后一直收不到数据
我在使用BF532时,用PPI采集一个AD芯片的数据(不是视频采集的AD),然后设置PPI为输入,ITU R656模式,0 syncs,internal trigger,发现PPI一直工作不了,接收不到数据,请大牛帮我看看怎么回事,以下是我的源码:
void Init_DMA(void)
{
int DMA_addr;
*pDMA0_START_ADDR = &Frame_Addr[0];
*pDMA0_X_COUNT = 500;
*pDMA0_X_MODIFY = 1;
*pDMA0_Y_COUNT =  1;
*pDMA0_Y_MODIFY = 1;
*pDMA0_CONFIG = WNR | WDSIZE_8| DMA2D | DI_EN; //0x00B2;
*pDMA0_PERIPHERAL_MAP = 0x0;
}
void Init_PPI(void)
{
    *pPPI_CONTROL = 0x0074;//It is OK with 0x00x8, 0x00x4, 0x00x0;
    *pPPI_DELAY = 0;
    *pPPI_COUNT = 499;
    *pPPI_FRAME = 1;
}
void InitTimer(void)
{
*pTIMER1_PERIOD = 640;
*pTIMER1_WIDTH = 370;
*pTIMER1_CONFIG = 0x0019;
*pTIMER1_CONFIG |= 0x0004;
*pTIMER2_PERIOD = 1280;
*pTIMER2_WIDTH = 640;
*pTIMER2_CONFIG = 0x0009;
*pTIMER0_CONFIG = 0x0019;
*pTIMER0_PERIOD = 0x280;
*pTIMER0_WIDTH = 0x160;
*pTIMER_ENABLE = 0x0007;
}
void PPI_TMR_DMA_Enable(void)
{
*pDMA0_CONFIG |= 0x1;
asm("ssync;");
InitTimer();
*pPPI_CONTROL |= 0x1;
asm("ssync;");
*pTIMER_ENABLE |= 0x0006;
asm("ssync;");
}
int main( void )
{
/* Begin adding your custom code here */
int i;
int j;
unsigned int addr;
unsigned short FlashValue;
Set_PLL(16, 4);  //内核时钟:16MHz * 16 = 256MHz, 系统时钟:256MHz/4 = 64MHz
Init_EBIU();
Init_SDRAM();
SPI_init();
Init_Port();
Init_PPI();
Init_DMA();
PPI_TMR_DMA_Enable();
}


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2016/4/23 0:32:28
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
行场同步配置错误,你要采集一行五百个数据,但你timer2配置是1280周期,一帧只给行同步两个数据的时间,所以你的dma永远採不满500个数据,只能采两个数据。
你可以看看我们液晶屏驱动那个代码的ppi配置,结合液晶屏数据手册,好好理解下配置含义

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2016/6/28 21:39:27
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.154093 Call, 1 Queries, Processed in 0.093750 second(s),