rk3288 android6.0平台bt1120信号转mipi调试
說明:使用龍訊LT8918芯片將bt1120信號轉換為mipi信號輸入到rk3288,不需要i2c通信.
注意:如果能正常打開任意一款mipi camera,那么kernel的配置不需要改動,否則請先找一款市面上常用的mipi攝像頭調試,然后再進行后續工作。如果kernel已配置好,那么整個調試過程只需要修改hardware。
開始調試:
????????因為傳輸的是mipi yuv信號,所以我們參照OV2685_MIPI_YUV驅動去做。該驅動所在位置/hardware/rockchip/camera/SiliconImage/isi/drv/OV2685_MIPI_YUV。
一、不用i2c,那么屏蔽掉i2c通信的地方
? ? 1./hardware/rockchip/camera/CameraHal/CameraHal_board_xml_parse.cpp
????????int camera_board_profiles::RegisterSensorDevice(rk_cam_total_info* pCamInfo)方法中
????????err = ioctl(camsys_fd, CAMSYS_I2CWR, &i2cinfo);修改為err = 0;
? ? 2./hardware/rockchip/camera/SiliconImage/isi/drv/OV2685_MIPI_YUV/OV2685_PARREL.c 中
????????OV2685_IsiCheckSensorConnectionIss、OV2685_IsiRegReadIss、OV2685_IsiRegWriteIss這三個方法直接return 0;
二、定義自己的分辨率等參數1920x1080, 30fps, 4lane, mipi freq:200M
????? ? 1.在OV2685_tables.c文件中先定義自己的分辨率,不需要操作寄存器,給個定義就行:
????????????const IsiRegDescription_t OV2685_g_1920x1080[] =
????????????{
? ? ????????????{0x0000 ,0x00,"eTableEnd",eTableEnd}//為啥只有這一行,請看其他分辨率是怎么定義的!
????????????};
????? ? 2.在OV2685_PARREL.c中設置分辨率
????????????extern const IsiRegDescription_t OV2685_g_1920x1080[];//引用上面的定義
????????????static uint16_t g_suppoted_mipi_lanenum_type = SUPPORT_MIPI_FOUR_LANE;
????????????#define DEFAULT_NUM_LANES SUPPORT_MIPI_FOUR_LANE//定義lane數
????????????OV2685_IsiGetCapsIssInternal該函數中選擇分辨率:
????????????????????if(mipi_lanes == SUPPORT_MIPI_FOUR_LANE){? ? ? ? ? ??
? ? ? ? ? ? ????????????switch (pIsiSensorCaps->Index)?
? ? ? ? ? ? ????????????{
? ? ? ? ? ? ? ? ????????????case 0:
? ? ? ? ? ? ? ? ????????????????????????{
? ? ? ? ? ? ? ? ? ? ????????????????????????????pIsiSensorCaps->Resolution = ISI_RES_TV1080P30;//我們的分辨率
? ? ? ? ? ? ? ? ? ? ????????????????????????????break;
? ? ? ? ? ? ? ? ????????????????????????}
? ? ? ? ? ? ? ? ????????????default:
? ? ? ? ? ? ? ????????????????????????? {
? ? ? ? ? ? ? ? ? ? ????????????????????????????result = RET_OUTOFRANGE;//這個值不要改
? ? ? ? ? ? ? ? ? ? ????????????????????????????goto end;
? ? ? ? ? ? ? ? ????????????????????????}
? ? ? ? ? ? ????????????????}
? ? ? ????????????????? }
????????? ? 3.OV2685_SetupOutputWindow中定義mipi freq并設置對應分辨率
????????????????????pOV2685Ctx->IsiSensorMipiInfo.ulMipiFreq = 200;//mipi freq
????????????????????switch ( pConfig->Resolution ){
????????????????????????????case ISI_RES_TV1080P30:
? ? ? ? ????????????????????{
? ? ? ? ? ????????????????? if((result = IsiRegDefaultsApply((IsiSensorHandle_t)pOV2685Ctx,OV2685_g_1920x1080)) != ????????????????????????????????????????????RET_SUCCESS){
? ? ? ? ? ? ? ? ????????????????????????????????TRACE( OV2685_ERROR, "%s: failed to set? ISI_RES_TV1080P30 \n", __FUNCTION__ );
? ? ? ? ? ? ????????????????????????????????}else{
? ? ? ? ? ? ? ? ????????????????????????????????TRACE( OV2685_INFO, "%s: success to set? ISI_RES_TV1080P30? \n", __FUNCTION__ );
? ? ? ? ? ? ????????????????????????????????}
? ? ? ? ? ? ????????????????????????????break;
? ? ? ? ??????????????????????}
? ??????????????????????}
三、配置cam_board.xml
????? ? 主要強調兩個地方,一是<SensorGpioPwen ioname="RK30_PIN2_PB1" active="1" delay="1000"></SensorGpioPwen>,power使能腳配置。二是<SensorPhy phyMode="CamSys_Phy_Mipi" lane="4"? phyIndex="0"? sensorFmt="CamSys_Fmt_Yuv422_8b"></SensorPhy>(lane數,phyIndex:0或1,根據硬件配置)
只要硬件沒問題,基本上按照上述修改配置,使用系統自帶camera apk就可以打開了,注意打開的是/dev/camsys_marvin這個節點。
檢測3288是否有接收到mipi信號,可在adb或串口中輸入io -4 -l 0x100 0xff911c00
查看ff911c10: 00000000 00000000 00000000 0000001e這一行,0000002b表示isp識別到為raw ,0000001e 表示識別到yuv數據 如果其他表示識別異常。
全部調試文檔可以參照附件:源碼下載
總結
以上是生活随笔為你收集整理的rk3288 android6.0平台bt1120信号转mipi调试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html后台数据分类管理,细分数据.ht
- 下一篇: 编码解码错误