camera MCLK配置错误造成 i2c不通的 修改方法

来源:互联网 发布:数据归一化 代码 编辑:程序博客网 时间:2024/05/05 10:41
[DESCRIPTION]
MT6795 MT6735平台,HW 上MCLK和SW上MCLK 配置不匹配的话,如HWMCLK 共用,SW没有共用的话,会造成能开机搜到对应的sensor id,但open时又找不到id,i2c不同(开机读到id, 但是open时还有find id过程,这时仅用了对应的mclk)。

1 开机能search 到sensor id原因:开机时三路MCLK 的pll都打开了,所以在kd_camera_hw.c中对正确的MCLK上电就可以正常工作,找到sensor id了。


2 open 时找不到sensor id原因:
sensor open 时为节省功耗,打开对应的MCLK PLL,但若HW上和SW上的MCLKPORT 配置不正确的话,会造成i2c不能正常工作难道是scl时钟线?),从而读不到sensor id。
所以SW上要根据HW配置正确的MCLK PORT(可得出:main or sub camera既可以公用一条mclk线,也可以单独在一条mclk,目前最多三条)

[SOLUTION]
a, MCLK共用配置MCLK PORT方法:
修改cfg_setting_imgsensor.cpp (vendor\mediatek\proprietary\custom\mt6735\hal\D1\imgsensor_src\cfg_setting_imgsensor.cpp)中函数getSensorMclkConnection, 根据HW 上实际MCLK连接情况来配置。
比如说:若sub sensor和main 共用MCLK1,则做如下修改:
 

b, 在kd_camera_hw.c中对正确的MCLK上下电  ,即ISP_MCLK1_EN(1);或ISP_MCLK1_EN(0);


原创粉丝点击