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.

DM365 VPBE OSD programming to display video

Hello All,

I am trying to understand how the OSD and VPBE registers are working. To do so I am trying to generate my own (static or dynamic) video image in the DDR and get the OSD/VPBE to display it. My starting point is the Evaluation board Color Bar example. I obviously removed the Color Bar bit and I programmed the VIDWINADH, VIDWIN0ADL and VIDWIN0OFST registers as explained in another post on this forum.

I would then expect that writing to the DDR from my application would generate video (even random) but the screen stays black with a white line at the bottom. Is there something I am missing?

I have to say that I am also a bit confused by the loopback example as I don't see the loopback example writing to the DDR from the Front End Engine.

Note: I am trying to generate NTSC video. Color Bars are coming OK.

Thanks,

Joe

  • I am guessing you are looking at the target tests from Spectrum Digital's support site? Keep in mind that these tests are not really meant for production usage, but only for verification of the board, so they are not the best examples, and are not supported software. In general the device is designed to run a high level OS like Linux, where driving an image on a display is as easy as copying a file into the display frame buffer as mentioned in this app note, though for DM644x it largely applies to DM3xx.

    Joe Tanaka said:
    I have to say that I am also a bit confused by the loopback example as I don't see the loopback example writing to the DDR from the Front End Engine.

    It does appear to write into DDR, though there is no formal synchronization mechanism with the loopback, it would have to use external memory to hold the frame buffers in between the front end and the back end, the video data will simply not fit anywhere else. I would check to make sure you are looking in the right place in DDR, and that there is no cache coherency problem.

  • Thanks for the quick response.

    Yes, these are the Spectrum Digital board tests. I understand that they are not production nor supported software but on the other hand, it is generally easier (at least for me) to debug and get familiar with a new H/W platform using a basic OS-less unit test. This is also how I am planning to debug the H/W I designed that will plug into the DM365 board.

    If someone has a short example showing me how to display random pixels written into the DDR I would still be interested.

  • Hello,

    The color bar one, video_colorbars_sd, are you saying when you write into video_buffer, you don't see anything different on the screen? 

    If you haven't tried this yet... Don't init anything differently, just modify the content of video_buffer, and see if you see anything on the screen.

    I agree with Bernie, ISIF_CADU = 0x0400 & OSD_VIDWIN0OFST = 0x1000 | width >> 4, this tells you which buffer is used for the loopback testcase.

  • Paul.Yin said:

    I agree with Bernie, ISIF_CADU = 0x0400 & OSD_VIDWIN0OFST = 0x1000 | width >> 4, this tells you which buffer is used for the loopback testcase.

    You are correct and I just realized that. I went into the worng direction because the values were hardcoded and not calculated based on video_buffer!

    Now that I have more clarity (thanks again) I will test and respond to the thread.