qqq306922360

qqq306922360

0个粉丝

16

问答

0

专栏

0

资料

qqq306922360  发布于  2016-12-13 11:12:53
采纳率 0%
16个问答
4461

3516D调试BT656采集D1的

 
HI_S32 SAMPLE_COMM_VI_StartMIPI_BT1120(SAMPLE_VI_MODE_E enViMode)
{
        HI_S32 fd;
        combo_dev_attr_t *pstcomboDevAttr;
       
        fd = open("/dev/hi_mipi", O_RDWR);
        if (fd < 0)
        {
           printf("warning: open hi_mipi dev failed\n");
           return -1;
        }

        if((enViMode == SAMPLE_VI_MODE_BT1120_1080I)
                ||(enViMode == SAMPLE_VI_MODE_BT1120_720P)
                ||(enViMode == SAMPLE_VI_MODE_BT1120_1080P))
        {
                pstcomboDevAttr = &MIPI_BT1120_ATTR;
        }
        else if((enViMode == SAMPLE_VI_MODE_1_D1))
        {
                printf("%s**********%s*********%d\n", __FILE__, __func__, __LINE__);
                pstcomboDevAttr = &MIPI_BT1120_ATTR;
        }
       
        if (ioctl(fd, HI_MIPI_SET_DEV_ATTR, pstcomboDevAttr))
        {
                printf("set mipi attr failed\n");
                close(fd);
                return -1;
        }
        close(fd);
        return HI_SUCCESS;
}

