Hello! I was really happy to find this thread, because I also have problems to configure the FrameReader. Unfortunately I can't adapt your comments for my case. It would be really nice if you help me.
I am trying to output Data from an onchip_memory (32bit) to a clocked_video_output in 1024x768. I have written "85" into all memory blocks. Now while reading I am using the following instanciation for the FreamReader:
// Frame Select
IOWR(ALT_VIP_VFR_0_BASE, 3, 0);
// Frame 0 Base Address
IOWR(ALT_VIP_VFR_0_BASE, 4, ONCHIP_MEMORY2_1_BASE);
// Frame 0 Words
IOWR(ALT_VIP_VFR_0_BASE, 5, 196608); //1024*768*1/(32/8)
// Frame 0 Single Cycle Color Patterns
IOWR(ALT_VIP_VFR_0_BASE, 6, 2359296); //1024*768*1Cycle
// Frame 0 Reserved
// IOWR(FRAMEREADER_BASE, 7, 0); // reserved for future use ?
// Frame 0 Width
IOWR(ALT_VIP_VFR_0_BASE, 8, 1024);
// Frame 0 Height
IOWR(ALT_VIP_VFR_0_BASE, 9, 768);
// Frame 0 Interlaced
IOWR(ALT_VIP_VFR_0_BASE, 10, 3); // See VIP Processing Suite - Table 4-4
// start Frame Reader
IOWR(ALT_VIP_VFR_0_BASE, 0, 1);
The goal later will be to write pixel data to the ram from different sources and then connect them from the ram to one tft, so that I can prebuilt the image in ram and pixelselect the sources. Therefore I want to use RGB in progressive and 1024x768.
My problems are the calculation of Words, Single Cycle Color Patterns and the right setting for Interlaced. It would be really nice if you could explain to me how I find out the number of cycles I need.
Thanks, Peter.