This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Does DM8148 support capture of Embedded sync SMPTE296M?

Other Parts Discussed in Thread: TVP5150

Hi.  I'm working with a DM8148 custom board with ti-ezsdk version 5_05_02_00 and am trying to capture from a camera that outputs SMPTE296M but have not had any luck with it.  The TRM says that both BT.656 and BT.1120 are supported.  SMPTE296M, from my understanding is similar to BT.1120 so it should work.

I have read this post: 

e2e.ti.com/.../293583

but I didn't get much information.  So can someone tell me if it is possible?

Thanks,

Kim

  • it should work, what issue are you seeing?

    Rgds,

    Brijesh

  • Hi Brijesh,

    I am not getting any video from /dev/video0.  I make the call to VIDIOC_DQBUF and it does not return.  For capture I set these parameters in the ti81xxvin_main.c:

    .video_capture_mode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC
    .video_if_mode = VPS_CAPT_VIDEO_IF_MODE_16BIT
    .input_data_format = FVID2_DF_YUV422P

    and I switch my camera to EAV/SAV mode.

    I don't know if this helps but I found another post (below) on the ti forum about an error in the FIQ_STATUS register.  I get the same 0x00030000 in register 0x4810551c when I use the EAV/SAV mode with my camera capture parameters set as above.

    e2e.ti.com/.../823753

    If I set my camera to discrete mode and then use these parameters in ti81xxvin_main.c:

    .video_capture_mode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_DISCRETE_SYNC_HSYNC_VSYNC
    .video_if_mode = VPS_CAPT_VIDEO_IF_MODE_16BIT
    .input_data_format = FVID2_DF_YUV422P

    and read register 0x4810551c, I get 0x00004400, and I see video. 

    Thanks,

    Kim

  • Just to be more specific, below are all of the parameters I use. I tried changing pixClkEdgePol to VPS_VIP_PIX_CLK_EDGE_POL_RISING but no change. I also tried changing ctrlChanSel to VPS_VIP_CTRL_CHAN_SEL_7_0 but no change either.
    Also, to be clear, the camera I am using is output 720X1280 at 30fps.
    And I've set the v4l2_ like this:
    v4l2_format fmt;

    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
    fmt.fmt.pix.width = 1280;
    fmt.fmt.pix.height = 720;
    fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUYV;
    fmt.fmt.pix.field = V4L2_FIELD_NONE;


    parameters in ti81xxvin_main.c:

    .vip_port_cfg = {
    .ctrlChanSel = VPS_VIP_CTRL_CHAN_SEL_15_8,
    .ancChSel8b = VPS_VIP_ANC_CH_SEL_8B_CHROMA_SIDE,
    .pixClkEdgePol = VPS_VIP_PIX_CLK_EDGE_POL_FALLING,
    .invertFidPol = 0,
    .embConfig = {
    .errCorrEnable = 1,
    .srcNumPos = VPS_VIP_SRC_NUM_POS_DONT_CARE,
    .isMaxChan3Bits = 0,
    },
    .disConfig = {
    .fidSkewPostCnt = 0,
    .fidSkewPreCnt = 0,
    .lineCaptureStyle = VPS_VIP_LINE_CAPTURE_STYLE_DONT_CARE,
    .fidDetectMode = VPS_VIP_FID_DETECT_MODE_DONT_CARE,
    .actvidPol = VPS_VIP_POLARITY_DONT_CARE,
    .vsyncPol = VPS_VIP_POLARITY_DONT_CARE,
    .hsyncPol = VPS_VIP_POLARITY_DONT_CARE,
    }
    },
    .video_capture_mode = VPS_CAPT_VIDEO_CAPTURE_MODE_SINGLE_CH_NON_MUX_EMBEDDED_SYNC,
    .video_if_mode = VPS_CAPT_VIDEO_IF_MODE_16BIT,
    .input_data_format = FVID2_DF_YUV422P,

    Thanks,
    Kim
  • Another thing is that we are using the tvp5150 video decoder driver.
  • it should be possible as long as TVP5150 can output embedded sync on 16bit output.

    Regards,

    Brijesh

  • Hi Kim,

    Please first check if TVP is outputting correctly. From the VIP side, the configuration looks correct. Is this connected on VIP0?
    Can you share dump of 30 words memory from the location 0x48105500?

    Rgds,
    Brijesh
  • Hi Kim,

    When it says 0x30000, it means there is some protocol violation, it is not receiving SAV/EAV codes correctly. So again please check the TVP5150 configuration.

    If it is working for discrete sync, why do you want to use embedded sync?

    Rgds,
    Brijesh
  • Hi Brijesh,

    We don't actually use the TVP5150 piece of hardware or the driver.  My comment is wrong.  For this particular camera it is outputting SMPTE296M and we do NOT use the TVP5150 decoder.  Sorry for the confusion.

    I am using VIP0 to answer your other question.

    The registers that you asked for are as follows:

    0x48105500 0x00000001
    0x48105504 0x8000A110
    0x48105508 0x00002000
    0x4810550c 0x00000000
    0x48105510 0x00000000
    0x48105514 0x00000000
    0x48105518 0x00000000
    0x4810551c 0x00030000
    0x48105520 0xFFFFFFFF
    0x48105524 0xFFFFFFFF
    0x48105528 0xFFFFFFFF
    0x4810552c 0xFFFFFFFF
    0x48105530 0x00000000
    0x48105534 0x00000000
    0x48105538 0x00000000
    0x4810553c 0x00000000
    0x48105540 0x00000000
    0x48105544 0x00000000
    0x48105548 0x00000000
    0x4810554c 0x00000000
    0x48105550 0x00000000
    0x48105554 0x00000000
    0x48105558 0x00000000
    0x4810555c 0x00000000
    0x48105560 0x00000000
    0x48105564 0x00000000
    0x48105568 0x00000000
    0x4810556c 0x00000000
    0x48105570 0x00000000
    0x48105574 0x00000000
    0x48105578 0x00000000
    0x4810557c 0x00000000

    Thanks,

    Kim

  • You also asked me, "If it is working for discrete sync, why do you want to use embedded sync?".

    We have another camera that uses the same SMPTE296M embedded sync signal that does not support discrete sync. We are more familiar with the first camera (that does embedded and discrete sync) so we wanted to get this first camera working in embedded sync mode, then switch to the other camera (that only does embedded sync).
    Thanks,
    Kim
  • Hi Brijesh,

    We got the new camera, that only supports embedded sync and outputs SMPTE296M, and I tested with the above parameters. It works great! I'm not sure why the original camera was not working. They are different cameras and maybe timing is different (one is faster than the other). Anyway, it doesn't matter now since the new camera works with the above v4l2 settings .

    Thanks,
    Kim