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.

am3505 and vpfe

Other Parts Discussed in Thread: TVP5150AM1, AM3505, TVP5150

Hello, I want to connect tvp5150am1 with dm6446. It seems that works I see all the registers and it seems that settings are correct, but Linux do not catch any interrupt (VDINT0). When y execute ret = ioctl(capture.capture_fd, VIDIOC_DQBUF, &capture.capture_buf) it does not continue with the code. I see in (SLES213.pdf) to work with ITU BT.656, I need to change only 0x03 register of tvp5150am1, for all the others registers are valid with default values. In the DM6446 I am not sure, I change this registers: 0x50 (REC656) = 0x00000003 0x08 (SYN_MODE) = 0x00032F84 0x14 (HORZ_INFO) = 0x0000059F 0x48 (VDINT) = 0x00010000 0x18 (VERT_START) = 0x00010001 0x1C (VERT_LINES)= 0x000000EF 0x54 (CCDCFG) = 0x00008800 0x24 (HSIZE_OFF) = 0x000005A0 0x28 (SDOFST)= 0x00000249 I'm trying to watch a video of 720 * 480, I don't know how I am doing wrong. I am working with 2.6.37 linux kernel, and with am3505. Thank you David M.

  • David,

    First of all its very tough to read the post. Could you please write in different sentences. Have you checked the following?

    1. PINMUX settings for all the pins that are connected to TVP5150?

    2. Clock settings are correct or not?

    3. Any signals are coming from TVP5150?

    4. Are the settings of TVP5150 matching with DM6446?

    5. Are you using BT656 and HD/VD separate syncs or is it embedded sync? In that case have you set it properly at both sides?

  • Hi,

    I want to use BT656 with embedded syncs.

    I check the following:

    1. PINMUX settings for all the pins that are connected to TVP5150?

    Configuration of pin mux. We only need YOUT[0:7] and PCLK for BT656 with embedded syncs

        MUX_VAL(CP(CAM_HS),        (IEN  | PTD | EN  | M0)) /* VSYNC */ \
        MUX_VAL(CP(CAM_VS),        (IEN  | PTD | EN  | M0)) /* HSYNC */ \
        MUX_VAL(CP(CAM_XCLKA),        (IEN  | PTD | EN  | M4)) \
        MUX_VAL(CP(CAM_PCLK),        (IEN  | PTD | EN  | M0)) /* PCLK */ \
        MUX_VAL(CP(CAM_FLD),        (IEN  | PTD | EN  | M0)) /* FLD */ \
        MUX_VAL(CP(CAM_D0),        (IEN  | PTD | EN  | M0)) /* Yout 0 */ \
        MUX_VAL(CP(CAM_D1),        (IEN  | PTD | EN  | M0)) /* Yout 1 */ \
        MUX_VAL(CP(CAM_D2),        (IEN  | PTD | EN  | M0)) /* Yout 2 */ \
        MUX_VAL(CP(CAM_D3),        (IEN  | PTD | EN  | M0)) /* Yout 3 */ \
        MUX_VAL(CP(CAM_D4),        (IEN  | PTD | EN  | M0)) /* Yout 4 */ \
        MUX_VAL(CP(CAM_D5),        (IEN  | PTD | EN  | M0)) /* Yout 5 */ \
        MUX_VAL(CP(CAM_D6),        (IEN  | PTD | EN  | M0)) /* Yout 6 */ \
        MUX_VAL(CP(CAM_D7),        (IEN  | PTD | EN  | M0)) /* Yout 7 */ \
        MUX_VAL(CP(CAM_D8),        (IEN  | PTD | EN  | M4)) \
        MUX_VAL(CP(CAM_D9),        (IEN  | PTD | EN  | M4)) \
        MUX_VAL(CP(CAM_D10),        (IEN  | PTD | EN  | M4)) \
        MUX_VAL(CP(CAM_D11),        (IEN  | PTD | EN  | M4)) \
        MUX_VAL(CP(CAM_XCLKB),        (IEN  | PTD | EN  | M4)) \
        MUX_VAL(CP(CAM_WEN),        (IEN  | PTD | EN  | M4)) \
        MUX_VAL(CP(CAM_STROBE),        (IEN  | PTD | EN  | M4)) \

    2. Clock settings are correct or not?

    Yes.

    3. Any signals are coming from TVP5150?

    I test it with osciloscope

    4. Are the settings of TVP5150 matching with DM6446?

    TVP5150 registers I see in datasheet (SLES213.pdf - example 1) to work with ITU BT.656, I need to change only 0x03 register of tvp5150am1

    am3505 vpfe (DM6446) registers that  I am using:

    0x50 (REC656) = 0x00000003

    0x08 (SYN_MODE) = 0x00032F84

    0x14 (HORZ_INFO) = 0x0000059F

    0x48 (VDINT) = 0x00010000

    0x18 (VERT_START) = 0x00010001

    0x1C (VERT_LINES)= 0x000000EF

    0x54 (CCDCFG) = 0x00008800

    0x24 (HSIZE_OFF) = 0x000005A0

    0x28 (SDOFST)= 0x00000249

    5. Are you using BT656 and HD/VD separate syncs or is it embedded sync? In that case have you set it properly at both sides?

    Embedded syncs, And I think that the setup is correct.

    I am using kernel linux 2.6.37

    Thank you,

    Regards,

    David M.

  • David,

    What is the issue that you are seeing at the host side? Is ti capturing something or failing completely?

  • Hi,

    In display I only see a grey square. I see that V4L2 recognice the camera input like NTSC, but this is incorrect, because is PAL. I see the tvp5150am1 status register #5 (8Ch) and it has 83h value so correspond to (B,D,G,H,I,N) PAL ITU-R BT.601 (page 60 of SLES209E), so seems that tvp5150am1 is working well.

    I modified the code of vpfe_capture.c to force to PAL (based in http://e2e.ti.com/support/embedded/linux/f/354/p/127715/536979.aspx) but now system says that I have not enough memory for it. I do not the reason, but I have enough RAM for that, I try to see video with lower resolution but says the same.

    Thank you.

    Regards,

  • David,

    Can you try to increase the video memory by modifying the bootargs? Can you try to see whether you are able to get interrupts in the capture drivers?

  • Hello,

    How can increase the video memory? I don't think this could be the problem, because if I try differents resolutions always need 8bytes more. And I probe from 720*256 to 320*240 (what I need), and all of them I need 8 bytes more.

    What you mean with capture driver, ccdc device? The S.O it does not recive any interrupts. The video encoder (tvp5150am1) has sync signals embedded, and I do not know how to check the interrupts in CCDC. For that I can say that VDHDEN pin in SYN_MODE (03h)  register is activate, and value of VDINT (48h) register is 00010000h so VDINT0=0001h and VDINT1=0000h.

    Thank you

    David M.

  • David,

    Can you share your bootargs?

  • Hi,

    I am using

    mem=256M console=ttyS2,115200n8 noinitrd root=/dev/mtdblock4 rw rootfstype=jffs2 eth=$ethaddr

    Thanks a lot

    Best regards,

    David M.

  • David,

    I believe you've to pass the bootargs for video memory like "vram=20M" or similar. Please refer to this documentation for the detailed info.

    http://omappedia.org/wiki/Bootargs_for_enabling_display

    http://processors.wiki.ti.com/index.php/Camera_Users_Guide

  • Hi,

    The problem was a confusion between the am3505 CAMERA system and the CCDC, once detected I only change in UBOOT the pins, and thats works.


    Thank you for your help.


    Best regards,


    David M.