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.

VPBE Digital Output (YCC16) Mode , Non-standard timings : Hsync, Vsync, Clk OK but No data on YOUT

Other Parts Discussed in Thread: TMS320DM6437

Hello,

 

I have configured VPBE in TMS320DM6437 in YCC 16 nonstandard mode for digital output.

The Hsync, Vsync, Clk seems perfect.

Case 1:

I pass image (from DDR RAM) to VPBE via the OSD.

 However I see data only on Yout4 pin and low on all the other Yout pins and hence no image on output.

Case 2:

If I enable the colorbar mode in Venc, I see color bar data on all Yout pins and also a perfect picture.

What could be the problem ?

 

Tushar

 

 

  • I wouldn't call whatever is on Yout4 pin "video data". Nonstandard mode requires a lot of programming, and you need to understand the user guide (VENC) portion fully before using that.

    Is your color bar displayed via composite output from the DAC?

    See below for a sample 720p display code. Note that your VPBE VENC setting need to match that of your external DAC

    void 720p(void)
    {
     Uint32 temp;

    VPSS_CLK_CTRL   = 0x0000000a;   // Enable DAC and VENC clock, both at 27 MHz

     OSD_BASEPX=BASEX720P;
     OSD_BASEPY=BASEY720P;
        OSD_VIDWIN0XP   = 220;
        OSD_VIDWIN0YP   = 25;
        OSD_VIDWIN0XL   = DISP_XRES720P;
        OSD_VIDWIN0YL   = DISP_YRES720P;
        OSD_VIDWIN0OFST = 1280 >> 4;
        OSD_VIDWIN0ADR  = (Uint32)buffer;
     OSD_VIDWINMD=1;
     OSD_MODE=0;
     OSD_MISCCTL     = 0;
    temp =1;
        OSD_OSDWIN0XP   = 220 +temp;
        OSD_OSDWIN0YP   = 25+temp;
        OSD_OSDWIN0XL   = DISP_XRES720P-temp;
        OSD_OSDWIN0YL   = DISP_YRES720P-temp;
        OSD_OSDWIN0OFST = 1280 >> 4;
        OSD_OSDWIN0ADR  = (Uint32)buffer2;
    // OSD_OSDWIN0MD =0x2039;
    //////
     VENC_HSPLS=BASEX720P;
     VENC_VSPLS=BASEY720P;
     VENC_HINT=1649;
     VENC_HSTART=300;
     VENC_HVALID=DISP_XRES720P;
     VENC_VINT=749;
     VENC_VSTART=26;
     VENC_VVALID=DISP_YRES720P;
     VENC_HSDLY=0;
     VENC_VSDLY=0;
     VENC_YCCCTL=0;
     VENC_VSTARTA=0;
    //////
    VENC_VIOCTL=0x6000;
    VENC_DRGBX0= 0x00000400;
    VENC_DRGBX1= 0x00000576;
    VENC_DRGBX2= 0x00000159;
    VENC_DRGBX3= 0x000002cb;
    VENC_DRGBX4= 0x000006ee;

    VENC_DCLKCTL=0x800;
    VENC_DCLKPTN0= 1;
    VENC_DCLKPTN1= 0;
    VENC_DCLKPTN2= 0;
    VENC_DCLKPTN3= 0;
    VENC_DCLKPTN0A= 2;
    VENC_DCLKPTN1A= 0;
    VENC_DCLKPTN2A= 0;
    VENC_DCLKPTN3A= 0;
    VENC_DCLKHS= 0;
    VENC_DCLKHSA= 1;
    VENC_DCLKHR= 0;
    VENC_DCLKVS= 0;
    VENC_DCLKVR= 0;
    VENC_RGBCTL=0;
    /////
    VENC_YCCCTL |=0x10;
    VENC_LCDOUT=0x1;
    VENC_SYNCCTL=3;
    VENC_OSDCLK0= 0;
    VENC_OSDCLK1= 1;
    VENC_OSDHADV= 0;
    VENC_VMOD=0x2111; //for yc output  //0x2111 for rgb output
    }

  • Paul,

    Thanks a lot for your reply.

    Here's what I am trying to do:

    1. I am not at all using composite video out & hence I have disabled DACs completely

    2. I am only interested in digital data ; Y0-Y7, Hsync, Vsync & PCLK signals to be precise.

    I found PCLK  matching VCLK in frequency that I am interested in i.e. 27 MHz hence I have continued to use the same PCLK signal. Let me know if this is a problem and whether I should just stick to VCLK.

    3. I have configured for YCC16 mode and I am interested only in the Luma (Y data) as I have a monochrome image. My hw doesn't care about the C data and the pins are left open.

    4. I am feeding this digital data to another TMS320DM6437 VPFE (CCDC input) which has code to throw image on the analog portt (NTSC) which I view via frame grabber

    5. The image size is 640 * 480

    6. I need Vsync  = 30Hz , Hsync = 31.5 Khz (approx) , hence I am going for a non-standard mode. With the YCC_XYZ_480P mode , I was getting Vsync at 60 Hz which  produces the image that I am interested in at the digital out,.  However, the receiving system will have to take images at 60fps (not acceptable) as compared to 30 fps that I am interested in.

    7. I am using progressive mode

    8. When I see the color bar output , it is on the digital lines

    Based on the info above, can you :

    1. Suggest an appropriate solution/VPBE settings

    2. Provide an example for 640 * 480 image

    3. Suggest more detailed reference document for VPBE. Currently I am using  VPBE user guide : SPRU952A December 2007 as reference but I guess I am missing something

    I feel I am pretty close to achieving what I intend to. Only thing is the Yout(barring YOUT4) lines seem to go limp when I have a video route of  Memory->OSD->Venc->Digital out while

    Venc(Color bar setting)->Digital Output works well.

    Based on the update that I have provided, if you wish to alter your earlier settings, please let me know. Else I will try out the settings that you have given above.

    Thanks again for helping me with this problem.

    Tushar

     

  • Tushar,

    I am afraid I don't have an example for VGA setting and will not have the BW to create an example for you. However I'd be happy to guide you through this effort. The VPBE user guide in the product folder is the one I would recommend you to read.

    The setting I have was for 720P display, and it was only included to show you what registers you need to set for non-standard mode. If you want, you can study that code and modify it for your VGA display.

    The OSD registers should be quite straight forward.

    I would recommend you spend more time on the following VENC registers as they define the actual video frame (please refer to table 21 and figure 25 of the userguide).

    VENC_HSPLS=BASEX720P;
     VENC_VSPLS=BASEY720P;
     VENC_HINT=1649;
     VENC_HSTART=300;
     VENC_HVALID=DISP_XRES720P;
     VENC_VINT=749;
     VENC_VSTART=26;
     VENC_VVALID=DISP_YRES720P;
     VENC_HSDLY=0;
     VENC_VSDLY=0;
     VENC_YCCCTL=0;
     VENC_VSTARTA=0;

    The DCLK registers below are straightforward, see section 4.4.4.4

    VENC_DCLKCTL=0x800;
    VENC_DCLKPTN0= 1;
    VENC_DCLKPTN1= 0;
    VENC_DCLKPTN2= 0;
    VENC_DCLKPTN3= 0;
    VENC_DCLKPTN0A= 2;
    VENC_DCLKPTN1A= 0;
    VENC_DCLKPTN2A= 0;
    VENC_DCLKPTN3A= 0;
    VENC_DCLKHS= 0;
    VENC_DCLKHSA= 1;
    VENC_DCLKHR= 0;
    VENC_DCLKVS= 0;
    VENC_DCLKVR= 0;
    VENC_RGBCTL=0;
    /////

    The following registers are super critical, please understand them well.

    VENC_VIOCTL=0x6000;
    VENC_YCCCTL |=0x10;
    VENC_LCDOUT=0x1;
    VENC_SYNCCTL=3;
    VENC_OSDCLK0= 0;
    VENC_OSDCLK1= 1;
    VENC_OSDHADV= 0;
    VENC_VMOD=0x2111; //for yc output  //0x2111 for rgb output

     

  • Thanks for the reply Paul.

    Didn't get much time to test it.

    Will get back to you once I try out the settings & do some experimentation for the output that I need.

  • Hello Paul,

    I am back to tackling the VPBE settings issue.

    I am still confused about the calculations.

    1. How do I calculate the values for the following considering 640 X 480 image ?

    HSPLS, HSTART, VSTART & VSPLS

     

    2. Could you explain the way the data is transferred from OSD to VENC in case of YCC16 digital non-standard mode?

    3. Whenever I switch to non-standard mode, I don't see any activity on the pixel/data bus but the HSYNC,VSYNC & VCLK signals are fine . Can you give any hints for troubleshooting? This is the point that's troubling me the most.

    4.  Has anyone had any luck using the YCC16 mode for non standard timings ?

    Would really appreciate if you can give some more details on the way the YCC16 digital output mode works w.r.t OSD & VENC.

    Tushar

  • Hi Tushar,

    I am having the same difficulty as you with regard to YCC16. My problem is so bad that I can't even get the HSYNC, 

    VSYNC and VCLK signals going properly. Did you manage to sort out your problems in the meantime?

    May I ask that you provide me with your pinmux configuration as a start? Currently I only have CWEN and LOEEN set to 1.

     

    Thanks,

    H