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.

DMA length causes lockup when outputting 720p on dm6437

Expert 2220 points


Hello I am using dm6437 and am setting up video loopback. Here is my scenario:

 

capture image from 1280x960 12-bit CMOS imager  -> Optimized shift function to make image 10 bits using QDMAs-> pass to previewer to convert to YCbCr -> run through resizer to size for display -> pass buffer to display

 

For a long time we have been using this project to output analog NTSC, we now have HDMI out available on our board and are outputting 1280x720.

 

Here is the issue that i am seeing. When displaying analog out 720x480 everything works fine. When we switch the back end resolution to 720p and change the resizer to fill that buffer DMAs seem to become an issue. If I skip the shifting function that uses the dmas everything works fine (except of course the the image is unshifted and blown out as expected). If i use the shifting function everything works find for a few seconds, then capture stops working (it just keeps cycling through already captured buffers), previewer starts to produce a vertical line on the screen taken from one of the images that it already processed, and small horizontal blue lines start to show up that are NOT present in the data given to the display driver. It should also be noted that it simple the use of the DMAs that causes this problem, even when the dma is not operating on image data. I had the program shift dummy data while passing unshifted data through the pipe and the same bad results happened. Now, if i change the amount of data shifted by each dma call the program becomes stable again. Basically, if i tell it to transfer 720*2 bytes per row each dma call instead of the full 1280*2 then the program becomes stable again. 

 

Once again, the dmas all work fine when i am displaying a 720x480 NTSC buffer, but all these problems arise once we switch to a 1280 *720 display buffer.

 

Any ideas?

Thanks,

Ben