找回密码
 注册
搜索
查看: 1826|回复: 7

[讨论] mtk平台camera调试,读到的ID值为65535??

[复制链接]
发表于 2007-10-16 13:29:21 | 显示全部楼层 |阅读模式
mtk6230的片子,camere sensor是ov7670。进入拍照时总显示“装置未就绪”。AVDD,DVDD,DOVDD是同时供给的,量得分别为2.87,1.87,2.87。reset脚低有效,camera pwrdn脚高有效,在未进入camera拍照功能时分别保持为高电平和低电平。I2C上没有接电容,各接了一个3.9K的上拉。
目前读sendor id结果是65535,请问各路高人问题可能在哪,又可以继续在哪些地方查找呢?
发表于 2007-10-16 16:08:12 | 显示全部楼层
可能是PWDN的关系。camera pwdn高有效就是说pwdn为高电平的时候进入power down模式,所以在进入预览界面的时候就要把pwdn拉低。。这样camera才能进入正常工作状态。
建议:1,保证各个工作电压稳定;
         2,保证各个pin脚状态以及时钟正确;
         3,你认为camera应该进入工作状态时,测量Pclk或者各个data信号,如果有输出多半就已经工作起来了;
        4,如果此时读出的寄存器数据仍然错误,那么检查iic信号是否正确,波形是否稳定,寄存器地址是否正确。。。。。。

祝你好运。[em01]
点评回复

使用道具 举报

 楼主| 发表于 2007-10-16 20:04:18 | 显示全部楼层
谢谢楼上的。

我觉得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的也有波形。还有哪里可能有问题呢? 大家请不吝赐教啊。
点评回复

使用道具 举报

 楼主| 发表于 2007-10-16 20:11:19 | 显示全部楼层
补充一句,我需要在上述POWER ON的过程最后再加个硬件复位信号么? 不过驱动里一开始已经有了软复位了,似乎又无此必要,期待正解。。。
点评回复

使用道具 举报

发表于 2007-10-17 09:41:28 | 显示全部楼层
最近我也在看MTK的驱动,正好有项目在,最近还修改了点东西,我们一般遇到“装置未就绪”的话,基本都是驱动的问题
点评回复

使用道具 举报

 楼主| 发表于 2007-10-17 12:04:10 | 显示全部楼层
这个问题已经解决了。
点评回复

使用道具 举报

发表于 2007-10-17 12:54:01 | 显示全部楼层
怎么解决的?
点评回复

使用道具 举报

 楼主| 发表于 2007-10-17 22:29:27 | 显示全部楼层
硬件reset有问题,导致后面i2c无法正常操作。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-15 16:27 , Processed in 0.048202 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表