por msamsoniuk » 30 Jan 2008 13:37
na verdade a base de tempo eh 25MHz sim mastk. a parametrizacao de tempo correta da IBM para gerar 640x480 em um monitor VGA padrao de 31.5KHz de hsync e 60Hz de vsync seria:
modeline "640x480" 25.175 640 664 760 800 480 491 493 525
entao o clock mais correto para o pixel clock seria 25.175MHz, inclusive para o modo de 400 linhas a 70Hz no mesmo monitor. essas modelines sao usadas pelo X no linux p/ programar os timers da placa de video. o primeiro valor eh o pixel clock (25.175MHz), depois sao dois blocos de 4 numeros para descrever a temporizacao horizontal e temporizacao vertical. vc iniciaria a linha transferindo os 640 pixels com a imagem, entao passaria a transferir pixels pretos, indicando a borda direita visivel da tela. no pixel 664 vc teria o inicio do pulso de sincronismo, no pixel 760 o fim do pulso de sincronismo e inicio da borda visivel esquerda. no pixel 800 vc teria o fim da contagem e inicio da proxima linha, com os proximos 640 pixels de imagem. os 4 numeros da descricao de temporizacao vertical funcionam de forma similar.
por outro lado, se vc pensar em NTSC, vai ter um clock de burst de chroma de 3.57MHz e varias frequencias multiplas disso: 7MHz, 14MHz e 28MHz. por exemplo:
Modeline "736x485i" 14.16 736 760 824 904 485 491 496 525 interlace
isso geraria uma imagem sem bordas na tela da TV. simplesmente trocar a largura e altura permitiria gerar uma imagem de 640x480 pixels na TV, mas com bordas nas laterais e eventualmente cortando parte da imagem em cima e embaixo. uma imagem boa com bordas e sem cortes soh seria possivel com algo como 640x400.
a mesma base de tempo e relacao de aspecto poderia ser usada no caso do VGA, simplesmente nao entrelacando e subindo o clock p/ 28.32MHz, com a vantagem q o monitor VGA permite vc ajustar a imagem de modo que ela fique com relacao de aspecto correta em funcao do pixel clock diferente.
a vantagem de vc usar a mesma base de tempo eh ter um equipamento q pode ser reconfigurado para trabalhar em VGA ou NTSC, mas realmente, o correto seria gerar em cima dos 25MHz.