MTK平台camera(摄像头)调试教程要点
mtk平台软件调试方法与技巧
mtk 模拟器调试前篇文章介绍了手机调试的TRACE技巧,MTK手机调试是比较简单的,除了打TRACE,找ASSERT,分析DUMP外,剩下的就是经验了,有经验的人看到现象就能猜到问题出在什么地方,简单看一下TRACE只是为了确认自己的猜测.初涉此道的朋友往往需要时间,慢慢积累经验.要达到熟练,就需要有空的时候多读多研究代码.熟练的掌握了代码,解决问题就会熟能生巧.MTK的模拟器调试说没技巧也是对的,说有技巧也不错.因为模拟器的技术与其说是MTK经验,不如说是VC经验.由于模拟器能在没有样机的情况做大量的UI方面的开发,同时模拟器具有快捷,所见即所改等优点,因此,受到很多开发老手的青睐.熟练掌握模拟器使用技巧,对于提高工作效率,节省资源具有很积极的意义.工欲善其事,必先利其器.欲了解模拟器调试,就要先了解VC使用.VC调试过程中经常使用的快捷键如下:vc++断点的使用:按F9(设置断点),F5调试,F10单步调试,shift+F5退出调试F10单语句执行,F11单指令执行,Ctrl+F10执行至光标处;F9按行设置/取消断点, Alt+F9可按行,按数据或按消息设置断点;调试时,按Alt+3打开跟踪窗口,Alt+4打开变量窗口,Alt+5打开寄存器窗口,Alt+6打开内存窗口,Alt+7打开堆栈窗口,Alt+8打开汇编指令窗口;1.只要你有源代码,拥有一个模拟器是一件很容易的事.当然,有些情况下,这对于初入MTK的人来说,也是困难的,特别是在一些代码管理不善,公司人员众多,员工流动频繁的公司,你永远想象不出他们的代码会有多糟.不过一般情况下,我到一个新公司,都会试着去使用他们的代码编译得到模拟器,不管他们的代码多么糟,我总能快速的编出模拟器来.只要三个步骤: a.在编译模拟器前请关掉所有SP的宏,这是很重要的,很多SP都不提供在模拟器下运行的库,所以一个项目SP越多,在模拟器下,他无法识别的函数也会越多b.在编译过程中遇到错误,可以把所有与显示无关的代码全部使用#ifdef WIN32宏括起来,把所有不认识的类型使用typedef int xxx;重定义.把一些不能识别的宏定义使用WIN32括起来重定义一下c.在生成MODIS时,会遇到大量不认识的函数,如果少于50个,全部建成void xxx(){}类型的空函数.如果多于一百个,尝试查找这些函数的来源,如果是相关SP的,就再次补充关掉相关SP.当然如果你不怕麻烦,也可以把这一百个函数建成空函数.一般来说,把所有第三方功能和与MTK无关的功能关掉的话,不能识别的函数一般不会超过十个.经过这样三步,一般情况下你都能得一个差不多可以使用的模拟器.有了模拟器,你就可以进行下面的工作了.如果你仍然无法获得模拟器,建议咨询你的项目领导,如果你的领导也无法解决,说明这个软件组是一个组员变动很快,或者说缺乏条理性的部门,当然也有可能这个部门的程序员都是一些MTK的顶尖层高手,他们的程序从来不需要调试.总之这是会让人疯狂的部门.2.如果你顺利到到一个模拟器,那么就可以开始调试了.首先说一下断点,VC中的断点分三大类,一类是本地断点,一类是数据断点(也称之为条件断点,有人称之为高级断点),还是一类是消息断点;这三类断点分别对应于快捷键"ALT+F9"打开的对话框中三个选项卡.由于消息断点是用于跟踪WIN的消息,所以在MTK中用不着.在模拟器中一般我们只使用本地断点与数据断点.本地断点和数据断点在BUG调试中举足轻重,熠熠生辉。
MTK平台camera(摄像头)调试教程
MTK 平台 CAMERA 驱动浅析Camera Driver analysis in the platform of MTKDocument Number:Preliminary (Released) InformationRevision:0.1Release Date:Ghong Confidential Revision 0.1-Feb.14 2012- 1 -Ⓒ2012 Ghong inc.Revision HistoryRevision Date (dd/mm/yyyy)Author Comments0.114/02/2012Guoqing Zhang Draft VersionGhong Confidential Revision 0.1-Feb.14 2012- 2 -Ⓒ2012 Ghong inc.Contents一、.-二、.-三、.-四、.-五、.-、.-、.-、.-、.-六、.-七、.-、.-、.-、.-、.-、.-、.-八、.-).-).-).-九、.-十、.-Ghong Confidential Revision 0.1-Feb.14 2012- 3 -Ⓒ2012 Ghong inc.一、手机Camera的物理结构:FPC: Flexible Printed Circuit 可挠性印刷电路板Sensor:图象传感器IR:红外滤波片Holder:基座Lens:镜头二、Camera的成像原理:景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模拟的电信号,经过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过 IO 接口传输到 CPU 中处理,通过 LCD 就可以看到图像了。
Ghong Confidential Revision 0.1-Feb.14 2012- 4 -百度文库 - 让每个人平等地提升自我Ⓒ2012 Ghong inc.图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。
详细MTK校准调试的原理及方法介绍56页PPT
1、最灵繁的人也看不见自己的背脊。——非洲 2、最困难的事情就是认识自己。——希腊 3、有勇气承担命运这才是英雄好汉。——黑塞 4、与肝胆人共事,无字句处读书。——周恩来 5、阅读使人充实,会谈使人敏捷,写作使人精确。——培根1不要轻言放弃,否则对不起自己。
2、要冒一次险!整个生命就是一场冒险。走得最远的人,常是愿意 去做,并愿意去冒险的人。“稳妥”之船,从未能从岸边走远。-戴尔.卡耐基。
梦 境
3、人生就像一杯没有加糖的咖啡,喝起来是苦涩的,回味起来却有 久久不会退去的余香。
详细MTK校准调试的原理及方法介绍 4、守业的最好办法就是不断的发展。 5、当爱不能完美,我宁愿选择无悔,不管来生多么美丽,我不愿失 去今生对你的记忆,我不求天长地久的美景,我只要生生世世的轮 回里有你。
MTK+移植camera说明
MTK移植camera说明1、裁剪模块修改文件:config/tf902/ProjectConfig.mkEg\config/tf902/ProjectConfig.mk````````````````````````````````````````````CUSTOM_HAL_EEPROM = dummy_eepromCUSTOM_HAL_FLASHLIGHT = constant_flashlightCUSTOM_HAL_FMRADIO = mt6628-CUSTOM_HAL_IMGSENSOR = ov8825_mipi_raw s5k8aayx_mipi_yuv+CUSTOM_HAL_IMGSENSOR = gc2235mipi_raw gc0313mipi_yuv#ov8825_mipi_raw s5k8aa yx_mipi_yuv #添加摄像头模块,定义hal层CUSTOM_HAL_LENS = ov8825af dummy_lensCUSTOM_HAL_MAIN2_IMGSENSOR =CUSTOM_HAL_MAIN_BACKUP_IMGSENSOR =CUSTOM_HAL_MAIN_BACKUP_LENS = dummy_lens-CUSTOM_HAL_MAIN_IMGSENSOR = ov8825_mipi_raw+CUSTOM_HAL_MAIN_IMGSENSOR = gc2235mipi_raw #ov8825_mipi_raw #主摄像头在hal层的修改CUSTOM_HAL_MAIN_LENS = ov8825afCUSTOM_HAL_MSENSORLIB = mmc328x akm8975 ami304 yamaha530 mag3110 akmd8963 b mm050CUSTOM_HAL_SENSORS = sensorCUSTOM_HAL_SUB_BACKUP_IMGSENSOR =CUSTOM_HAL_SUB_BACKUP_LENS = dummy_lens-CUSTOM_HAL_SUB_IMGSENSOR = s5k8aayx_mipi_yuv+CUSTOM_HAL_SUB_IMGSENSOR = gc0313mipi_yuv #s5k8aayx_mipi_yuv #副摄像头在hal 层的定义CUSTOM_HAL_SUB_LENS = dummy_lensCUSTOM_KERNEL_ACCELEROMETER = bma050CUSTOM_KERNEL_ALSPS = cm36283@@ -79,7 +79,7 @@ CUSTOM_KERNEL_FLASHLIGHT = constant_flashlightCUSTOM_KERNEL_FM = mt6628CUSTOM_KERNEL_HDMI =CUSTOM_KERNEL_HEADSET = accdet-CUSTOM_KERNEL_IMGSENSOR = ov8825_mipi_raw s5k8aayx_mipi_yuv+CUSTOM_KERNEL_IMGSENSOR = gc2235mipi_raw gc0313mipi_yuv#ov8825_mipi_raw s5k 8aayx_mipi_yuv #添加摄像头在kernal 模块CUSTOM_KERNEL_KPD = kpdCUSTOM_KERNEL_LCM = bi097xn02_xga_dpiCUSTOM_KERNEL_LEDS = mt65xx+CUSTOM_KERNEL_MAIN_IMGSENSOR = gc2235mipi_raw #ov8825_mipi_raw #在底层定义主摄像头CUSTOM_KERNEL_MAIN_LENS = ov8825afCUSTOM_KERNEL_RTC = rtcCUSTOM_KERNEL_SOUND = amp_6320pmic_spkCUSTOM_KERNEL_SSW = ssw_genericCUSTOM_KERNEL_SUB_BACKUP_IMGSENSOR =CUSTOM_KERNEL_SUB_BACKUP_LENS = dummy_lens-CUSTOM_KERNEL_SUB_IMGSENSOR = s5k8aayx_mipi_yuv+CUSTOM_KERNEL_SUB_IMGSENSOR = gc0313mipi_yuv#s5k8aayx_mipi_yuv #在底层定义副摄像头CUSTOM_KERNEL_SUB_LENS = dummy_lensCUSTOM_KERNEL_TOUCHPANEL = GT82X #cy8ctma300 GT818B-fpgaCUSTOM_KERNEL_USB = mt6577上面的修改是在平台没有默认AF(自动对焦)的功能(mtk6517和mtk6577\mtk6572的平台没有默认AF功能),mtk6589的平台默认就支持AF功能。
MTK驱动调试经验
MTK6735M项目F100驱动调试报告一配置EMMC按照硬件的选择配置新的flash,因为第一版都是按照MTK认证列表使用,所有一般如果不行有两个可能:1配置不正确,需要确定alps\bootable\bootloader\preloader\tools\emigen\MT6735下的flash 配置文件的时序是否正确,修改配置文件alps\bootable\bootloader\preloader\custom\f100\inc的文件custom_MemoryDevice.h2需要硬件配合查看是否EMMC元器件未能贴好,造成不能烧录二调试LCD调试步骤:1确定LCD的连接方式;1确定dws配置正确;2确定电源是否正确;3确定配置参数的读写方式类型,包括:LCM_setting_table模式读写:struct LCM_setting_table{unsigned cmd;unsigned char count;unsigned char para_list[64];};LCM_setting_table_V3模式读写:typedef struct{unsigned char id;unsigned char cmd;unsigned char count;unsigned char para_list[128];}LCM_setting_table_V3;4确定开关机的时序和读取初始化参数的方法;5确定DSI的配置是否正确,此配置函数为static void lcm_get_params(LCM_PARAMS*params)6如果做屏兼容,需要配置.compare_id=lcm_compare_id,此项为读取LCD ID进行判断;调试碰到问题:1参数的读写方式不正确,造成屏花屏,换一种读写方式正确;2suspend时未能写正确,在待机时出现kernel crash,需要特别注意;3未能配置lcm_compare_id,造成做屏兼容时未能自动识别;4TE的配置需要特别注意,此引脚MTK的补丁默认TE中断不开;三调试TPTP连接的接口为I2C模式调试步骤:1确定dws配置正确;2确定中断,电源正确;3确定I2C读写正确;4确定报点没有断点,TP没有坏点;5配置虚拟按键时注意键值范围;调试碰到问题:调试的TP为GT9157,出现很奇怪的问题,就是I2C的初始化读写没有报错,但是读写数据就是不成功,最后查找到问题为:I2C加了下拉的防静电电阻,造成实际上的下拉,但是根据规格书配置要求,必须要做上拉处理,否则容易出现读写不正常,所有此处造成I2C没有正常工作;三调试sensor system调试步骤:一accelerometer1确定dws配置正确;2确定中断,电源正确;3确定I2C读写正确;4确定好旋转的方向;调试碰到的问题:调试accelerometer出现没有报点,然后换了驱动就可以了,判断为原驱动内的读取x.y.z的方式不对;二alsps1确定dws配置正确;2确定中断,电源正确;3确定I2C读写正确;4确定好旋转的方向;调试碰到的问题:调试光感出现距离不对的问题,调试距离判断参数,成功;四调试camera调试步骤:1确定主副摄像头的型号,在配置文件配置好,添加好驱动代码;(注意:需要配置alps\device\huaying\f100里的ProjectConfig.mk,此文件为主要配置文件,配置alps\kernel-3.10\arch\arm64\configs里的f100_debug_defconfig)2确定dws配置正确;3确定摄像头的开关机的时序,按照摄像头的规格书来配置;4根据硬件配置好MCLK;5确定好是否支持AF,闪光灯功能;五调试Audio调试步骤:1按照驱动开发资料进行驱动配置,确定好是内置功放还是外置功放;2配置好音频功放的输入时序,按照喇叭的功率进行配置,外置功放配置路径为alps\kernel-3.10\sound\soc\mediatek\mt_soc_audio_v3\mt_soc_codec_63xx.c3按照硬件配置mic为单/双;六调试HEADSET调试步骤:按照驱动开发资料配置即可。
MTK_camera驱动流程总结_pei
Camera驱动流程总结范军君junjun.fan@目录1,Camera架构及流程简析2,初始化过程camera id检测3,Camera上电流程4,Camera打开流程Camera架构及流程简析MTK平台camera架构:Kernel部分主要有两块:一块是image sensor驱动,负责具体型号的sensor的id检测,上电,以及在preview,capture,初始化,3A等等功能设定时的寄存器配置。
另一块是isp driver,通过DMA将sensor数据流上传。
本篇主要介绍image sensor驱动的流程。
HAL层这边主要分3块,一块是imageio,主要是数据buffer上传的pipe。
一块是drv,包含imgsensor和isp的hal层控制。
最后是feature io,包含各种3A等性能配置。
本篇对HAL涉入不深,只在分析开机过程的id检测时会分析hal层的控制,属于第二块。
流程简析:主要发生在两个时间点:开机过程中camera的动作以及打开应用时camera的动作。
开机时,camera完成了sensor框架的初始化,id检测,以及上下电操作。
打开应用时,camera会有上电,完成寄存器的初始配置,向上层传送基本参数及配置信息,以及preview和capture模式循环。
初始化过程camera id检测代码分析:=>alps/mediatek/custom/common/kernel/imgsensor/kd_sensorlist.cmodule_init说明这段code在kernel初始化,也就是手机开机时运行。
在模块初始化函数中,注册一个i2c device,同时注册了一个platform driver注意driver name,匹配platform device需要名字一致。
Platform总线为虚拟总线,注册platform driver主要目的是隔离上下层,增强代码的可移植性。
MTK平台camera(摄像头)调试教程
Contents一、手机CAMERA的物理结构:........................................................................................ - 4 -二、 CAMERA 的成像原理: ................................................................................................. - 4 -三、 CAMERA 常见的数据输出格式:.................................................................................. - 5 -四、阅读CAMERA的规格书(以TRULY模组OV5647_RAW为例):........................... - 6 -五、 CAMERA 的硬件原理图及引脚 ..................................................................................... - 7 -1、电源部分:.................................................................................................................... - 7 -2、 S ENSOR I NPUT部分:................................................................................................... - 7 -3、 S ENSOR O UT P UT部分:............................................................................................... - 7 -4、 I2C 部分:SCL,I2C时钟信号线和SDA,I2C数据信号线。
mtk指南
mtk指南.txt爱,就大声说出来,因为你永远都不会知道,明天和意外,哪个会先来!石头记告诉我们:凡是真心爱的最后都散了,凡是混搭的最后都团圆了。
你永远看不到我最寂寞的时候,因为在看不到你的时候就是我最寂寞的时候!1. 如何确定你的山寨机是否支持MRP 软件?方法1:待机下输入输入*#777755999#或*#220807# 有反应的,就应该可以方法2:看看手机内存卡里是否存在[mulgame][mythroad][downdata/MR]三个中其中一个文件夹,(也就是mrp文件的地方,有少数手机的文件夹名称不是这样,有的还是中文的,例如长虹)2.把以下这几文件放进MulGame或者mythroad文件夹1.applist.mrp --应用程序接口文件2.dsm_gm.mrp --直接启动应用列表软件3.yyrj.mrp --应用软件列表文件西猫的手机这三个文件不在一个文件夹因为山寨大军的机型超级多无法总结出一个特定的规律只能根据我遇见的情况总结各位如果手机里没有这些文件而按指令码有反映那么请你在手机里自建一个MulGame文件夹或者mythroad文件夹————————————手机文件夹中的READER,cmsbrw,Phonebook是什么意思?Audio :铃声文件夹,用来储存铃声 Received :接收到的文件夹,别人发给你的文件信息都存在这里 Images :图片文件夹,用来储存待机画、屏保之类的 mms :用来存MMS信息的,就是彩信 Phbimage :这是个隐藏的文件夹,这个文件夹放着连接你的来电大头贴的的图片video :视频文件夹 photos :照片文件夹,储存相机拍摄的照片 my music :音乐文件夹brs :也是个隐藏文件,我还不清楚是做什么用的 download :下载的文件夹,用手机上网下载的文件存在这里 Ebook:存放电子书的,也就是TXT文件————————————MTK 6225 工程指令集关于MTK检测指令:目前MP3&MP4手机市场上的手机基本都只换了外壳,主板和平台就那么几个配套公司做的,拿到机器,输入版本指令便可以知道是那家的主板和平台了.为了很好的使用MTK智能王,在拿到用户手机时,通过指令来鉴别手机是否是MTK平台的手机就很有必要了,以下指令只要有一项指令能符合,那么就可以鉴别该手机是MTK平台的.MTK恢复原厂初始密码:112235E8D2H ---- 数据(数字):*#3646633#工程模式 *#66*#35E8E4H ---- 数据(数字):*#87# AUTO TEST35E8EAH ---- 数据(数字):*#33778#序号289BFCH ---- 数据(数字):*#0044#设为英文289C44H ---- 数据(数字):*#0086#设为简体2BA334H ---- 数据(数字):*#0886#繁体中文以下测试指令根据不同手机方案公司指令有所不同:方案配套指令 TEST指令MTK SIMCOM *#189# *#889#MTK 龙旗 *#8375#MTK手机工程模式和测试模式指令工程模式和测试模式指令工程模式: *#3646633# *#3656565#测试模式: *#66*#老机型US*#864322# 原厂设置*#86428# 自动测试*#864364# 工程模式*#864798# 查版本ENEV*#66*# 手动测试*#87# 自动测试*#3646633# 工程模式*#8375# 查版本*#0413*# 元件信息*#28526*# 防盗指令密码000000*#159# 软件测试*#951# 初始化*#357# 软件版本*#753#硬件测试*#3698741#选出厂设置下面是关于MTK芯片工程模式的介绍。
MTK平台camera兼容方法
52平台11B版本camera兼容设计声明:此设计主要是仿照53平台09B版本的camera兼容设计思想一.首先大概了解一下11B平台camera的设计架构及流程1.在手机开机时会调用cal_main.c中的CalInit函数,此函数会调用GetSensorInitFunc(&pImageSensorList);函数,这样在初始化时就会将SensorList中的定义了的所有camera的列表编译进来。
2.当打开camera时,系统会调用CalOpen函数,CalOpen函数里面首先会调用CalSearchSensor函数,通过调用CalSearchSensor函数来查找camera的ID,通过查找camera的ID即可知道调用哪个sensor的驱动。
下图是读取ID的代码:(CalSearchSensor函数代码)3.结合以上camera的流程与53平台09B版本的camera兼容设计思想,便做出了如下的兼容设计方案二.如下举个例子告诉大家如何做兼容,扩展兼容(比如要兼容一个SENSOR为SIV121D,需要做到如下六点)1.确保在custom\drv\YUV_sensor下面有相应的驱动模块SIV121D2.make file添加相关宏GN_DRV_CAMERA_AUTO_IDENTIFY = TRUEifeq ($(strip $(GN_DRV_CAMERA_AUTO_IDENTIFY)),TRUE)GN_DRV_NEED_CAMERA_IDENTIFY_ONE = GC0309GN_DRV_NEED_CAMERA_IDENTIFY_TWO = HI704GN_DRV_NEED_CAMERA_IDENTIFY_THREE = SIV121Dendif3 GN_custominfo.pl添加编译模块#GIONEE maliping 20101220 modify for gionee camera auto identify beginif($gn_drv_camera_auto_identify eq "TRUE"){if ($sensor_type eq "YUV"){if($gn_drv_need_camera_identify_one ne "NONE"){push(@thatdirs, "drv\\YUV_sensor\\$gn_drv_need_camera_identify_one");}if($gn_drv_need_camera_identify_two ne "NONE"){push(@thatdirs, "drv\\YUV_sensor\\$gn_drv_need_camera_identify_two");}if($gn_drv_need_camera_identify_three ne "NONE"){push(@thatdirs, "drv\\YUV_sensor\\$gn_drv_need_camera_identify_three");}}}#GIONEE maliping 20110324 modify for gionee camera auto identify end4. option.mak里面添加相关的宏控制ifdef GN_DRV_CAMERA_AUTO_IDENTIFYifeq ($(strip $(GN_DRV_CAMERA_AUTO_IDENTIFY)),TRUE)COM_DEFS += GN_DRV_CAMERA_AUTO_IDENTIFYifneq ($(strip $(GN_DRV_NEED_CAMERA_IDENTIFY_ONE)),NONE)COM_DEFS += GN_DRV_NEED_CAMERA_IDENTIFY_ONEendififneq ($(strip $(GN_DRV_NEED_CAMERA_IDENTIFY_TWO)),NONE)COM_DEFS += GN_DRV_NEED_CAMERA_IDENTIFY_TWOendififneq ($(strip $(GN_DRV_NEED_CAMERA_IDENTIFY_THREE)),NONE)COM_DEFS += GN_DRV_NEED_CAMERA_IDENTIFY_THREE Endifendifendif5. image_sensor.c里面的IMAGE_SENSOR_LIST_STRUCT SensorList列表中添加相应的驱动代码#ifdef GN_DRV_CAMERA_AUTO_IDENTIFY //GIONEE: add by maliping 20110916 #ifdef GN_DRV_NEED_CAMERA_IDENTIFY_ONEADD_SENSOR(GC0309_SENSOR_ID,GC0309,IMAGE_SENSOR_MAIN),#endif#ifdef GN_DRV_NEED_CAMERA_IDENTIFY_TWOADD_SENSOR(HI704_SENSOR_ID,HI704,IMAGE_SENSOR_MAIN),#endif#ifdef GN_DRV_NEED_CAMERA_IDENTIFY_THREEADD_SENSOR(SIV121D_SENSOR_ID,SIV121D,IMAGE_SENSOR_MAIN), #endif#endif6.在image_sensor.c开头包含相应头文件#ifdef GN_DRV_CAMERA_AUTO_IDENTIFY //GIONEE: add by maliping 20110916#ifdef GN_DRV_NEED_CAMERA_IDENTIFY_ THREE#include "image_sensor_SIV121D.h"#endif#endif7.保证sensor的SIV121D DetectSensorId函数中未读到ID时返回的值为MM_ERROR_SENSOR_READ_ID_FAIL;以免读取ID时出错。
协助客户调整及测试MTK 手机Camera IQ项目与必备设备
LSC
LSC(Lens Shading Correct): 鏡頭陰影校正
1. 由於Lens的光學特性, Sensor影像區的邊緣 區域接收光的強度比中心小, 因此需要ISP進行 校正,使整個圖像亮度均勻 2. 因Lens 會加IR-Cut 或是顏色濾光片, 主要目的是眼 睛看不到的光濾掉, 防止Sensor因這些光產生如鬼影 現象, 但濾掉的光並不會那麼均勻, 所以會產生顏 色斑點現象, 需利用後端ISP 將顏色斑點消除
Gamma 分析
如例為Gamma=1.6
Noise Reduction
噪點去除:
因感光度ISO 或其他種種因素造成Noise, 可以協助
客戶減小Noise 或讓Noise看起來較不明顯, 但有時是 客戶零件或Layout 的因素造成的Noise, 這就較難避 免, 需協調客戶修改
Noise Reduction
1. 暗房
調整Camera 參數最好在暗房做, 以免其他光源因素
影響數值的正確性
調整手機Camera 參數必備設備
2. DNP 燈箱及濾鏡
調整Shading 及AWB 8組色溫需要
調整手機Camera 參數必備設備
3. 可調整色溫燈箱
調整CCM, Noise, AE, Gamma 需要
CCM(顏色校正)
針對4組色溫做24 colorcheck 正確性的校正,
再根據客戶喜好調某些顏色的Saturation 及Hue
CCM 調適設備
可變化4組色溫D65, TL84, CWF, A-Light 的燈箱
CCM 調適及測試chart
24 colorcheck
CCM 調適標準
LSC 測試使用imatest
MTK平台驱动调试介绍
模块调试:LCM、Backlight
LCM
Main-Panel LCD Module EMI/NFI 8080
Parallel Accelerator
LCD DMA Controller
Sub-Panel LCD Module (Opt.)
LCD DATA LCD CLK LCD CS0/1 LCD A0
• • • •
• • • • • • • • • • • • •
如果需要添加新键,除了上述外还需修改以下几处: interface\hwdrv\kbd_table.h 定义DEVICE_KEY_XX:注意顺序 #define DEVICE_KEY_XX顺序值 plutommi\mmi\Framework\Osl\OslSrc\KeyBrd.c 假设DEVICE_KEY_XX为特定的按键 定义特定的按键 const U16 PresentAllKeys[ ]= { KEY_0,KEY_1,KEY_2,KEY_3,KEY_4,KEY_5,…… //定义特定的按键 KEY_XX, };
Serial Accelerator
MT 62XX
• • • • • • • • • • • • •
以SUNRISE_0255_LCM为例 MXX_GPRS.mak中配置LCD_MODULE和MAIN_LCD_SIZE; LCD_MODULE = SUNRISE_0255_LCM MAIN_LCD_SIZE = 240X320 Option.mak中加入: COM_DEFS_FOR_SUNRISE_0255_LCM = SUNRISE_0255_LCM HX8312 COLOR_LCD TFT_MAINLCD QVGA_MAINLCD 其中HX8312为LCD的型号; COLOR_LCD,TFT_MAINLCD,QVGA_MAINLCD为LCD的类型 QVGA_MAINLCD:240X320 QCIF_MAINLCD: 176X220 QQVGA_MAINLCD: 120X160 如在SUNRISE_0255_LCM的基础上添加兼容屏;则在HX8312后面 顺序加入LCD的型号 如果有Sub LCD;则需要顺序加入DUAL_LCD;COLOR_SUBLCD 以及型号名称;
MTK驱动架构分析及驱动调试指引
Camera MMI程序分析(3/3)
Camera MMI仅控制应用逻辑,而避免去涉及 照相机驱动的细节。比如说进入preview过程, Camera MMI仅仅是向MDI接口模块发送一个 Preview的请求,并将自己的数据结构传给MDI 层,再由MDI层向Media task层发送请求,并最 终调用到驱动程序来控制芯片实现preview。 MMI不关心不同的芯片如何去进入preview。 OSD是通过GDI层来绘制的,因为GDI支持最 大4层的图像叠加(6228平台可支持6层GDI)
Camera MMI程序分析(2/3)
Exit Preview
Capture
Capture Contshot Capture C来自untdownCancel
Capture Burstshot
Save Done
Save
Save Burstshot Burst Save Confirm Save Confirm
Media Task总结
总结
充分了解Media Task的作用和工作流程以后, 就可以理顺从Camera应用程序到底层程序的 整个流程和逻辑,无论是应用程序还是驱动 程序编程都会变得非常的轻松。 Media Task是可扩展可更改的,所有的代码 都是开放的,我们也可以订制一些自己的东 西。比如在200万像素拍照时出现了内存不 足问题,我们就修改了对文件的操作方法。
GDI简介(Graphics Device Interface)
MTK的画图功能有两套体系,一套是 pixtel的体系,另一套是GDI。Pixtel的体 系比较老,它最开始是用来处理单层图 像的简单接口,pixtel体系也是基于GDI 基础上封装出来的。而GDI体系由于有硬 件的支持,它可以处理最多4个层数据的 叠加,有很强的表现能力。 硬件支持有:DMA的传输,图片硬件解 码,以及2D加速器等。
MTK平台camera(摄像头)调试教程解读
Contents一、手机CAMERA的物理结构:........................................................................................ - 4 -二、 CAMERA 的成像原理: ................................................................................................. - 4 -三、 CAMERA 常见的数据输出格式:.................................................................................. - 5 -四、阅读CAMERA的规格书(以TRULY模组OV5647_RAW为例):........................... - 6 -五、 CAMERA 的硬件原理图及引脚 ..................................................................................... - 7 -1、电源部分:.................................................................................................................... - 7 -2、 S ENSOR I NPUT部分:................................................................................................... - 7 -3、 S ENSOR O UT P UT部分:............................................................................................... - 7 -4、 I2C 部分:SCL,I2C时钟信号线和SDA,I2C数据信号线。
MTK平台驱动调试笔记
分类:LINUX一、【一】调试串口的设置驱动的调式过程经常需要通过trace工具看log的,trace前需要修改手机串口,有以下三种方法设置串口1 通过手机进入工程模式设置2 修改代码,修改Nvram_user_config.c中的NVRAM_EF_PORT_SETTING_DEFAULT[]3.通过META工具修改在连上meta:左上角选中NVRAM Editor,在跳出的对话框里选择other LID,再选择NVRAM_EF_PORT_SETTING_LID,接下来read from nvram,对话框右边就会出现串口的设置情况,对调tst_port_ps(输入0)和ps_port(输入99)的值,二【【二】关于gpio口Gpio的初始化在文件gpio_drv.c里,可以用MTK提供的工具配置也可以用代码在程序里直接操作,二者的选择要看有没有定义宏__CUST_NEW__工具初始化时要注意配置codegen.dws,该文件里配置的只是对gpio口的初始化,并不是所有的gpio口都要设置成工作时的模式,尤其是当作时钟和蓝牙部分的gpiio口,初始化时就设置成工作模式的话会造成电机电流过大的。
代码初始化时DRV_WriteReg()、DRV_Reg对gpio口寄存器操作,分别定义gpio口的模式,和方向(0:输入;1:输出),对单个gpio口操作用到以下函数(以gpio25为例):GPIO_ModeSetup(25, 0);设置GPIO25为模式0GPIO_InitIO(1,25);初始化GPIO25方向为输出GPIO_WriteIO(0, 25 );设值GPIO25输入低电平0三、【三】键盘设置1)键盘定义Keypad_def.c如果定义CUST_NEW,工具中的键盘定义对应在改文件里的KEYPAD_MAPPING(keypad_drv.h);2)硬件键盘定义与软件mmi键盘的对应nKeyPadMap[](Keybrd.c)3)工程模式键盘测试函数EntryFMKeypadTest()修改键盘测试时界面显示的键的名称1. 做好上面的第一第二两步2. FactoryModeSrc.c开始部分定义添加的键所要显示的名称,值,分别应用到keypad_layout[](确定要显示的位置),keypad_value[]3.在EntryFMKeypadTest()函数中的数组IdleScreenDigits[]里添加要显示的键4)如果要设置一个键不管在什么界面下都起作用的话(如手电筒开关或则其他需求)就需要在键盘的事件响应函数static voidKeyEventHandler(KEYBRD_MESSAGE *eventKey)里设置,根据键值条用相应的响应函数,不过该函数及时在锁屏状态下也会执行的,需要根据需要添加条件语句四、关于LCDlcm背光驱动分为两种控制方式:1. pwm这个是通过调占空比来调节亮度的持续信号;2. PFM这个是通过脉冲的个数来控制LCM背光亮度。
MTK手机平台下camera的设置方案
cam_set_param_req_hdlr()
camera_operation_setting()
yuv_operation_setting()[camera_yuv_process_v2.c--2475]
imagesetting
(注: image_sensor_func相关函数的注册,在image_sensor_gc0309.c)
当需要显示时,调用preview函数,使所有参数开始生效
生效:
mdi_camera_preview_start()
mdi_camera_preview_start_internal()
media_cam_preview()
cam_send_preview_req()
(MSG)
cam_preview_req_hdlr()
camera_preview_process()[camera_process_v2.c--]
yuv_preview_process()[camera_yuv_process_v2.c--2223]
yuv_image_setting()[camera_yuv_process_v2.c--2881]
image_sensor_func->yuv_sensor_setting
生效:
mdi_camera_power_on()
media_cam_power_up()[发送MSG_ID_MEDIA_CAM_POWER_UP_REQ消息]
(MSG)
cam_power_up_req_hdlr()
image_sensor_func->sensor_init()[camera_process_v2.c]
mmicamerarescamerac总设置窗口cameramenuc各种处理函用于记录设置值当需要显示时调用preview函数使所有参数开始生效生效
MTK53平台CAMERA兼容说明及新项目CAMERA移植说明
53平台CAMERA兼容说明及新项目CAMERA移植说明为了在MT6253平台上兼容多种型号IC的摄像头,增加了CAMERA兼容代码,此文档主要介绍为兼容而修改的内容,现在以N601项目为例说明,同时兼容GC0307及GC0309两个摄像头,其它以此类推。
1. make file 修改(1). 在N601.mak 文件中使用功能开关MULTI_SENSOR_SUPPORT = TRUE # 多摄像头支持(2). 在option.mak 文件中使用功能定义代码控制宏ifdef MULTI_SENSOR_SUPPORTifeq ($(strip $(MULTI_SENSOR_SUPPORT)),TRUE)COM_DEFS += __ZW_MULTI_SENSOR__endifendif2. 加入SENSOR目录,在custom\drv\YUV_sensor 此目录中为所有项目及各类SENSOR的驱动代码,加入N601_SENSOR目录,将各SENSOR的驱动代码加入到此目录中。
如camera_yuv_para_GC0307.ccamera_yuv_para_GC0309.cimage_sensor_GC0307.cimage_sensor_GC0307.himage_sensor_GC0309.cimage_sensor_GC0309.husbvideo_attr_GC0307.cusbvideo_attr_GC0307.husbvideo_attr_GC0309.cusbvideo_attr_GC0309.h3. 在custom\drv\Camera_common目录中找到image_sensor.c 此文件,此文件中有所有可兼容的SENSOR的LIST。
sensor_set_struct sensor_list[MAX_EXIST_SENSOR_NUMBER + 1] ;如果在此sensor_list中没有找到SENSOR的定义需要自己加入,可参照其它SENSOR的方式一样加入,比如GC0307此IC SENSOR,主要涉及二个文件camera_tuning_para.himage_sensor.c4. 在zw_camera_multi_sensor.h文件中加入需要兼容的SENSOR IC的宏定义。
MTK平台camera(摄像头)调试教程
MTK 平台 CAMERA 驱动浅析Camera Driver analysis in the platform of MTKDocument Number:Preliminary (Released) InformationRevision:0.1Release Date:Ghong Confidential Revision 0.1-Feb.14 2012- 1 -Ⓒ2012 Ghong inc.Revision HistoryRevision Date (dd/mm/yyyy)Author Comments0.114/02/2012Guoqing Zhang Draft VersionGhong Confidential Revision 0.1-Feb.14 2012- 2 -Contents一、手机CAMERA的物理结构:........................................................................................ - 4 -二、 CAMERA 的成像原理: ................................................................................................. - 4 -三、 CAMERA 常见的数据输出格式:.................................................................................. - 5 -四、阅读CAMERA的规格书(以TRULY模组OV5647_RAW为例):........................... - 6 -五、 CAMERA 的硬件原理图及引脚 ..................................................................................... - 7 -1、电源部分:.................................................................................................................... - 7 -2、 S ENSOR I NPUT部分:................................................................................................... - 7 -3、 S ENSOR O UT P UT部分:............................................................................................... - 7 -4、 I2C 部分:SCL,I2C时钟信号线和SDA,I2C数据信号线。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Contents一、手机CAMERA的物理结构:........................................................................................ - 4 -二、 CAMERA 的成像原理: ................................................................................................. - 4 -三、 CAMERA 常见的数据输出格式:.................................................................................. - 5 -四、阅读CAMERA的规格书(以TRULY模组OV5647_RAW为例):........................... - 6 -五、 CAMERA 的硬件原理图及引脚 ..................................................................................... - 7 -1、电源部分:.................................................................................................................... - 7 -2、 S ENSOR I NPUT部分:................................................................................................... - 7 -3、 S ENSOR O UT P UT部分:............................................................................................... - 7 -4、 I2C 部分:SCL,I2C时钟信号线和SDA,I2C数据信号线。
.................................. - 7 -六、 MTK 平台 CAMERA 驱动架构: .................................................................................. - 8 -七、 MTK 平台 CAMERA 相关代码文件(以下代码均为 MTK6575 平台): .................... - 9 -1、 C AMERA S ENSOR驱动相关文件.................................................................................... - 9 -2、 S ENSOR ID 和一些枚举类型的定义............................................................................. - 9 -3、 S ENSOR供电.................................................................................................................. - 9 -4、 K ERNEL S PACE的 S ENSOR L IST,IMGSENSOR模块注册............................................... - 9 -5、 U SER S PACE的 S ENSOR L IST,向用户空间提供支持的 S ENSOR L IST.........................- 10 -6、 S ENSOR效果调整的接口............................................................................................- 10 -八、 CAMERA 模块驱动、设备与总线结构: .....................................................................- 11 -A)驱动的注册: ..................................................................................................................- 11 -B)设备的注册: ..................................................................................................................- 11 -C)总线的匹配: ..................................................................................................................- 12 -九、 CAMERA 驱动工作流程: ............................................................................................- 13 -十、 CAMERA 驱动添加、调试流程:.................................................................................- 17 -Ghong Confidential Revision 0.1-Feb.14 2012- 3 -Ⓒ2012 Ghong inc.一、手机Camera的物理结构:FPC: Flexible Printed Circuit 可挠性印刷电路板Sensor:图象传感器IR:红外滤波片Holder:基座Lens:镜头二、Camera的成像原理:景物通过镜头(LENS)生成的光学图像投射到图像传感器(Sensor)表面上,然后转为模拟的电信号,经过 A/D(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(DSP)中加工处理,再通过 IO 接口传输到 CPU 中处理,通过 LCD 就可以看到图像了。
图像传感器(SENSOR)是一种半导体芯片,其表面包含有几十万到几百万的光电二极管。
光电二极管受到光照射时,就会产生电荷。
目前的 SENSOR 类型有两种:CCD(Charge Couple Device),电荷耦合器件,它是目前高像素类 sensor 中比较成熟的成像器件,是以一行为单位的电流信号。
CMOS(Complementary Metal Oxide Semiconductor),互补金属氧化物半导体。
CMOS 的信号是以点为单位的电荷信号,更为敏感,速度也更快,更为省电。
ISP 的性能是决定影像流畅的关键,JPEG encoder 的性能也是关键指标之一。
而 JPEG encoder 又分为硬件 JPEG 压缩方式,和软件 RGB 压缩方式。
DSP 控制芯片的作用是:将感光芯片获取的数据及时快速地传到 baseband 中并刷新感光芯片,因此控制芯片的好坏,直接决定画面品质(比如色彩饱和度、清晰度)与流畅度。
三、Camera常见的数据输出格式:常见的数据输出格式有:Rawdata 格式、YUV 格式、RGB 格式。
RGB 格式:采用这种编码方法,每种颜色都可用三个变量来表示红色、绿色以及蓝色的强度。
每一个像素有三原色 R 红色、G 绿色、B 蓝色组成。
YUV 格式:其中“Y”表示明亮度(Luminance或Luma),就是灰阶值;而“U”和“V”表示色度(Chrominance 或 Chroma),是描述影像色彩及饱和度,用于指定像素的颜色。
RAW DATA 格式:是CCD或CMOS在将光信号转换为电信号时的电平高低的原始记录,单纯地将没有进行任何处理的图像数据,即摄像元件直接得到的电信号进行数字化处理而得到的。
支持 YUV/RGB 格式的模组,一般会在模组上集成 ISP(Image Single Processor),经过A/D 转换过的原始数据经过 ISP 处理生成 YUV 标准格式传到 BB。
一般来说,这种设计适用于低像素 Camera 的要求,会在主板上省去一个 DSP,可降低成本。
在调试过程中,YUV/RGB 格式的摄像头,其所有参数都可在 kernel 层通过寄存器来控制。
调试一般由 sensor的原厂支持。
支持 RawData 格式的模组,由于感光区域的需求,不会再模组内集成 ISP 以最大程度的增大感光区域的面积,提高照片质量。
模组把原始的数字信号传给BB 上的DSP 进行处理,MTK 自带的 DSP 一般包含 ISP、JPEG encoder、和 DSP 控制芯片。
在调试的时候图像的效果需要 MTK 在 HAL 层的参数进行支持。
四、阅读Camera的规格书(以Truly模组OV5647_Raw为例):Ghong Confidential Revision 0.1-Feb.14 2012- 6 -Ⓒ2012 Ghong inc.五、Camera的硬件原理图及引脚(以W19S项目MainCameraOV5647为例):从上面可看出,连接 Camera 的 30 根 Pin 脚可大致分为以下几类:1、电源部分:a)VCAMD 就是 DVDD 数字供电,主要给 ISP 供电,由于 RAWDATA 格式的 sensor 其 ISP 是在 BB 端,所以将其引脚将其 NC。
从上面的规格书上可以看出 DVDD 是内部 BB 端供电。
模组已将其 NC 掉了;b)VCAM_IO 就是 VDDIO 数字 IO 电源主要给 I2C 部分供电;c)VCAMA 就是 AVDD 模拟供电,主要给感光区和 ADC 部分供电;d)VCAM_AF 是对 Camera 自动对焦马达的供电。
2、 Sensor Input 部分:a)Reset 信号,用于复位、初始化。
b)Standby/PowerDown 信号,用于进入待机模式,降低功耗。