公用參考s調試指南_第1頁
公用參考s調試指南_第2頁
公用參考s調試指南_第3頁
公用參考s調試指南_第4頁
已閱讀5頁,還剩8頁未讀, 繼續免費閱讀

付費下載

VIP免費下載

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、Sensor 調試指南文檔版本03發布日期2018-07-10所有 ©非經本公司2017-2018。保留一切權利。市海思半導體,任何和個人不得擅自摘抄、本文檔內容的部分或全部,并不得以任何形式。商標、海思和其他海思商標均為市海思半導體的商標。本文檔提及的其他所有商標或商標,由各自的所有人擁有。注意您的、服務或特性等應受海思公司商業合同和條款的約束,本文檔中描述的全部或部分產品、服務或特性可能不在您的或使用范圍之內。除非合同另有約定,海思公司對本文檔內容不做任何明示或默示的或保證。由于版本升級或其他,本文檔內容會不定期進行更新。除非另有約定,本文檔僅作為使用指導,本文檔中的所有陳述、信

2、息和建議不任何明示或暗示的擔保。市海思半導體:518129地址:市龍崗區坂田基地電氣生產中心:客戶服務:客戶服務傳真:客戶服務郵箱:supportSensor 調試指南前 言前言概述本文為對接不同 Sensor 的程序員而寫,目的是供您在進行 Sensor 對接的過程中提供對接步驟及注意事項的參考。該指南主要包括一款新 Sensor 對接的驅動開發流程、新Sensor 在 SDK 中的適配等。版本與本文檔相對應的版本如下。讀者對象本文檔(本指南)主要適用于以下工程師:海思專有和信息文檔版本 03 (2018-07-10)i所有 ©市海思半導體名稱版本Hi3516CV300Hi3516

3、EV100Hi3519V101Hi3516AV200Hi3559AV100Hi3559CV100Hi3519AV100Hi3516CV500Hi3516DV300Hi3516EV200Hi3516EV300Hi3518EV300Sensor 調試指南前 言l技術支持工程師軟件開發工程師l修訂修訂累積了每次文檔更新的說明。最新版本的文檔包含以前所有文檔版本的更新內容。文檔版本 03 (2018-07-10)第 3 次版本發布添加 Hi3519AV100 相關內容文檔版本 02 (2017-12-20)第 2 次正式版本發布。1.4 小節涉及修改文檔版本 01 (2017-08-24)第 1 次正

4、式版本發布。海思專有和信息文檔版本 03 (2018-07-10)ii所有 ©市海思半導體Sensor 調試指南目 錄目錄1 Sensor 調試指南11.1 調試流程11.2 準備材料21.2.1 確認主規格21.2.2 Sensor datasheet21.2.3 Initialize Settings2圖像21.3.1 硬件準備就緒21.3.2 完成初始化序列配置21.3.3 Sensor 輸出31.31.4 ISP 基本功能31.5 完成 AE 配置51.6 完善功能61.7 顏色、去噪等校正71.8 圖像質量調優7海思專有和信息文檔版本 03 (2018-07-10)iii所

5、有 ©市海思半導體Sensor 調試指南插圖目錄插圖目錄圖 1-1 Sensor 調試流程圖1海思專有和信息文檔版本 03 (2018-07-10)iv所有 ©市海思半導體Sensor 調試指南1 Sensor 調試指南 1 Sensor 調試指南1.1 調試流程請按照如圖 1-1 所示流程進行調試。圖1-1 Sensor 調試流程圖準備材料出圖像完成ISP基本功能完成AE配置完善功能顏色、去噪等校正結束海思專有和信息文檔版本 03 (2018-07-10)1所有 ©市海思半導體圖像質量調優Sensor 調試指南1 Sensor 調試指南1.2 準備材料1.2.1

