Faça sua própria placa de vídeo

Circuitos eletrônicos, topologias, diagramas elétricos, etc...

Moderadores: 51, Renie, gpenga

Mensagempor brasilma » 29 Jan 2008 13:26

Desanima não Mastk, mede de novo os sincronismos, para TV o horizontal tem de estar próximo de 15.750Hz, e o vertical em 60Hz (525 linhas entrelaçadas).
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor msamsoniuk » 29 Jan 2008 18:58

vc tah usando video composto ? ela pelo menos sincroniza ? pode comecar testando apenas os sinais de hsync e vsync. na hora q ela sincronizar e as barras pretas pararem de passear, vc comeca a testar transferir imagem :)
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor mastk » 30 Jan 2008 09:45

Sim, composto, não sincronizava, consegui ontem a noite, era o oscilador que não estava locando direito com o FLL, coloquei um resistor de 1M e ficou mais ou menos, a imagem oscila um pouco, creio que seja o cristal msm dando interferencia, já que fiz uma rede de resistores em aranha.

Obrigado galera.

Agora uma pergunta, tem certeza que o VGA a base é de 28Mhz? Li em um artigo que é 25Mhz.
Editado pela última vez por mastk em 19 Mar 2008 10:53, em um total de 1 vez.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor LeandroPIC » 30 Jan 2008 11:16

De imagem é 25MHz, os outros 3 são para o tempo de sincronismo.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor mastk » 30 Jan 2008 12:27

Perai, 25 + 3 ?!?!? como assim?

Bem fiz uma plaquinha com QG8 para gerar padrão VGA e só funcionou num monitor calejado que tenho de reserva, nos samsung sinc masters modernos não vai nem a pau, então:

uma linha de horizontal de 32uS esta erada certo? e deve estar msm afinal resultaria numa frequencia de 31,25 Khz, partindo dos 31,5Khz que o sam comentou, resultaria em 31,17uS de linha horizontal +/-

Estaria esse raciocinio correto? bem ser for isso precisso pegar uma especificação certa e repasar pro placa...
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor 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.
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor mastk » 31 Jan 2008 13:42

levando em conta o tempo de 1 pixel para geração da linha horizontal em uma frequencia de 25Mhz no QG8 é impossivel. Sem alguns diferenças sobre a especificação, como eu fiz, logo seria esse o motivo dos monitores modernos não aceitarem o sinal?
Editado pela última vez por mastk em 06 Fev 2008 11:21, em um total de 1 vez.
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor brasilma » 31 Jan 2008 14:12

Sempre existem alguns truques, o processador não precisa enviar pixel-por-pixel para o video, vc pode usar um simples shift-register externo para isso, basta carregar o byte nele e assim divide esse tempo por 8x (ou 16x se o processador for de 16 bits).
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor msamsoniuk » 01 Fev 2008 12:57

usando a SPI como shift register acho q eh tranquilo, jah vi um projeto com o GP32 q usava essa solucao para TV. mas daih para o VGA teria q clockar a SPI a 25MHz e conseguir escrever continuamente e de forma sincronizada no registro da SPI a 1/8 dessa velocidade... eh um esforco consideravel deixar tudo sincronizado.

mas note q vc conseguir ou nao gerar os pixels a 25MHz nao ira fazer diferenca para o monitor, o q importa eh vc conseguir gerar os pulsos de sincronismo corretamente. entao uma solucao seria programar um timer para 31.5 KHz p/ disparar a rotina de transferencia... se ela nao terminar a linha antes da proxima nao tem galho, o importante eh o pulso de hsync e vsync existirem e serem estaveis :)
Avatar do usuário
msamsoniuk
Dword
 
Mensagens: 2935
Registrado em: 13 Out 2006 18:04

Mensagempor brasilma » 01 Fev 2008 14:01

Se for necessário, usar o sinal do clock através de um divisor apropriado para o shift
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor LeandroPIC » 04 Fev 2008 11:45

Fiz um com PIC18F2550 só para testar sei que ele é muito lento para isso, Já faz um bom tempo, era mais pra entender como funciona um monitor, mais consegui 525 linhas horizontal e 292 linha vertical, fiz uma int de timer a 31,5Khz, funcionou perfeitamente. Cincronizar é facil o dificil é enviar os dados para o Monitor, se vc trabalhar com cores ai é complexibilidade TOTAL.
Avatar do usuário
LeandroPIC
Byte
 
Mensagens: 163
Registrado em: 06 Jul 2007 12:19

Mensagempor mastk » 18 Mar 2008 14:30

Consegui fazer VGA certinho rodando em qlqr monitor no QG8, estou apenas gerando barras verticais, agora vem o segundo problema, fazer o circuito de double buffer, estou tendendo a usar logicas discreta, já que CPLDs não gostam de mim, porém vendo algumas velhas placas de arcade fica a pergunta:

Existe ainda dual port RAM? Vi que ainda tem algumas na farnell por preços cretinos (R$110,00) e com apenas 8K, ridiculo.

Já fiz ha algum tempo atrás uma placa de DB, mas ela não está funcinado XP...
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Mensagempor brasilma » 18 Mar 2008 15:29

Uma das técnicas utilizadas, é trabalhar com áreas de memória de vídeo diferentes, enquanto uma está sendo varrida você monta a outra, depois chaveia (muda o endereço base).
" A Teoria orienta e a Prática decide" ;-)
Avatar do usuário
brasilma
Dword
 
Mensagens: 3621
Registrado em: 11 Out 2006 15:39
Localização: Planeta Terra

Mensagempor tecman » 19 Mar 2008 09:31

o mastk interessante seu projeto se puder me falar mais fico grato viz um aqui todo a base de ttl mas não gostei não !!
tecman
Byte
 
Mensagens: 342
Registrado em: 01 Nov 2006 09:02

Mensagempor mastk » 20 Mar 2008 13:33

Bem, tecman, essa placa de video pretendo usar ela no projeto de 68K, que estava parado um bom tempo, a ideia é fazer um video-game, na parte de video, tanto composto como VGA eram boas opções, no presente momento, graças a essa experiencia VGA é que vira.

Até agora nada muito complexo, bastou pegar uma base de clock e especificação correta que tudo deu certo, fiz as temporizações por programa corrido e é isso ai.

Estou pensado nas opções de DB, estou meio que em uma situação dificil graças a limitação fisica da caixa que estou usando, e tb não estou querendo simplificar ao maximo a utilização e montagem dessa bagaça.

(Só precisso de uma placa com CPU de apoio e revivo o 68K).
Avatar do usuário
mastk
Dword
 
Mensagens: 4407
Registrado em: 14 Out 2006 20:43

Anterior

Voltar para Circuitos Diversos

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x