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.

the under-run error RGB888 Display in DM648 via two Video port

In my project DM648 is used ,and display XGA true color via two Video ports.

But the screen is flicker sometimes,this is because the under-run error occurs.

when I use some other EDMA ,this bug occur more frequent.

I try the threshold 128,64 or 32 ,no usage.

 

Can anyone tell me how to prevent this bug with some ideas?

  • A few tips for you:

    1. The EDMA has several queues.  Therefore if another long EDMA transfer gets into the queue ahead of your video port transfer, that will hold off that transfer.  You need to pay careful attention to what transfers go on what queues.
    2. TC2 and TC3 have larger internal FIFOs which make them better suited for large transfers.  You'll likely get better bursting by using one of these for your video port transfer.
    3. The EDMA manual (spruel2) has a table called, "Read/Write Command Optimization Rules".  If you can make your transfer fit those rules you'll get much better performance internal to the device.  If you have trouble understanding these rules or implementing them feel free to post your settings and I'll have a look.
    Brad

     

     

  • Thanks you for your help!

       I use the TC3 for the video port transfer!

    the ACNT = 512; BCNT = 2; CCNT = 768.

      I haven't use any other EDMA resource,but it seems the flicker occur,and

    when system startup,the second video port's (B component) is not sync to the previous port(R & G component).

    and when this occur,the reset cannot restore it,only power down and then power up the board can restore it.

    Is there some ways to remove these error?

    Thanks!

  • Here's a quick summary of the conditions that need to be met in order for the EDMA controller to best optimize your transfer:

    • ACNT <= DBS (64)
    • ACNT is power of 2
    • BIDX = ACNT
    • BCNT <= 1023
    • SAM/DAM Increment = Yes 

    You did not post ALL of your settings, but I can comment on the ones you showed.  The first condition is not met so I recommend swapping your ACNT and BCNT.  This will give you the same overall transfer size but will allow the transfer to be better optimized by the EDMA.  Is your BIDX=ACNT (i.e. contiguous data)?

    There is a chapter in the Video Port Reference Guide called "Port Sync Operation" which discusses a mode for synchronizing two ports as you mention.

    Brad

  • Thank you!

    The bug is fixed!

    Because the input clock (65MHz)is not stable,so it cause the underrun error in vport display!

  • Dear Jiser,

    Are you able to output simultanious video on 2 different ports (VP1DISPLAY and VP2DISPLAY)?

    If yes, how?

    On my program, when I issue a second "START" on the second video port, the application hangs.

    Thanks,

    A.T.

  • Dear Brad,

    How can we output simultanious video on 2 different DM648 video ports (VP1DISPLAY and VP2DISPLAY)?

    On my program (heavily based on the supplied DM648 demo) , when I issue a second "START" on the second video port, the application hangs.

    Thanks,

    A.T.