“ 日常工作中, 我們拿到一款新 sensor,一般都是先點亮磷箕,再接著調(diào)試效果选酗。但點亮及調(diào)試也是有流程的,需按流程一步步去完成才可以岳枷,此文總結(jié)一下 芒填,關(guān)于 sensor 從點亮出圖到效果調(diào)試的一個大致流程 。如覺得文中哪里有問題空繁,或者不清楚的地方殿衰,歡迎聯(lián)系指出∈⑴荩”
1闷祥、Sensor 調(diào)試流程
2、準(zhǔn)備材料
1)饭于、確認(rèn)主芯片規(guī)格
支持的最大分辨率蜀踏、mclk、mipi 速率上限掰吕、支持的lane數(shù)果覆、 支持的raw圖像位深、支持的raw圖像類型(mono/rgb/rgbir)
2)殖熟、硬件原理圖
客戶主板上調(diào)試局待,則需要客戶提供主板原理圖;平臺公板上調(diào)試,則需要提供模組轉(zhuǎn)接板原理圖钳榨、相應(yīng)公板的原理圖舰罚。
3)、Sensor datasheet
確認(rèn)曝光時間薛耻、增益如何設(shè)置营罢,幀率如何修改;確認(rèn) WDR 輸出模式( 是否是dol模式/ dol_virtual channel/ dol_lineinfo)饼齿。
4)饲漾、Initialize setting
向 sensor 原廠申請所需規(guī)格的 sensor setting ,包含信息有:mclk缕溉、mipi速率上限考传、分辨率、mipi_lane數(shù)证鸥、幀率僚楞、輸出raw圖像位寬、出圖模式 (linera/wdr) 枉层。
3泉褐、配置驅(qū)動
配置好i2c地址、sensor setting返干、sensor chip_id兴枯;
根據(jù)主板原理圖,在 dts 中配置 mclk矩欠、reset应又、pwrdn求冷、i2c 的引腳控制癌椿,在驅(qū)動中配置 sensor pwrdn属桦,reset 的拉高拉低、上電時序乳蓄;
其他配置咪橙,需根據(jù)不同平臺去具體配置,一般完成上述配置硬件沒問題的話虚倒,就可以點亮出圖了美侦。
4、Sensor 出圖
步驟 3 完成后魂奥,硬件沒問題的話菠剩,一般就可以出圖了
若I2C不通,就要排查下板子的硬件相關(guān)問題:
1)耻煤、確認(rèn)AVDD? DOVDD? DVDD 硬件電壓
2)具壮、根據(jù)原理圖確認(rèn)reset准颓、pwrdn、i2c棺妓、mclk 引腳控制及電壓值
3)攘已、確認(rèn) mclk 頻率
4)、確認(rèn) sensor 上電時序
若出圖異常(圖像分屏怜跑、錯位样勃、顯示不完整 ....);
1)妆艘、拍raw圖彤灶,確認(rèn) raw 圖是否正常。
2)批旺、若raw 圖也異常,輸指令排查下mipi 傳輸是否有報錯诵姜、示波器量一下mipi 波形汽煮,如果都正常的話,那一般就是 sensor setting 有問題棚唆,要找sensor 原廠去看了暇赤。
3)、但若raw 圖正常宵凌,那就應(yīng)該是驅(qū)動或者ISP的配置哪里還有問題鞋囊,要繼續(xù)排查 。
具體也可參考這篇文章:Sensor bringup 中的一些問題總結(jié)
5瞎惫、AE配置
如上圖所示溜腐,AE分為算法模塊和統(tǒng)計模塊,算法模塊是純軟件模塊瓜喇。所以有很多品牌廠商挺益,雖然用同樣的平臺,但為了做出差異化的產(chǎn)品乘寒,都是用自己開發(fā)的 3A 算法望众。AE 統(tǒng)計模塊是和硬件相關(guān)的,包含在 ISP pipeline 里伞辛。
AE的整個控制流程烂翰,如上示意圖所示,AE 算法控制一組曝光參數(shù)(曝光時間蚤氏、sensor 模擬增益甘耿、sensor 數(shù)字增益、isp 數(shù)字增益)瞧捌,通過配置的sensor 驅(qū)動寫入到 sensor 寄存器中(isp dgain 是直接寫入相應(yīng)的 isp 寄存器中的棵里,不通過 sensor 驅(qū)動來控制)润文,輸出圖像數(shù)據(jù)。
數(shù)據(jù)經(jīng)過 AE 統(tǒng)計模塊殿怜,將亮度統(tǒng)計信息給到 AE 算法模塊典蝌,再次實時計算得出一組曝光參數(shù),直到曝光正確头谜,循環(huán)才結(jié)束骏掀。首次上電啟動時,是從sensor 驅(qū)動開始加載的柱告,驅(qū)動中包含一組默認(rèn)的初始化參數(shù)截驮,可以點亮出圖 。
那sensor 驅(qū)動中如何配置 AE 际度?
1>葵袭、首先配置曝光時間
根據(jù) sensor datasheet 配置好最大最小積分時間,然后將 AE 計算出的曝光行乖菱,寫入到相應(yīng)控制曝光時間的寄存器就可以了坡锡。這里說的是逐行曝光的 sensor,它是按行進(jìn)行曝光的窒所,積分時間是相對時間鹉勒,exposure_time = integration_time * line_time(一行時間)。
2>吵取、配置sensor 模擬增益禽额、數(shù)字增益
一般我們只需配置 sensor 模擬增益就可以了,不用數(shù)字增益皮官,但會用到isp 數(shù)字增益脯倒,它是 AE 算法控制的,不用在 sensor 驅(qū)動中去配置臣疑】總結(jié)一下,關(guān)于sensor 模擬增益的控制讯沈,一般分為3種形式郁岩。
一種是寫入 sensor again 寄存器的值有具體要求,會有一個 again_table缺狠,配置好平臺與 Sensor 的匹配精度(對應(yīng)好幾倍增益问慎,應(yīng)該寫什么值),通過查 again_table 寫入挤茄。一般思特威和格科微的 again 配置如叼,都是要查表寫入,如下是 sc230ai datasheet 中的 again_table 穷劈。
另一種是笼恰,寫入 sensor again 寄存器的值是連續(xù)的踊沸,配置好平臺與 Sensor 的匹配精度,將平臺 AE 計算的 again 值寫入sensor 即可社证。如下是ov08a10的again 配置逼龟,0x3503[2]=0 ,real_gain=Gain[12:0]/128追葡,精度是128腺律,[0-7]是配置小數(shù)位,[8-12] 是配置整數(shù)位宜肉;0x3503[2]=1, Gain[12:0]匀钧,只有整數(shù)位1x,2x谬返,4x之斯,8x 。
后一種是如下imx335 所示朱浴,寫入 sensor again 寄存器的值吊圾,是要求轉(zhuǎn)換成dB寫入,不是增益倍數(shù)的方式寫入翰蠢,它是非線性的,將平臺 AE 計算的 gain 值轉(zhuǎn)換成 dB 形式寫入 sensor 寄存器啰劲;
3>梁沧、驗證曝光及模擬增益的配置是否正確
最后要通過調(diào)試工具手動去控制積分時間、模擬增益的寫入蝇裤,然后通過讀 sensor 相應(yīng)的寄存器的值廷支,來判斷寫入的數(shù)據(jù)是否正確,以此來檢查驅(qū)動中的相關(guān)配置是否正確栓辜。
6恋拍、圖像驗證
拉高增益和曝光,驗證是否有電源噪聲/FPN:如下圖所示藕甩,有橫條紋則一般和硬件相關(guān)施敢,豎條紋是和 sensor 相關(guān),要找硬件和 sensor 原廠的人去看狭莱。
確認(rèn)鏡頭品質(zhì):拍攝 ISO22233 解析力卡的raw 圖僵娃,若圖卡對焦對不清晰,四周模糊腋妙,或者單獨某一邊模糊默怨,則鏡頭品質(zhì)有問題,需更換鏡頭骤素。
7匙睹、圖像質(zhì)量調(diào)優(yōu)
可參考此篇文章:ISP調(diào)試流程概述