HI_S32 SAMPLE_COMM_VI_StartDev(VI_DEV ViDev, SAMPLE_VI_MODE_E enViMode)
{
    HI_S32 s32Ret;
    HI_S32 s32IspDev = 0;
    ISP_WDR_MODE_S stWdrMode;
    VI_DEV_ATTR_S  stViDevAttr;
   
    memset(&stViDevAttr,0,sizeof(stViDevAttr));

    switch (enViMode)
    {
        case SAMPLE_VI_MODE_1_D1:
            memcpy(&stViDevAttr,&DEV_ATTR_BT656D1_1MUX,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width = 720;
            stViDevAttr.stDevRect.u32Height = 480;

            break;

        case SAMPLE_VI_MODE_BT1120_1080I:
            memcpy(&stViDevAttr,&DEV_ATTR_BT1120_1080I_1MUX,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width = 1920;
            stViDevAttr.stDevRect.u32Height = 1080;
            break;

        case SAMPLE_VI_MODE_BT1120_1080P:                       
                        memcpy(&stViDevAttr,&DEV_ATTR_BT1120_1080P_BASE,sizeof(stViDevAttr));   
                        break;
                       
            case SAMPLE_VI_MODE_BT1120_720P:
                memcpy(&stViDevAttr,&DEV_ATTR_BT1120_720P_BASE,sizeof(stViDevAttr));        
                break;
                       
                case SONY_IMX122_DC_1080P_30FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_IMX122_DC_1080P,sizeof(stViDevAttr));
                        break;               
      
        case APTINA_MT9P006_DC_1080P_30FPS:     
            memcpy(&stViDevAttr,&DEV_ATTR_MT9P006_DC_1080P,sizeof(stViDevAttr));
            break;

        case PANASONIC_MN34220_SUBLVDS_1080P_30FPS:
        case SONY_IMX178_LVDS_1080P_30FPS:        
            memcpy(&stViDevAttr,&DEV_ATTR_LVDS_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 20;
            stViDevAttr.stDevRect.u32Width  = 1920;
            stViDevAttr.stDevRect.u32Height = 1080;
            break;

        case SONY_IMX185_MIPI_1080P_30FPS:
        case PANASONIC_MN34220_MIPI_1080P_30FPS:
            memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 8;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 1920;
            stViDevAttr.stDevRect.u32Height = 1080;
            break;

        case SONY_IMX178_LVDS_5M_30FPS:
            memcpy(&stViDevAttr,&DEV_ATTR_LVDS_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 20;
            stViDevAttr.stDevRect.u32Width  = 2592;
            stViDevAttr.stDevRect.u32Height = 1944;
            break;
                       
        case PANASONIC_MN34220_MIPI_720P_120FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 8;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 1280;
            stViDevAttr.stDevRect.u32Height = 720;
                        break;

                case PANASONIC_MN34220_SUBLVDS_720P_120FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_LVDS_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 20;
            stViDevAttr.stDevRect.u32Width  = 1280;
            stViDevAttr.stDevRect.u32Height = 720;
                        break;
                       
                case APTINA_AR0330_MIPI_1080P_30FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 1920;
            stViDevAttr.stDevRect.u32Height = 1080;
                        break;
                       
                case APTINA_AR0330_MIPI_1296P_25FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 2304;
            stViDevAttr.stDevRect.u32Height = 1296;
                        break;
                       
                case APTINA_AR0330_MIPI_1536P_25FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 2048;
            stViDevAttr.stDevRect.u32Height = 1536;
                        break;
                       
                case OMNIVISION_OV4689_MIPI_1080P_30FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 1920;
            stViDevAttr.stDevRect.u32Height = 1080;
                        break;
                       
                case OMNIVISION_OV4689_MIPI_4M_30FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 2592;
            stViDevAttr.stDevRect.u32Height = 1520;
                        break;
                       
                case OMNIVISION_OV5658_MIPI_5M_30FPS:
                        memcpy(&stViDevAttr,&DEV_ATTR_MIPI_BASE,sizeof(stViDevAttr));
            stViDevAttr.stDevRect.s32X = 0;
            stViDevAttr.stDevRect.s32Y = 0;
            stViDevAttr.stDevRect.u32Width  = 2592;
            stViDevAttr.stDevRect.u32Height = 1944;
                        break;
                       
        default:
            memcpy(&stViDevAttr,&DEV_ATTR_LVDS_BASE,sizeof(stViDevAttr));
    }

    s32Ret = HI_MPI_VI_SetDevAttr(ViDev, &stViDevAttr);
    if (s32Ret != HI_SUCCESS)
    {
        SAMPLE_PRT("HI_MPI_VI_SetDevAttr failed with %#x!\n", s32Ret);
        return HI_FAILURE;
    }

    if ((SAMPLE_VI_MODE_BT1120_1080P != enViMode)
                &&(SAMPLE_VI_MODE_BT1120_1080I != enViMode)
                &&(SAMPLE_VI_MODE_BT1120_720P != enViMode)
                &&(SAMPLE_VI_MODE_1_D1 != enViMode))
        {
            s32Ret = HI_MPI_ISP_GetWDRMode(s32IspDev, &stWdrMode);
            if (s32Ret != HI_SUCCESS)
            {
                SAMPLE_PRT("HI_MPI_ISP_GetWDRMode failed with %#x!\n", s32Ret);
                return HI_FAILURE;
            }

            if (stWdrMode.enWDRMode)  //wdr mode
            {
                VI_WDR_ATTR_S stWdrAttr;

                stWdrAttr.enWDRMode = stWdrMode.enWDRMode;
                stWdrAttr.bCompress = HI_FALSE;

                s32Ret = HI_MPI_VI_SetWDRAttr(ViDev, &stWdrAttr);
                if (s32Ret)
                {
                    SAMPLE_PRT("HI_MPI_VI_SetWDRAttr failed with %#x!\n", s32Ret);
                    return HI_FAILURE;
                }
            }
        }
   
    s32Ret = HI_MPI_VI_EnableDev(ViDev);
    if (s32Ret != HI_SUCCESS)
    {
        SAMPLE_PRT("HI_MPI_VI_EnableDev failed with %#x!\n", s32Ret);
        return HI_FAILURE;
    }

    return HI_SUCCESS;
}



在此处报错


执行cat /proc/umap/vi



[VIU] Version: [Hi3516A_MPP_V1.0.3.0 B040 Debug], Build Time: [Mar 13 2015, 19:09:49]

VI-VPSS is offline.

-----MODULE PARAM--------------------------------------------------------------
detect_err_frame  drop_err_frame  stop_int_level
         10              0              0

-----VI DEV ATTR---------------------------------------------------------------
Dev   IntfM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq   DPath DType DRev CapX CapY  CapW  CapH
   0   BT656 1Mux ff000000        0     I  -1  -1  -1  -1  UYVY  ByPass   YUV    N    0    0   720   480

-----VI HIGH DEV ATTR---------------------------------------------------------------
Dev  InputM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq CombM CompM ClkM  Fix FldP   DPath DType DRev CapX CapY  CapW  CapH

-----VI PHYCHN ATTR------------------------------------------------------------
PhyChn CapX CapY  CapW  CapH  DstW  DstH CapSel Mirror Flip IntEn PixFom SrcRat DstRat   Comp

-----VI PHYCHN STATUS 1----------------------------------------------------------
PhyChn  Dev      IntCnt  VbFail  LosInt  TopLos  BotLos BufCnt  IntT  SendT  Field  Stride

-----VI PHYCHN STATUS 2---------------------------------------------------------
PhyChn MaxIntT   IntGapT   MaxGapT OverCnt LIntCnt  ThrCnt AutoDis CasAutD  TmgErr      ccErrN    IntRat

-----VI EXTCHN ATTR------------------------------------------------------------
ExtChn BindChn CropEn  CropX  CropY  CropW  CropH  DstW  DstH PixFom SrcRat DstRat  Depth   Comp

-----VI CHN STATUS-------------------------------------------------------------
ViChn   bEnUsrP   FrmTime   FrmRate     SendCnt      SwLost    Rotate     Depth

-----VI CHN CALL VGS STATUS 1-------------------------------------------------
ViChn   UsrBgnNOk   UsrCancel    UsrEndOk     UsrCbOk    CovBgnNOk   CovCancel    CovEndOk    CovCbOk
  
-----VI CHN CALL VGS STATUS 2-------------------------------------------------
ViChn   OsdBgnNOk   OsdCancel    OsdEndOk     OsdCbOk      ScaleNOk   SclCancel    SclEndOk     SclCbOk

-----VI CHN CALL VGS STATUS 3-------------------------------------------------
ViChn   RotateNOk   RotCancel    RotEndOk     RotCbOk        LDCNOk   LDCCancel    LDCEndOk     LDCCbOk

对比了下BT1120正常采集的VI情况下,似乎我现在代码已经设置成我的设备是BT656输入了??
在选用输入模式的时候,照样选择的
combo_dev_attr_t MIPI_BT1120_ATTR =
{
    /* input mode */
    .input_mode = INPUT_MODE_BT1120,
    {
        
    }
};

要说明的是我采用的是MIPI/输入,也就是海思demo里面所提供的,只是在标清的情况下HDMI和3516采用BT656传输
请大侠们指点下!



我来回答
回答10个
时间排序
认可量排序

qqq306922360

0个粉丝

16

问答

0

专栏

0

资料

qqq306922360 2016-12-13 11:14:11
认可0
ComMsk0  ComMsk1   这两个掩码需要怎么设置呢

csuzhsh

1个粉丝

14

问答

0

专栏

0

资料

csuzhsh 2016-12-13 11:21:26
认可0
配置第一个,看你的硬件怎么连的

qqq306922360

0个粉丝

16

问答

0

专栏

0

资料

qqq306922360 2016-12-13 11:24:56
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=42774&ptid=13645]csuzhsh 发表于 2016-12-13 11:21[/url]
配置第一个,看你的硬件怎么连的[/quote]

老哥,
----VI DEV ATTR---------------------------------------------------------------
Dev   IntfM  WkM  ComMsk0  ComMsk1 ScanM AD0 AD1 AD2 AD3   Seq   DPath DType DRev CapX CapY  CapW  CapH
   0   BT656 1Mux ff000000        0     I  -1  -1  -1  -1  UYVY  ByPass   YUV    N    0    0   720   480
我的能看到这些了,是不是就是表示我的BT656输入设置基本设置成功了?

csuzhsh

1个粉丝

14

问答

0

专栏

0

资料

csuzhsh 2016-12-13 13:40:56
认可0
你是隔行的吗

qqq306922360

0个粉丝

16

问答

0

专栏

0

资料

qqq306922360 2016-12-13 13:42:37
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=42781&ptid=13645]csuzhsh 发表于 2016-12-13 13:40[/url]
你是隔行的吗[/quote]

对!   就是隔行的!!!!

csuzhsh

1个粉丝

14

问答

0

专栏

0

资料

csuzhsh 2016-12-13 13:50:58
认可0
掩码是高8位还是低8位

qqq306922360

0个粉丝

16

问答

0

专栏

0

资料

qqq306922360 2016-12-13 14:50:25
认可0
我这里使用的应该是低八位!!那应该掩码就是反的来把?

qqq306922360

0个粉丝

16

问答

0

专栏

0

资料

qqq306922360 2016-12-13 15:13:25
认可0
完贴,目前480i60的,我可以正常采集编码啦!!通过BT656采集ITE6604的数据,在此多谢csuzhsh!!!!

13915426184

0个粉丝

15

问答

0

专栏

0

资料

13915426184 2017-08-14 09:48:41
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=42807&ptid=13645]qqq306922360 发表于 2016-12-13 15:13[/url]
完贴,目前480i60的,我可以正常采集编码啦!!通过BT656采集ITE6604的数据,在此多谢csuzhsh!!!![/quote]

楼主你好,请问你最好改了哪些地方可以正常采集编码?谢谢

Tracy_9216

2个粉丝

6

问答

79

专栏

29

资料

Tracy_9216 2018-03-22 17:35:17
认可0
楼主你好,我现在用的3516A跟你现象一样,数据波形都已经用示波器看到了,但是在/proc/umap/vi下面看不到中断,我的掩码用的0x00ff0000    0x0 数据脚接的DAT0-DAT7,请问有问题吗
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区