Placa gráfica VGA simples e caseira

Até onde eu sei, muitas pessoas estão interessadas em conectar o microcontrolador a um monitor comum e tentar exibir algo na tela. Este artigo discutirá a criação da placa de vídeo VGA mais simples baseada no microcontrolador atmega168-20.

De um modo geral, este projeto tem cem anos na hora do almoço. Mas uma vez eu prometi falar sobre esta placa de vídeo aqui também, mas tudo era preguiça. Agora é hora de cumprir a promessa.

Esta placa de vídeo produz uma imagem com uma resolução de 254x240 pixels com 256 cores. Tudo isso funciona no modo VGA padrão de 640x480 a 60 Hz de varredura. Testei esta placa de vídeo com 6 monitores (1 CRT e 5 LCDs), enquanto a placa funcionava em todos os monitores, exceto no monitor Acer. O que ele não gostou do sinal, eu não entendi.

Na versão mock-up, a placa de vídeo tem a seguinte aparência: A



placa de vídeo consiste em dois módulos: um módulo de memória e um módulo DAC.

O módulo de memória simplesmente gera sinais de sincronização (HS, VS) e apagamento de feixe (BL) e fornece um código de cor (D0 ... D7), que o módulo DAC converte em 0-0,7 V e o envia ao monitor. O microcontrolador do módulo de memória simplesmente repete os endereços da RAM estática, e os dados da RAM são da cor dos pontos. Usando um microcontrolador Atmega168 com uma frequência de 20 MHz, são necessários 2 ciclos de clock por ponto; portanto, essa parte do programa é escrita em assembler e expandida em um fragmento de repetição para cada ponto da linha. Permitirei-me não descrever a varredura dependente do tempo do sinal VGA, especialmente porque a Internet está cheia de informações sobre esse assunto (embora muitas vezes não coincidam entre si), e nos últimos anos eu já esqueci um pouco o cronograma que implementei neste cartão de vídeo.


Esquema do módulo de memória (abrindo em uma nova janela, você pode aumentá-lo).

O módulo DAC consiste em três DACs R-2R comuns com chaves e um seguidor de emissor de saída (devido ao qual uma variedade de cores é "cortada" um pouco). Se alguém descobrir o quão barato e com raiva consertar essa "punhalada" - você pode comentar. Em um gato de rádio, fui aconselhado a substituir o repetidor de emissor por um de origem, mas ainda não verifiquei esse conselho. Como você pode ver no diagrama, designei 3 bits para vermelho, 3 bits para verde e 2 bits para azul. Tomei transistores KT-315. :)


circuito DAC.

O que exatamente a placa de vídeo exibirá é determinado pelo controlador de controle. Sua tarefa é definir o endereço no barramento de endereços (A0 ... A15), definir os dados no barramento de dados (D0 ... D7), definir os sinais WR (gravação em nível baixo), OE (permissão para enviar dados em nível baixo) e definir Sinal A / B (alternando a memória para trabalhar com o controlador de controle em um nível baixo). O controlador de controle recebe um sinal de apagamento do feixe (BL) do cartão de memória, que pode ser usado para sincronizar a gravação com a memória da placa de vídeo.

Essa placa de vídeo funciona assim:


Placas de circuito impresso e firmware com sua fonte.

Boa sorte no desenvolvimento do projeto!

All Articles