MI初始化寄存器配置.docx
- 文档编号:9473921
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:38
- 大小:20.09KB
MI初始化寄存器配置.docx
《MI初始化寄存器配置.docx》由会员分享,可在线阅读,更多相关《MI初始化寄存器配置.docx(38页珍藏版)》请在冰豆网上搜索。
MI初始化寄存器配置
/*extdrv/peripheral/dc/mi2010.c
*
*Copyright(c)2006HisiliconCo.,Ltd.
*
*Thisprogramisfreesoftware;youcanredistributeitand/ormodify
*itunderthetermsoftheGNUGeneralPublicLicenseaspublishedby
*theFreeSoftwareFoundation;eitherversion2oftheLicense,or
*(atyouroption)anylaterversion.
*
*Thisprogramisdistributedinthehopethatitwillbeuseful,
*butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof
*MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.Seethe
*GNUGeneralPublicLicenseformoredetails.
*
*YoushouldhavereceivedacopyoftheGNUGeneralPublicLicense
*alongwiththisprogram.
*
*
*History:
*04-Apr-2006createthisfile
*
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include"mi2010.h"
/*mi2010i2cslaveraddressmicro-definition.*/
#defineI2C_mi20100x90
staticintout_mode=1;
staticintpowerfreq=DC_VAL_50HZ;
staticvoidmi2010_default_init(void)
{
/*========softreset===============*/
/*page0*/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
gpio_i2c_write(I2C_mi2010,0x65,0xa0);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
/*page1*/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x01);
gpio_i2c_write(I2C_mi2010,0xc3,0x05);
gpio_i2c_write(I2C_mi2010,0xf1,0x01);
/*page0*/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
gpio_i2c_write(I2C_mi2010,0x0d,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x21);
msleep(10);
gpio_i2c_write(I2C_mi2010,0x0d,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
msleep(10);
/*softresetend*/
/*pllcontrol*/
gpio_i2c_write(I2C_mi2010,0x66,0x10);
gpio_i2c_write(I2C_mi2010,0xf1,0x04);
gpio_i2c_write(I2C_mi2010,0x67,0x05);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
msleep(50);
gpio_i2c_write(I2C_mi2010,0x65,0xA0);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
msleep(50);
gpio_i2c_write(I2C_mi2010,0x65,0x20);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
msleep(100);
/*pllcontrolend*/
/**************setmode*******************************************/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x01);
/*contexa/bbypassjpeg*/
gpio_i2c_write(I2C_mi2010,0xC6,0x27);
gpio_i2c_write(I2C_mi2010,0xf1,0x0B);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x30);
/*page0*/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
/*ReadMode(A)*/
gpio_i2c_write(I2C_mi2010,0x21,0x03);
gpio_i2c_write(I2C_mi2010,0xf1,0x00);
/************setmodeend******************************************/
/************************flickerdetection****************************************/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x01);
/*search_f1_50Lowerlimitofperiodrange30*/
gpio_i2c_write(I2C_mi2010,0xC6,0xA4);
gpio_i2c_write(I2C_mi2010,0xf1,0x08);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x24);
/*search_f1_50upperlimitofperiodrange32*/
gpio_i2c_write(I2C_mi2010,0xC6,0xA4);
gpio_i2c_write(I2C_mi2010,0xf1,0x09);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x26);
/*search_f1_60Lowerlimitofperiodrange37*/
gpio_i2c_write(I2C_mi2010,0xC6,0xA4);
gpio_i2c_write(I2C_mi2010,0xf1,0x0a);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x1e);
/*search_f1_60upperlimitofperiodrange39*/
gpio_i2c_write(I2C_mi2010,0xC6,0xA4);
gpio_i2c_write(I2C_mi2010,0xf1,0x0b);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x20);
/*R9_Step_60minimalshutterwidthstepfor60hzac157*/
gpio_i2c_write(I2C_mi2010,0xC6,0x24);
gpio_i2c_write(I2C_mi2010,0xf1,0x11);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x9c);
/*R9_Step_50minimalshutterwidthstepfor50hzac188*/
gpio_i2c_write(I2C_mi2010,0xC6,0x24);
gpio_i2c_write(I2C_mi2010,0xf1,0x13);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0xbc);
if(powerfreq==DC_VAL_50HZ)
{
/*====fixto50HZ====*/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x01);
gpio_i2c_write(I2C_mi2010,0xC6,0xa1);
gpio_i2c_write(I2C_mi2010,0xf1,0x2a);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x02);
gpio_i2c_write(I2C_mi2010,0xC6,0xa4);
gpio_i2c_write(I2C_mi2010,0xf1,0x04);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0xc0);
gpio_i2c_write(I2C_mi2010,0xC6,0xa1);
gpio_i2c_write(I2C_mi2010,0xf1,0x03);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x06);
}
elseif(powerfreq==DC_VAL_60HZ)
{
/*====fixto60HZ====*/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x01);
gpio_i2c_write(I2C_mi2010,0xC6,0xa1);
gpio_i2c_write(I2C_mi2010,0xf1,0x2a);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x02);
gpio_i2c_write(I2C_mi2010,0xC6,0xa4);
gpio_i2c_write(I2C_mi2010,0xf1,0x04);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x80);
gpio_i2c_write(I2C_mi2010,0xC6,0xa1);
gpio_i2c_write(I2C_mi2010,0xf1,0x03);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x06);
}
/************************************flickerdetectionend****************************/
/***************************************************setautoexposure*********/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x01);
/*MaxR12(B)(ShutterDelay)402*/
gpio_i2c_write(I2C_mi2010,0xC6,0x22);
gpio_i2c_write(I2C_mi2010,0xf1,0x0b);
gpio_i2c_write(I2C_mi2010,0xC8,0x01);
gpio_i2c_write(I2C_mi2010,0xf1,0x92);
/*IndexTH23Zonenumbertostartgainincreaseinlow-light.
Setsframerateatnormalillumination.4*/
gpio_i2c_write(I2C_mi2010,0xC6,0xA2);
gpio_i2c_write(I2C_mi2010,0xf1,0x17);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x04);
/*RowTime(msclkper)/4Rowtimedividedby4(inmasterclockperiods)527*/
gpio_i2c_write(I2C_mi2010,0xC6,0x22);
gpio_i2c_write(I2C_mi2010,0xf1,0x28);
gpio_i2c_write(I2C_mi2010,0xC8,0x02);
gpio_i2c_write(I2C_mi2010,0xf1,0x0f);
/*R9StepIntegrationtimeofonezone156*/
gpio_i2c_write(I2C_mi2010,0xC6,0x22);
gpio_i2c_write(I2C_mi2010,0xf1,0x2f);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x9c);
/*Maximumallowedzonenumber(thatismaximumintegrationtime)4*/
gpio_i2c_write(I2C_mi2010,0xC6,0xa2);
gpio_i2c_write(I2C_mi2010,0xf1,0x0e);
gpio_i2c_write(I2C_mi2010,0xC8,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x04);
/***************************************************setautoexposureend*********/
/*======******************************************lenscorrecton***************************/
gpio_i2c_write(I2C_mi2010,0xf0,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x02);
gpio_i2c_write(I2C_mi2010,0x80,0x01);
gpio_i2c_write(I2C_mi2010,0xf1,0xE8);/*LENS_CORRECTION_CONTROL*/
gpio_i2c_write(I2C_mi2010,0x81,0x5C);
gpio_i2c_write(I2C_mi2010,0xf1,0x2E);/*ZONE_BOUNDS_X1_X2*/
gpio_i2c_write(I2C_mi2010,0x82,0x36);
gpio_i2c_write(I2C_mi2010,0xf1,0x8A);/*ZONE_BOUNDS_X0_X3*/
gpio_i2c_write(I2C_mi2010,0x83,0xA2);
gpio_i2c_write(I2C_mi2010,0xf1,0x6C);/*ZONE_BOUNDS_X4_X5*/
gpio_i2c_write(I2C_mi2010,0x84,0x4B);
gpio_i2c_write(I2C_mi2010,0xf1,0x26);/*ZONE_BOUNDS_Y1_Y2*/
gpio_i2c_write(I2C_mi2010,0x85,0x25);
gpio_i2c_write(I2C_mi2010,0xf1,0x71);/*ZONE_BOUNDS_Y0_Y3*/
gpio_i2c_write(I2C_mi2010,0x86,0x70);
gpio_i2c_write(I2C_mi2010,0xf1,0x4B);/*ZONE_BOUNDS_Y4_Y5*/
gpio_i2c_write(I2C_mi2010,0x87,0x01);
gpio_i2c_write(I2C_mi2010,0xf1,0xF0);/*CENTER_OFFSET*/
gpio_i2c_write(I2C_mi2010,0x88,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x02);/*FX_RED*/
gpio_i2c_write(I2C_mi2010,0x8B,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x20);/*FY_RED*/
gpio_i2c_write(I2C_mi2010,0x8E,0x03);
gpio_i2c_write(I2C_mi2010,0xf1,0xE2);/*DF_DX_RED*/
gpio_i2c_write(I2C_mi2010,0x91,0x00);
gpio_i2c_write(I2C_mi2010,0xf1,0x20);/*DF_DY_RED*/
gpio_i2c_write(I2C_mi2010,0x94,0xC4);
gpio_i2c_write(I2C_mi2010,0xf1,0xB8);/*SECOND_DERIV_ZONE_0_RED*/
gpio_i2c_write(I2C_mi2010,0x97,0x25);
gpio_i2c_write(I2C_mi2010,0xf1,0x8E);/*SECOND_DERIV_ZONE_1_RED*/
gpio_i2c_write(I2C_mi2010,0x9A,0x03);
gpio_i2c_write(I2C_mi2010,0xf1,0xEB);/*SECOND_DERIV_ZONE_2_RED*/
gpio_i2c_write(I2C_mi2010,0x9D,0x26);
gpio_i2c_write(I2C_mi2010,0xf1,0x2C);/*SECOND_DERIV_ZONE_3_RED*/
gpio_i2c_write(I2C_mi2010,0xA0,0x2C);
gpio_i2c_write(I2C_mi2010,0xf1,0x05);/*SECOND_DER
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MI 初始化 寄存器 配置