I'm having some difficulty getting the autographics mode on the 7604 to work properly. If I choose a video mode that matches the resolutions expected by the part, I at least get video out of it, but when I choose a non-standard mode, I get nothing. I've followed the autographics document "ADV7604_Autographics_RevPrA.pdf" but I can't seem to get things working. Our system uses the video output ports in 16 bit 4:2:2 mode with embedded sync, so I've not bothered with the configuration of DE/HS/VS/F.
As an example, consider receiving 1280x720p60 (CEA-861D timings) from a Mac via VGA.
The timing parameters for this mode are:
1650 horizontal pixels, 1280 active, 110 end of video to hsync, 40 in hsync, 220 end of hsync to video
750 vertical lines, 720 active, 5 lines end of video to vsync, 5 in vsync, 20 end of vsync to video
74.25mhz pixel clock, 60 frames per second
Following the document, I've done:
IO Map(0x00) = 0x07 [Video Standard = Auto]
IO Map(0x01) = 0x02 [Primary Mode = RGB, 60Hz]
IO Map(0x16/0x17) = 0x86 0x72 [PLL Manual Divisor enabled, PLL divisor set to 1650]
CP Map(0x8f/0x90) = 0x02 0x7c [Channel 1 Free Run Line Length = 636 - using the 28.636mhz crystal option]
Do I need to set the equivalent registers in the Channel 2 area (CP_MAP(0x46-0x48)? - we're not using sync channel 2 for anything.
CP Map(0xab/0xac) = 0x2e 0x00 [CP maximum line count = 750]
Ditto for the channel 2 equivalent
CP Map(0x91) = 0x40 [Progressive expected? Note that the autographics document and "ADV7604_SW_RevF.pdf" disagree on the meaning of this bit. I've tried it both ways to no avail]
Since we're not using the output HS/VS/DE/F, I've ignored this section and left the registers at the default 0 values.
CP Map(0xa2-0xa4) = 0x10 0x06 0x04 [CP_START_SAV = 256, CP_START_EAV = 1540]
CP Map(0xa5-0xaa) = 2e 0xa0 0x1a 0x2e 0xa0 0x1a [CP_START_VBI = 746, CP_END_VBI = 26, + even field couterparts the same]
IO_MAP(0x02) = 0x14 [Input color space = 1 (RGB 0..255)]
I've also tried with CP Map(0x81) bit 4 both set and cleared (auto graphics av code enable/disable) and that doesn't make a difference.
If I send 1024x768 and use video standard 12 instead of 7 things work correctly all else being the same. If I use a digital input, everything is fine, so I'm fairly certain that the part is configured correctly to talk to the DSP video port it's connected to.