现在的位置: 首页 > 综合 > 正文

mtk平台camera调试,读到的ID值为65535??

2013年06月02日 ⁄ 综合 ⁄ 共 2010字 ⁄ 字号 评论关闭

mtk6230的片子,camere sensor是ov7670。进入拍照时总显示“装置未就绪”。AVDD,DVDD,DOVDD是同时供给的,量得分别为2.87,1.87,2.87。reset脚低有效,camera pwrdn脚高有效,在未进入camera拍照功能时分别保持为高电平和低电平。I2C上没有接电容,各接了一个3.9K的上拉。
目前读sendor id结果是65535,请问各路高人问题可能在哪,又可以继续在哪些地方查找呢?
可能是PWDN的关系。camera pwdn高有效就是说pwdn为高电平的时候进入power down模式,所以在进入预览界面的时候就要把pwdn拉低。。这样camera才能进入正常工作状态。
建议:1,保证各个工作电压稳定;
         2,保证各个pin脚状态以及时钟正确;
         3,你认为camera应该进入工作状态时,测量Pclk或者各个data信牛绻惺涑龆喟刖鸵丫ぷ髌鹄戳耍?BR>        4,如果此时读出的寄存器数据仍然错误,那么检查iic信号是否正确,波形是否稳定,寄存器地址是否正确。。。。。。
我觉得pwrdn应该是正确的,init_ov76x0的第一个函数cis_module_power_on是这样的:
void cis_module_power_on(kal_bool on)
{
   if(on==KAL_TRUE)
   {
 sccb_setDelay(0x200); 
 sccb_config(SCCB_SW_8BIT, OV76X0_WRITE_ID, OV76X0_READ_ID, NULL);

 GPIO_ModeSetup(MODULE_CMPDN_PIN, 0); 
       GPIO_InitIO(1, MODULE_CMPDN_PIN); 
       GPIO_WriteIO(0, MODULE_CMPDN_PIN);

 pmic_vibrator_sel(VIBRATOR_1_8V);
 pmic_vibrator_enable(KAL_TRUE);

 //pmic_vasw_sel(VIBRATOR_2_8V);
 pmic_vasw_enable(KAL_TRUE);
   }
   else
   {

    sccb_setDelay(0x200); 
 sccb_config(SCCB_SW_8BIT, OV76X0_WRITE_ID, OV76X0_READ_ID, NULL);
    // Sensor Power off
    pmic_vibrator_sel(VIBRATOR_1_8V);     
                pmic_vibrator_enable(KAL_TRUE);    
                pmic_vasw_enable(KAL_TRUE); 
 // CMOS Sensor Power Down Signal Output 
      GPIO_ModeSetup(MODULE_CMPDN_PIN, 0);   
      GPIO_ModeSetup(MODULE_RESET_PIN, 0);                 
      GPIO_InitIO(1, MODULE_CMPDN_PIN);
      GPIO_InitIO(1, MODULE_RESET_PIN);
      GPIO_WriteIO(1, MODULE_CMPDN_PIN); 
      GPIO_WriteIO(0, MODULE_RESET_PIN);
  
      // SCCB Low
 GPIO_ModeSetup(SCCB_SERIAL_CLK_PIN,0);
 GPIO_ModeSetup(SCCB_SERIAL_DATA_PIN,0); 
      GPIO_InitIO(1, (char)SCCB_SERIAL_CLK_PIN); 
      GPIO_InitIO(1, (char)SCCB_SERIAL_DATA_PIN);       
      GPIO_WriteIO(0, (char)SCCB_SERIAL_CLK_PIN); 
      GPIO_WriteIO(0, (char)SCCB_SERIAL_DATA_PIN);       
            
   }
}

这里的上电动作就只是把pwrdn引脚设为0,即pwrdn无效,进入normal模式。
因为DVDD,DOVDD,AVDD三个电压已经在gpio_drv.c预先设为一开机就供上,就算没有进入camera拍照菜单,这几个电压也都是存在的。

现在I2C仍然无法读到sensor id,折腾了一天没有结果,I2C的电路似乎也没有问题,SDA,SCL都接了3.9K的上拉,示波器看I2C的也有波形。还有哪里可能有问题呢? 大家请不吝赐教啊。

 

 

硬件reset有问题,导致后面i2c无法正常操作。

抱歉!评论已关闭.