6、 確認主規格支持 Master 模式,支持的線性、WDR 接口模式,支持輸入頻率上限。1.2.2 Sensor datasheet確認圖像傳輸接口模式,輸出頻率。l確認時間、增益如何設置,幀率如何修改。l確認在 WDR 模式下的以上兩項。LVDS 接口,需要確認同步碼。ll1.2.3 Initialize Settings獲取 Sensor Initialize Settings,一般至少要準備最大規格和標準分辨率兩種序列。1.3圖像1.3.1 硬件準備就緒首先驗證是否可以讀寫 Sensor 寄存器。利用 i2c_read/ i2c_write 命令,或 ssp_read/ssp_write

7、命令,測試 Sensor 寄存器讀寫。該命令集成在默認的文件系統中,可直接調用。1.3.2 完成初始化序列配置配置初始化序列,建議參考版本發布包里面的 sensor 驅動,以便于快速開發。為了方便調試,此時要排除 AE 配置及幀率配置的干擾。步驟 1. 準備 Sensor 驅動可以基于一款規格相近 Sensor(master/slave, i2c/spi, wdr/linear)驅動修改,嘗試編l譯出 Sensor 庫。具體可參看 isp/sensor/hi35_sensor_ctl.c 文件進行修改。目錄下的_cmos.c 和修改 cmos_set_image_mode 函數,及 cmos_

8、get_isp_default 中的 u32MaxWidth, u32MaxHeight 參數。使該senosr 分辨率、幀率可以被正確設置。l在加載 ko 的load35xx 中修改 Sensor 時鐘配置、I2C/SPI 接口 pin mux,vi 時l鐘,isp 時鐘等寄存器修改。適配時,可基于相似規格的 Sensor 修改。步驟 2. Sensor 初始化序列實現 void sensor_init()函數。參考 sensor 手冊或者 sensor 廠家提供的 sensor 序列實現這個函數。l在_sensor_ctl.c 填寫 sensor 寄存器的基地址 sensor_i2c_ad

9、dr,地址的比特位寬lsensor_addr_byte,寄存器的比特位寬信息 sensor_data_byte。海思專有和信息文檔版本 03 (2018-07-10)2所有 ©市海思半導體Sensor 調試指南1 Sensor 調試指南在_cmos.c 文件中,注釋掉全部 sensor_write_register,并在cmos_get_sns_regs_info 函數里,把 u32RegNum 配置為 0。以使 AE 不配置sensor,排除干擾。-結束l1.3.3 Sensor 輸出本部分是基于 mpp 目錄下的 sample 做整個通路的輸出說明。主要在已完成了 sensor

10、序列的前提下做的。其步驟主要包括:MIPI、VI、ISP 以及 VPSS 的配置。這些配置可以參考已有 sensor 的配置進行簡單修改即可。如果已經有集成的環境直接配置參數就可以運行,比如 Hisi PQTool 的啟動配置正確即可。,對應 sensor 的目錄有啟動的配置文件,只需要步驟 1.在完成初始化的配置之后,可在 ISP 目錄下編譯即可生成新的 Sensor 的庫,新庫的路徑為 mpp/lib/ libsns_.a 和 mpp/lib/ libsns_.so。步驟 2.基于 mpp 的sample 對新Sensor 進行驗證。在 sample/Makefile.param 文件中新

11、增一款Sensor 的編譯配置 SENSOR_TYPE,然后添加對應的 libsns_.a 文件步驟 3.在 sample_comm.h 中的 SAMPLE_VI_MODE_E 中添加該 sensor 類型,注意和sample/Makefile.param 文件中新增的 SENSOR_TYPE 一致。然后再 sample_comm_isp.c 中 SAMPLE_COMM_ISP_Init 函數中添加這個 sensor 類型的屬性,如:Bayer pattern, 幀率,寬高信息。步驟 4.配置 MIPI 屬性,在 sample_comm_vi.c 中 SAMPLE_COMM_VI_SetMip

