瑞芯微Rockchip开发者社区
直播中

张宇

7年用户 1657经验值
私信 关注
[问答]

怎样使用LT8918芯片将bt1120信号转换为mipi信号输入到rk3288中呢

说明:使用龙讯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
        主要强调两个地方,一是,power使能脚配置。二是(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数据 如果其他表示识别异常。

原作者:空~。

更多回帖

发帖
×
20
完善资料,
赚取积分