高通摄像头调试(OV8856)
http://blog.chinaunix.net/uid-7213935-id-5749314.html
一.硬件分析
在調(diào)試的時候,一定要拿到電路圖,模組規(guī)格書,SENSOR IC datasheet。
下面是主 camera 電路圖:
由上面電路圖我們看樣看出,此模組有以下主要線路:
1.電源:結(jié)合 OV8856 的 datasheet 可知,AVDD:2.8;IOVDD:1.8;DVDD:1.2V;
2.控制訊號:RESET,POWERDOWN;
3.通訊訊號:IIC 通訊,CLK,DATA;
4.數(shù)據(jù)通訊:一組 MIPI CLK 信號,4 組 MIPI data 信號;
5.其他信號:MCLK,ID_PIN,GND。
副 CAMERA 和主 CAMERA 的電路圖類似,差別在于,副 CAMERA MIPI 通訊組多寡而
已,同時控制信號 RESET 和 POWERDOWN 則是單獨控制的。IOVDD 和 AVDD 一般都是固
定的而有些模組的 DVDD 是有差別的,比如 OV 的高像素 SENSOR 一般是 1.2V,而格科微低
像素 SENSOR 的電壓為 1.8V,極少數(shù)為 2.8V;所以在調(diào)試的時候一定要先確認(rèn)這個電壓,否
則輸出不了圖像。
另外由電路圖和模組規(guī)格書上可知還包括其他兩部分(單獨電路圖省略):
1. 聚焦馬達(dá):電壓 AF _VDD:2.8V;使能 AF_EN;
2. 閃光 FLASH: CAM_FLASH;
二. 軟件代碼整合
如何添加 camera 模組
Camera 驅(qū)動代碼的添加主要是兩個部分,一個是 kernel 層,一個是 vendor 層。
1.Kernel 部分
主要是配置 dts 文件,供 msm_sensor.c 讀取。
a. 確認(rèn)配置 menuconfig
在 qcom 平臺上,已經(jīng)弱化了 menuconfig,但是有的也需要配置下,如各種傳感器等等。對
于 camera 部分,主要檢查以下配置既可:
CONFIG_MEDIA_CAMERA_SUPPORT=y
CONFIG_MEDIA_RADIO_SUPPORT=y
CONFIG_MEDIA_CONTROLLER=y
CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_VIDEOBUF2_MSM_MEM=y
CONFIG_V4L_PLATFORM_DRIVERS=y
CONFIG_MSMB_CAMERA=y
b.dts 部分
dts 的配置,調(diào)試部分會有詳細(xì)說明。
2.Verdor 部分
而實質(zhì)性的代碼一般都放在 vendor 下,這部分是高通自己實現(xiàn)的 daemon 進(jìn)程和 kernel 層
以及 hal 層進(jìn)行通訊的框架代碼;另一部分是效果代碼。
a. 配置 config 文件:
vendor\qcom\proprietary\common\config\device-vendor.mk
b.添加適配 string
模組之間都是通過名稱是適配的,所以名稱的選取和一致性就尤為重要。
在此文件中,對應(yīng) camera probe 加載:
vendor\qcom\proprietary\mm-camera\mm-camera2\mediacontroller\modules\sensors\module\sensor_init.c
#define BOARD_SENSORS \
"ov8856",\
#endif
在此文件中,對應(yīng) camera probe 加載:
vendor\qcom\proprietary\mm-camera\mm-camera2\mediacontroller\modules\sensors\module\sensor_init.c
#define BOARD_SENSORS \
"ov8856",\
#endif
boolean sensor_init_probe(module_sensor_ctrl_t *module_ctrl)
{
….............
for (i = 0; i < ARRAY_SIZE(sensor_libs); i++) {
ret = sensor_probe(sd_fd, sensor_libs[i]);
…..............
}
c.sensor,actuator 基本驅(qū)動配置以及效果參數(shù)文件
三 .驅(qū)動調(diào)試
1. dts 配置
在 msm.c 和 msm_sensor.c 中,高通已經(jīng)幫我們寫好了軟件架構(gòu),一般不用修改代碼,主
要是配置 dts 文件:msm8909-camera_sensor-skuc.dtsi。
2. sensor_lib_t 結(jié)構(gòu)體
在 sensor lib 中,有 sensor 基本驅(qū)動,主要是添加 sensor_lib_t 結(jié)構(gòu)體:
3. Chromatix 參數(shù)
對于 Chromatix 參數(shù)驅(qū)動工程師要和模組廠或是 ic 原廠工程師溝通調(diào)試驗證,他們給
出參數(shù)后,驅(qū)動工程師在 merge 的時候也要特別注意,對齊,回車等等一定要注意,否則可能
會出現(xiàn)編譯出錯的現(xiàn)象;當(dāng)然聚焦馬達(dá)要有由高通來調(diào)試。
一般情況下,按照上面操作,sensor 都可以有預(yù)覽出來,在此基礎(chǔ)上,例如圖像翻轉(zhuǎn)
180°,顏色 rgb 反調(diào)等等,都是可以通過 init reg 做簡單的調(diào)試既可;驅(qū)動工程師整合調(diào)試好基
本版本了,就要和 ic 原廠或模組廠聯(lián)系以及配合調(diào)試效果了。
當(dāng)然在有些情況下,fae 也不是萬能的,比如 OV 的 fae,基本不會搭理你的;而有
些問題 FAE 也不定能解答,很多時候是時間上不允許;這個時候就要大力發(fā)揮驅(qū)動工程師
的能動性,高通的海量調(diào)試信息就會派上大用場,后面我會寫一篇關(guān)于 tuning 的文檔,作
為此文檔的補(bǔ)充。
四 效果驗證
vendor 下的編譯,根據(jù) andriod.mk 和 makefile 文件,一般 mm 即可,在編譯終端下
看生成的 so 的目錄和具體文件,然后把生成的 so 文件 push 到相應(yīng)的目錄下,重啟即可(效
果參數(shù)沒有必要重啟)。
高通或是模組廠調(diào)試好后,效果參數(shù)給到我們,一定要確保編譯沒有問題。
在驗證的時候,要考慮不同光源下的情況,由于我們沒有特定的光源實驗室,一般情況
下,驗證四個(正常情況,暗處,強(qiáng)光(窗口,日光燈),逆光情況)即可。
在驗證的時候自己一定要多使用,多場景下切換,同時 prevew,capture,video 都要測試
到。
總結(jié)
以上是生活随笔為你收集整理的高通摄像头调试(OV8856)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MT6580启动流程
- 下一篇: 主流TTLCMOS电平介绍