12、iAttr 添加 MIPI屬性,調試 MIPI/LVDS 部分參考MIPI 使用指南。步驟 5.步驟 6.配置 VI 屬性。在 sample_comm_vi.c 中 SAMPLE_COMM_VI_StartDev 添加 VI 屬性。編譯并運行相應的應用程序 sample_vio,如果一切順利,此時整個系統已經運行??梢酝ㄟ^ cat /proc/umap/isp 或者 cat /proc/umap/hi-mipi 等查看信息。步驟 7.如果 ISP 沒有中斷,請先檢查 Sensor 輸入時鐘、輸出信號及 Sensor 寄存器配置是否正常。具體操作請查閱Hi35xx 專業型 HD IP Camer

13、a SoC 用戶指南或 Hi35xxV ultra-HD Mobile Camera SoC 用戶指南。步驟 8.若發現 MIPI、VI、ISP 等都正常,并想進行圖像質量調節,可以把上述的配置移植到PQTool 的對應 sensor 配置文件中(在 config 目錄下新建一個 sensor 目錄,參考類似sensor 的配置做相應的修改即可),點播看圖。-結束1.4 ISP 基本功能本章節涉及 Sensor 部分,請仔細閱讀 Sensor 的 Datasheet,或結構體說明請參考HiISP 開發參考。Sensor 原廠 FAE。驅動文件一般分為_cmos.c 文件,_cmos_ex.h

14、和_sensor_ctl.c 文件,分別用于 ISP 功能和初始化序列, 量。_cmos_ex.h 文件用于存放定義的驅動文件中的全局變海思專有和信息文檔版本 03 (2018-07-10)3所有 ©市海思半導體Sensor 調試指南1 Sensor 調試指南驅動文件共有 3 個callback 函數,是 sensor 驅Firmware函數的接口。HI_MPI_ISP_SensorRegCallBack(),HI_MPI_AE_SensorRegCallBack(),HI_MPI_AWB_Sen sorRegCallBack(),分別對應 ISP、海思 AE 及海思 AWB。開發流

15、程ISP 基本功能,請按如下順序實現:1.2.3.4.cmos_set_image_mode(), cmos_set_wdr_mode()。sensor_global_init()。sensor_init(), sensor_exit()。cmos_get_isp_default(),cmos_get_isp_black_level()。注意事項cmos_set_image_mode ()該函數用于區分不同分辨率,用全局變量 gu8SensorImageMode 傳遞分辨率模式。請注意返回值,返回“0”表示重新配置 Sensor,會調用 sensor_init(),返回“-1” 表示不用重新配

16、置 Sensor,無動作。cmos_set_wdr_mode()該函數用于區分不同 WDR 模式,用全局變量 genSensorMode 傳遞。請注意 gu32FullLinesStd 和 gu32FullLines 的區別。gu32FullLinesStd 是當前分辨率及 WDR 模式下,標準幀率(一般為 30fps)時的總行數。gu32FullLines 是實際總行數,該參數會在其它函數中,由于降幀的 ,基于標準行數 gu32FullLinesStd 及幀率修改。不同 WDR 模式,一般會修改 AE 相關函數,ISP default 內各個參數以及初始化序列。sensor_init()請根

17、據不同的分辨率及 WDR 模式配置不同序列。sensor_exit()實現參考類似 sensor 的驅動即可。cmos_get_isp_default()該函數配置基本是調試或校正參數,可以在調試及校正時修改參數。請注意不同 WDR 模式參數可能不一樣,比如 Gamma,DRC 等。具體請參考HiISP 開發參考。cmos_get_isp_black_level()在這個函數里面配置 RAW 數據四個通道的黑電平。llllll有些類型的 sensor 的黑電平會隨著 gain 值的變化而漂移,這時需要在不同的 ISO 值下分別校正出對應的黑電平值,在 cmos_get_isp_black_le

18、vel()函數內進行相應的實現。sensor_global_init()l海思專有和信息文檔版本 03 (2018-07-10)4所有 ©市海思半導體Sensor 調試指南1 Sensor 調試指南該函數配置了 sensor 初始化的相關配置,包括分辨率、WDR 模式、gu32FullLinesStd 的默認值,初始化狀態值及其他相關的狀態值。1.5 完成 AE 配置完成 AE 配置后,圖像就基本正常了。開發流程AE 配置,請按如下順序實現:1.2.3.4.5.cmos_get_sns_regs_info()。cmos_get_ae_default(), cmos_again_cal

