找回密码
 注册
搜索
查看: 2371|回复: 4

[资料] mt9d111初始化的问题

[复制链接]
发表于 2013-3-20 12:55:23 | 显示全部楼层 |阅读模式
小弟刚刚接触mt9d111,甚是不懂,初始化的时候按照开发向导顺序进行,但是结果是输出的时钟不正常(如下图),代码贴下:Drv_Set_Wsc2800_SingleAddrValue就是I2C命令(命名什么的各位大大不要吐槽啦,就是I2C)


        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf0, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00); //page 00
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x65, 0xA0);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);         //reg65:A000  // bypassed PLL (prepare for soft reset)
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf0, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x01); //page 01
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xC3, 0x05);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x01);         //regC3:0501  // MCU_BOOT_MODE (MCU reset)
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf0, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00); //page 00
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x0D, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x21);         //reg0D:0021  // RESET_REG (enable soft reset)
       

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x0D, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);         //reg0D:0000  // RESET_REG (disable soft reset)
        Drv_Wsc2800_Delay(250);//vito2011 for compile error
        Drv_Wsc2800_Delay(250);
        Drv_Wsc2800_Delay(250);
        Drv_Wsc2800_Delay(250);



        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0xa1);         //refresh command  seq.cmd=3
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x03);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x03);

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0xa1);         //seq.state=9
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x04);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x09);

       

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf0, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00); //page 00
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x65, 0xA0); //R0x65:0[15]=1;
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);
       

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf0, 0x00); //page 01
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x01);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x0a, 0x04); //R0x0a:a[7]=1;
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x88);

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0x90); //
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x78);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0x90);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x79);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0x90);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x70);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0x90);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x71);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);



        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x0D, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x04);         //reg0D:0004  

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x0D, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);         //reg0D:0000
       
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf0, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x01);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0xa1);         //refresh command                 seq.cmd=1
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x03);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x01);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc6, 0xa1);         //seq.state=3
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x04);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xc8, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x03);
   
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf0, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x65, 0xA0);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);         //reg65:0xA000

        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x66, 0x10);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x01); //reg66:0x1001
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x67, 0x05);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x01); //reg67:0x0501
         
   
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0x65, 0x20);
        Drv_Set_Wsc2800_SingleAddrValue(0xba, 0xf1, 0x00);         //reg65:0x2000


最后一步是确认芯片版本,我跳过了,我觉得可以不用进行。小弟现在实在不清楚要如何正确初始化了,调来调去也没效果,有没有大大能够提供指导一下哪里不对?或者提供一份能正确初始化的代码,万分感谢。[em03]
 楼主| 发表于 2013-3-21 11:26:46 | 显示全部楼层
跪求指导!顶!
点评回复

使用道具 举报

 楼主| 发表于 2013-3-20 13:30:04 | 显示全部楼层
<img src="attachments/dvbbs/2013-3/201332013295158722.jpg" border="0" onclick="zoom(this)" onload="if(this.width>document.body.clientWidth*0.5) {this.resized=true;this.width=document.body.clientWidth*0.5;this.style.cursor='pointer';} else {this.onclick=null}" alt="" />

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
点评回复

使用道具 举报

发表于 2013-5-31 13:39:22 | 显示全部楼层
应该是初始化代码不对导致的,可以加我QQ50112811探讨[em02]
点评回复

使用道具 举报

发表于 2015-7-17 11:48:06 | 显示全部楼层
看看。。。。。。
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2024-11-16 01:09 , Processed in 0.047943 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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