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 SDRAM address register

Hi,

I have a problem with the VPBE and I hope that someone can help me!

I managed to get the VPBE running in 720p60 mode with custom timings and digital output. But after setting the SDRAM register my monitor doesn't show what I wrote into the frame buffer (see figure 1 and 2).

Figure 1(on the left): VRAM buffer saved to file - all pixel in VRAM buffer are set to the same value

Figure 2(on the right): Monitor displaying data from VRAM buffer

 

From another  post I know that setting the SDRAM address is a bit tricky, so I made a diagram to show how I set the address:

Are the register correct?


For setting the BASE-Pixel register and correct timings I will make another post...

 

Thanks in advance,

Sebastian

  • HI,

    When you say "setting te background" works, what do you mean?

    When you set the VIDWIN0 size to smaller value (i.e., to D1), are you able to see that the rest of the screen is set to the color that you intended? You can set bkgd color in MODE register.

    Try play with the XL, YL, XP, and YP bit fields, and see whether this corrupted screen can be moved and size-adjusted.

  • Hi Paul,

    you understood my encoded information ... shifting the video window to the right makes the background color (in my case blue) visible.

    What do you think about the SDRAM address register?

    Sebastian

  • let me look into this. I think your register setup is correct, and I will verify it locally.

    Are you able to play with XL, YL, XP, and YP so that you corrupted video appears in the center of the screen w/ blue borders on all 4 sides (background)?

    BTW. Are you using CCS or Linux? It will be much easier to debug if this is in CCS.

  • Hi Paul,

    thank you for your attention.

    Yes I am able to resize the video window to show four blue borders. But there is something weired going on.

    RESX = 1280, XP = 100, XL = 1280 - 200

    RESY = 720, YP = 100, YL = 720 - 200

    The borders with a width of 100 pixel each do not appear on the right side. The monitor has a resolution of 1280x1024, but the signal is 1280x720. Thus the image should be stretched vertically. But on the image the left border seems to be stretched - horizontally stretched.

    To center the video window, I have to reset the window-y-size

    YL = 1280 - 840 = 440

    Now the picture is centered. The color pattern has changed.

    From your question about my development environment, I can derive that you are interested in my register settings. The register read out with the help of my Linux kernel module is:

    Register offset VPBE.OSD 0x01c71c00
     0x000 : 0x000000cc 0x00000001 0x00000000 0x00000000
     0x010 : 0x00000000 0x00000000 0x00001050 0x00000050
     0x020 : 0x00000000 0x00000000 0x0000002d 0x0000e100
     0x030 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x040 : 0x00000050 0x00000018 0x00000064 0x00000064
     0x050 : 0x000001b8 0x00000208 0x00000000 0x00000000
     0x060 : 0x00000500 0x000002d0 0x00000000 0x00000000
     0x070 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x080 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x090 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0a0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0b0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0c0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0d0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0e0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0f0 : 0x00000000 0x00000000 0x00000000 0x00000000

    Register Offset VPBE.VENC 0x01c71e00
     0x000 : 0x00002011 0x00002000 0x00000000 0x00000003
     0x010 : 0x00000028 0x00000004 0x00000603 0x000000a0
     0x020 : 0x00000500 0x000002eb 0x00000018 0x000002d0
     0x030 : 0x00000000 0x00000000 0x00000000 0x00000500
     0x040 : 0x0000ff00 0x00000000 0x00000000 0x00000001
     0x050 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x060 : 0x00000000 0x00000800 0x00000001 0x00000000
     0x070 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x080 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x090 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0a0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0b0 : 0x00000000 0x00000000 0x00000000 0x0000000a
     0x0c0 : 0x00000000 0x00007000 0x00000000 0x0000017a
     0x0d0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x0e0 : 0x00000100 0x00000000 0x00000000 0x00000000
     0x0f0 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x100 : 0x00000400 0x0000057c 0x00000159 0x000002cb
     0x110 : 0x000006ee 0x00000400 0x0000057c 0x00000159
     0x120 : 0x000002cb 0x000006ee 0x00000000 0x00000001
     0x130 : 0x00000002 0x00000000 0x00000000 0x00000000
     0x140 : 0x00000111 0x00000000 0x00000000 0x00000000
     0x150 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x160 : 0x00000000 0x00000000 0x00000000 0x00000000
     0x170 : 0x0000d642 0x00000000 0x00000000 0x00000000

    Is this information helpful for you?

    Regards

    Sebastian

  • Sebastian,

    HSPLS, VSPLS, HINT, HVALID, HSTART, VINT, VVALID, VSTART, HSDLY, VSDLY can be modified to change the display as well (the thing you noticed above is related to these setup). There is not really a fixed formular for this, you might have to try it out until you see a timing that you desire.

    Are you able try your experiment in CCS? It might save your sometime debugging

    It appears that you've enabled OSD, could you please disable and try VIDWIN0 only?

    What I will suggest is you check the value of VIDWINADH, VIDWIN0ADL and VIDWIN0OFST, make sure you are indeed pointing to the buffer you setup. Also, please make sure your input data format matches.

     

  • Paul,

    I understand that there is no definite definition for the timing register and its no problem for me to make a try and error method.

    Where did you see an enabled OSD? You where right, I wrote some register on the false address. I checked my register address header and found some wrong addresses coming from my old dm355 system.

    The monitor now shows the content of the frame buffer.

    Now I can continue with the VPFE.

    Thank you for your help.

    Sebastian

  • Hi,

    I am having difficulty in actually getting my picture to display and seeing as you got this running I would like to ask a couple of questions.

    What was wrong with the address that you specified as the buffer address? Did you simply point oto the wrong address?

    I can adjust the window 0 to the size I want to, but my image is not displayed in the window. It is simply some default green screen. Did you load your bitmap "as is" into DDR2 RAM at the VIDWIN0ADR? Or did you do some kind of conversion first?

    The address I load into is 0x80200000.

    Any advice would be appreciated?

     

    Thanks,

    Herman van Wyk