您的位置: OpenADSP社区论坛 -> Blackfin专区 -> 新手上路 -> 求解答:BF518 OV9650例程
本帖共有592个阅读者
发表帖子 发表投票 回复主题
求解答:BF518 OV9650例程
lovepanpanzhao(论坛新手)
lovepanpanzhao
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:261
积分:25
注册时间:2012/12/24
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
求解答:BF518 OV9650例程

把BF518 OV9650例程的EUBI、SDRAM、PPI、DMA初始化部分移植到 我的518板子上,中断函数等都是一模一样移植过去,但是中断时钟不能发生。用示波器看FS1和FS2引脚都有信号输出(周期一个几十微妙,一个几十毫秒);已经确认通过I2C初始化摄像头读写寄存器都成功了。请问还有什么问题?接线都是通了的。


这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/1/15 9:50:29
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你修改一下POLC和POLS的配置。


这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/1/15 10:01:26
lovepanpanzhao(论坛新手)
lovepanpanzhao
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:261
积分:25
注册时间:2012/12/24
2信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
POLC和POLS 是 518的寄存器 还是?

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/1/15 10:05:47
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
3信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
PLOS和PLOC是PPI寄存器的时序配置寄存器,你看一下PPI寄存器的说明

这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/1/15 10:14:10
lovepanpanzhao(论坛新手)
lovepanpanzhao
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:261
积分:25
注册时间:2012/12/24
4信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

我把ppi_control配置成0x01AC(程序原来的配置)、0x81AC、0xC1AC、0x41AC都不能产生中断。

下面是我的初始化代码:

void Init_CMOS_PPI(void)
{
   *pPORTG_FER |= 0xf000; //IO口因为只用到PG12到PG15
    ssync();
   *pPORTG_MUX |= 0x4000;
    ssync();
    
   *pPORTF_FER |= 0x00ff; //IO口因为只用到PF0到PF7
   ssync();
   *pPORTF_MUX |= 0x0015;
   ssync();

*pPPI_FRAME = 480;    
*pPPI_COUNT = 1279;
*pPPI_DELAY = 0;
*pPPI_CONTROL = 0x41AC;
ssync();
*pDMA0_START_ADDR = 0;
*pDMA0_X_COUNT = 640;
*pDMA0_X_MODIFY = 0x2;  
*pDMA0_Y_COUNT = 480;
*pDMA0_Y_MODIFY = 0x2;            
*pDMA0_PERIPHERAL_MAP = 0x0;  
*pDMA0_CONFIG =  WNR | WDSIZE_16| DMA2D | DI_EN;
ssync();  
}

void CMOS_PPI_Enable(void)
{
   *pDMA0_CONFIG |= DMAEN;
   ssync();
   *pPPI_CONTROL |= PORT_EN;
   ssync();
}

void CMOS_PPI_Disable(void)
{
   *pDMA0_CONFIG &= ~DMAEN;
   ssync();
   *pPPI_CONTROL &= ~PORT_EN;
   ssync();
}

void Init_CMOS_Interrupts(void)
{
    *pSIC_IAR1 = 0x1fffffff ;            
    register_handler(ik_ivg8, DMA0_PPI_ISR);  
    *pSIC_IMASK0 =1<<15;  
    ssync();
}

EX_INTERRUPT_HANDLER(DMA0_PPI_ISR)
{
     *pDMA0_IRQ_STATUS = 0x1;  
     CMOS_PPI_Disable();
     printf( "\nSuccess Capture One Frame:  640 * 480\n");
     printf( "         The data is saved address is 0\n" );
     printf( "             YUV422(YUY2(4:2:2)) Format\n" );
}



这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/1/15 10:28:14
尊贵身份标志
andy(论坛版主)
andy
头衔:社区公民
帮派:无帮无派
帖数:2287
金钱:11132
积分:2263
注册时间:2011/6/8
5信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线

你测量一下从摄像头板子出来的PPI CLK时钟信号,行同步信号,场同步信号,看看场同步频率除以行同步频率是否为480,如果是的话,说明你寄存器配置好了,不是说明初始化没有配好,如果这三个信号波形正常,就尝试修改PPICLK的寄存器。

另外的你PPI FS3是否下拉到地?



这家伙很懒,什么也没有留下!
等级:论坛版主 参考IP地址:*.*.*.*
2013/1/15 11:04:12
lovepanpanzhao(论坛新手)
lovepanpanzhao
头衔:社区公民
帮派:无帮无派
帖数:18
金钱:261
积分:25
注册时间:2012/12/24
6信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
以上程序没问题,是PG口引脚复用功能配置问题。已经解决了

这家伙很懒,什么也没有留下!
等级:论坛新手 参考IP地址:*.*.*.*
2013/1/16 13:41:17
Powered by OpenADSP Copyright © 2010 www.Openadsp.com. All rights reserved.159277 Call, 1 Queries, Processed in 0.078125 second(s),