19、c_table(), cmos_dgain_calc_table()。cmos_get_inttime_max()。cmos_gains_update(), cmos_inttime_update()。cmos_fps_set(), cmos_slow_framerate_set()。注意事項cmos_get_sns_regs_info()該函數用于配置需要確保同步性的 sensor、ISP 寄存器,如l時間、增益及總行數等。雖然這些寄存器可以通過直接調用 sensor_write_register()來配置,但無法保證同步性,可能出現閃爍。所以這些寄存器請一定要用該函數配置。u8DelayF

20、rmNum 是寄存器配置延時。舉個例子,很多 Sensor 的增益是下一幀生效,但時間是下下幀生效,所以需要增益晚一幀配置,以使增益和時間ISP 與同時生效,這時就需要用 Delay 的功能。配置 u8Cfg2ValidDelayMax 是sensor 同步,ISP 包括 ISP Dgain 和 WDR比等參數,可通過檢查 ISP Dgain 是否與 sensor gain 同步來檢查參數正確性。該參數的意義是生效時間,一般會比最大的 sensor 寄存器延遲多 1。 bUpdate 用于該寄存器是否更新,如果不用修改,可以置為 false。cmos_get_ae_default() 請根據

21、sensor 修改參數。enAccuType 是計算精度的類型,常用AE_ACCURACY_TABLE 及 AE_ACCURACY_LINEAR。而AE_ACCURACY_DB 因為 CPU 計算精度問題,除非精度很低的,均由 TABLE的方式代替。l LINEAR 方式是指時間或增益以固定步長線性遞增。比如每一步增長 0.325倍,或時間每一步增長 1。步長由 f32Accuracy 決定。 TABLE 方式一般用于增益,指每一步可以達到的增益通過查表的方式,在cmos_again_calc_table()或 cmos_dgain_calc_table()函數中計算得到。此時f32Accur

22、acy 失去意義,不生效。海思 AE 默認計算順序是先分配時間,其次 again,然后 digain,最后 ispdgain??梢酝ㄟ^設置 AE Route 或 AE RouteEx 來調整分配順序。cmos_again_calc_table(), cmos_dgain_calc_table()l海思專有和信息文檔版本 03 (2018-07-10)5所有 ©市海思半導體Sensor 調試指南1 Sensor 調試指南這兩個函數輸入、輸出完全一致,分別對應 Again 和 Dgain 的 TABLE 方式。下面以 Again 為例說明。 pu32AgainLin 同時做輸入和輸出。做

23、輸入是 AE 計算出來的期望增益,1024 表示 1 倍。在該函數中,要到一個 sensor 可以實現的,小于該增益的最大增益。并重新賦給該參數作為向 AE 的輸出。 pu32AgainDb 是輸出,AE 內部不用于運算,只是作為函數 cmos_gains_update()的輸入。一般用于傳遞當前增益的 sensor 寄存器值。例如:某 sensor 增益按 0.3dB 遞增。sensor 寄存器值從 0 開始,每增加 1,對應增益分別為 0dB, 0.3dB, 0.6dB, 0.9dB離線算出一個將 dB 轉化為線性倍數的查找表,為 1024, 1060, 1097, 1136在函數中將輸入的增益與查找表比對,假如輸入為 1082,那查出來可用的最大增益是 1060,返回 1060 為實際生效的增益。cmos_get_inttime_max()l該函數只在 xto1 WDR 模式下生效,用于計算不同大值。比的時候,時間的最一般是行模式才需要。因為行模式,時間的限制為長時間加短時間的和要小于一幀長度。所以不同比下,最大重新運算。cmos_gains_update(), cmos_inttime_update()時間有差異,需要l這兩個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論