日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

高通Android平台硬件调试之Camera篇

發(fā)布時間:2025/4/16 Android 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高通Android平台硬件调试之Camera篇 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
之前一段時間有幸在高通android平臺上調(diào)試2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同時也支持AF,調(diào)試比較比較簡單,因為別的項目已經(jīng)在使用了,只是把相關(guān)的驅(qū)動移植過來就好;另一款是Samsung的一款比較新的3M YUV FF sensor,在最新項目中要使用的,本文以調(diào)試該sensor為例,從底層驅(qū)動的角度分享一下高通android平臺下調(diào)試camera的經(jīng)驗,而對于高通平臺camera部分的架構(gòu)以及原理不做過多的介紹。
一、準(zhǔn)備工作
從項目中看,在硬件(板子)ready前,軟件部分是要準(zhǔn)備好的。單獨從底層驅(qū)動來看,軟件部分可以分為2個部分,一個是高通平臺相關(guān)的,再一個就是sensor部分的,通常的做法就是把sensor相關(guān)的設(shè)定移植到高通平臺的框架之中。這樣就需要先拿到sensor的spec以及廠商提供的sensor register setting file。Spec的用途是清楚高通平臺和sensor通訊(讀寫寄存器)的時序以及相關(guān)參數(shù)設(shè)定;而廠商提供的setting file則是在使用camera各個功能(preview、snapshot...)時候需要寫入到sensor中的.
本項目中,高通平臺為MSM7X27,camera為Samsung 5CA。從spec中知道,該sensor的I2C ID為0x78,I2C的通信采用雙字節(jié)方式,另外也弄清楚了讀寫sensor寄存器的規(guī)則,從調(diào)試角度看這些基本上夠用了。另外廠商提供的setting file,其實就是寄存器列表,告訴我們再什么時候?qū)⒛男┘拇嫫鲗懭胧裁粗?#xff0c;通常是一個寄存器地址再加上一個寄存器的值,不過Samsung提供的是PC上調(diào)試使用的文本,需要自己轉(zhuǎn)換成c語言中的二維數(shù)組。從文件中看,寄存器數(shù)據(jù)可以分為幾個部分:初始化、IQ設(shè)定(tuning相關(guān))、clk設(shè)定、preview設(shè)定、snapshot設(shè)定,基本上有這幾個就夠了,其他的比如調(diào)節(jié)亮度啦、設(shè)定特殊效果啦、設(shè)置白平衡啦等等都可以自己通過spec來完成。
Sensor部分的東西搞定后,接下來就是修改高通camera部分的驅(qū)動了,主要有:
Kernal部分:
1、檢查Sensor的電源配置,并修改軟件中的設(shè)定。本項目中使用2.8/1.8/1.5共3個電源。
2、檢查并修改sensor reset設(shè)置。注意reset的時間設(shè)定,務(wù)必和spec中一致,否則會導(dǎo)致sensor無法工作。
3、修改I2C驅(qū)動,使用雙字節(jié)讀寫的接口,并完成讀取sensor ID的接口。這個用來檢驗I2C通訊是否OK
4、導(dǎo)入寄存器設(shè)定,分別在初始化、preview、snapshot等幾個部分寫入對應(yīng)的寄存器值。
注意:reset以及寫寄存器部分一定要按照spec的規(guī)定加入一些delay,否則會導(dǎo)致sensor工作異常

User空間部分:
這個部分主要是根據(jù)硬件的規(guī)格來配置VFE,如sensor輸出數(shù)據(jù)的格式,接口方式、分辨率大小、同步信號模式等,比較簡單,但一定要檢查仔細(xì),任何一個地方不對都會導(dǎo)致調(diào)試失敗。
到這里為止,軟件部分的準(zhǔn)備已經(jīng)告一段落了。

二、調(diào)試環(huán)境準(zhǔn)備(板子出來了,但sensor sample還沒到位)
首先,測試點的準(zhǔn)備。
調(diào)試前就需要想好,如果sensor無法工作,要怎么去debug,這就需要去測量一些信號,比如power、reset、I2C、M/P CLK、H/V同步信號、數(shù)據(jù)信號等,要確保這些信號都可以測量到。
其次要選擇軟件的調(diào)試環(huán)境,這里選擇在ADB環(huán)境中執(zhí)行高通的mm-qcamera-test程序來調(diào)試,相關(guān)的trace都可以打印出來。
這樣就萬事俱備,只欠sensor了。

三、調(diào)試(sensor終于拿到了)
將sensor接到板子上,開機后,ADB中運行調(diào)試程序,preview畫面并沒有出來,失敗,有點小失望,本來覺得可以一氣呵成的,但畢竟這是一個全新的sensor,任何一個地方?jīng)]有想到位做到位都會導(dǎo)致失敗。那就找原因吧。
1、首先從trace得知,I2C已經(jīng)讀到了sensor的ID:0x05CA,這可以說明I2C通訊是沒有問題的
2、接著檢查Sensor的電源配置,測量了供給sensor的3個電源,都是OK的。
3、測量MCLK,這個是提供給sensor使用的,正常(24MHZ)
4、測量PCLK,這個是sensor輸出的,正常(58MHZ,高通上限為96MHZ),和寄存器中配置的一致。
5、測量H/V同步信號,這個是sensor輸出的,正常。和FPS和分辨率一致。
6、測量數(shù)據(jù)信號,這個是sensor輸出的,正常。(數(shù)據(jù)信號,示波器上可以看到)
這樣看來,sensor已經(jīng)在正常工作了,但為何preview畫面沒有出來呢?繼續(xù)檢查高通這邊的設(shè)定。
從trace看,高通的VFE已經(jīng)reset并且start了,但一直接沒有輸出preview數(shù)據(jù),這就奇怪了,sensor明明已經(jīng)輸出了,為什么VFE接收后并沒有把數(shù)據(jù)吐出來呢,難道這個sensor輸出的數(shù)據(jù)VFE無法識別?為了驗證這個問題,我在另一塊板子上測量了OV sensor輸出數(shù)據(jù)的波形,主要是M/P clk、H/V同步信號,然后再拿來對比,不過并沒有發(fā)現(xiàn)異常,只是H/V同步信號有所不同,主要高低的占空比不太一致,會不會是這樣信號的問題呢?為了進一步驗證,我同時測量了H/V 信號和數(shù)據(jù)信號,這時發(fā)現(xiàn)OV sensor輸出的數(shù)據(jù)信號是包在V幀同步信號的低電平中;而Samsung 5CA輸出的數(shù)據(jù)信號是包在V幀同步信號的高電平中,會不會是因為V信號極性設(shè)置不對導(dǎo)致VFE沒有讀取到sensor輸出的數(shù)據(jù)呢?重新檢查了一下高通VFE的設(shè)定,果然有一個參數(shù)是用來設(shè)定V信號極性的,這個參數(shù)默認(rèn)是Active Low的,我這邊并沒有去修改它。接著把這個參數(shù)修改為Active High,重新build、download后,開機運行,Ok了,preview畫面可以正常顯示了。到這里為止sensor的硬件調(diào)試可以算作完成了,后續(xù)的其他功能也可以慢慢完善了。

總結(jié)

以上是生活随笔為你收集整理的高通Android平台硬件调试之Camera篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。