Os sinais de vídeo padrão possuem uma amplitude de 1Volt pico a pico, com o nível de vídeo situado 0,7Volts acima do nível de referência de preto e o sincronismo situado 0,3Volts abaixo.
Fonte: http://www.exampointers.com/teletext/teletext.phtml |
Para gerar esses sinais com um microcontrolador podemos utilizar dois pinos e alguns resistores. No circuito abaixo a carga RL representa a impedância interna do monitor, que segundo a norma RS170 deve ser de 75 Ohms. Em alguns circuitos encontrados na internet [1] [2] a resistência R3 não é utilizada, mas isso aumenta muito a impedância de saída do circuito, o que pode ocasionar uma imagem sem contraste em alguns monitores.
Uma das maneiras de se gerar vídeo com um microcontrolador é chaveando-se dois pinos |
Usando dois pinos temos quatro combinações possíveis, das quais devemos nos preocupar com as 3 mais importantes: O nível de preto, o pulso de sincronismo e o nível de branco. Dá para gerar um nível de cinza também mas vamos desconsiderá-lo por enquanto.
A linha de nome VBias serve para gerar basicamente o sinal de sincronismo, enquanto a linha VColor gera o conteúdo de vídeo.
Precisamos calcular então os resistores de forma que possamos obter os seguintes níveis quando devidamente terminado por uma carga de 75 Ohms:
Pedestal, ou nível de preto: 0,3Volts
Pulso de sincronismo: 0 Volts
Pico de vídeo: 1,0Volt.
A linha de nome VBias serve para gerar basicamente o sinal de sincronismo, enquanto a linha VColor gera o conteúdo de vídeo.
Precisamos calcular então os resistores de forma que possamos obter os seguintes níveis quando devidamente terminado por uma carga de 75 Ohms:
Pedestal, ou nível de preto: 0,3Volts
Pulso de sincronismo: 0 Volts
Pico de vídeo: 1,0Volt.
A primeira consideração que devemos fazer é em relação aos níveis de saída do microcontrolador. Segundo o 'datasheet' do PIC16F688 (tomado como exemplo) temos que a tensão mínima de saída (VOL, porta em nível 0) pode chegar a 0,6Volts no pior caso. Já a tensão máxima (VOH) pode ser tão baixa quando VDD-0,7Volts
Fonte: Microchip.com |
Assim, devemos considerar deslocar nosso nível de sincronismo em 0,3 Volts, pois esse valor corresponde à metade do VOL mínimo. A razão de ser a metade é que estamos considerando que a impedância de saída do nosso circuito vai ser igual à da carga, ou seja 75Ohms.
Com isso, o nível de preto sobe para 0,6 Volts, pois este é 0,3Volts mais alto do que o nível de sincronismo. Já o nível de Branco sobe para 1,3Volts pois esta tensão está 0,7Volts acima do nível de preto. Estes valores estão resumidos na tabela abaixo.
Com isso, o nível de preto sobe para 0,6 Volts, pois este é 0,3Volts mais alto do que o nível de sincronismo. Já o nível de Branco sobe para 1,3Volts pois esta tensão está 0,7Volts acima do nível de preto. Estes valores estão resumidos na tabela abaixo.
Nível
|
V Bias
|
V Color
|
V Out
|
Observação
|
Preto
|
VOH
|
VOL
|
0,6V
|
0,3V offset + 0,3V sync
|
Branco
|
VOH
|
VOH
|
1,3V
|
Vblack + 0,7V video
|
Sincronismo
|
VOL
|
VOL
|
0,3V
|
Vblack - 0,3V sync
|
Os valores acima são todos para o circuito carregado com uma impedância de 75Ohms. No caso do circuito estar sem carga, estas tensões devem dobrar. Assim temos:
Condição | V Bias | V Color | V Out (RL=75) | V Out (aberto) |
Black | 4,7V | 0,6V | 0,6V | 1,2V |
White | 4,7V | 4,7V | 1,3V | 2,6V |
Sync | 0,6V | 0,6V | 0,3V | 0,6V |
Agora podemos partir para o cálculo dos resistores de forma a atender à tabela acima. O primeiro passo é a análise do circuito. Partimos então da lei de corrente de Kirchhoff: "Em um nó, a soma das correntes elétricas que entram é igual à soma das correntes que saem"
Aplicando a lei de Kirchhoff para calcular as resistências |
Assim temos que
Para facilitar as contas, vamos reescrever a equação considerando as condutâncias em vez das resistências.
Então, para RL=75Ohms, VOL=0,6Volts e VOH=4,7Volts (Vdd do PIC a 5,4Volts) temos podemos montar as equações para as três condições principais.
Para o circuito sem carga, ou seja RL=infinito, a condutância é igual a zero. Assim temos
Estas equações podem ser escritas na forma de um produto de matrizes:
Usando o Scilab como ferramenta de cálculo chegamos ao resultado (em Siemens, ou unidades de condutância)
>A=A={4.1 0 -0.6 ; 3.4 3.4 -1.3 ; 0.3 0.3 -0.3 ; 3.5 -0.6 -1.2 ; 2.1 2.1 -2.6 ; 0 0 -0.6}
>b=[ 0.6/75 ; 1.3/75 ; 0.3/75 ; 0 ; 0 ; 0 ]
>x=A\b
O que convertido para resistência resulta em:
>x.^-1
Usando valores comerciais mais próximos temos:
Vamos agora verificar os valores das tensões considerando os valores comerciais. Para isso é necessário reescrever a equação básica em função de V Out:
Resolvendo as várias condições para Vout, temos que:
Condição | V Bias | V Color | V Out (RL=75) | V Out (aberto) |
Black | 4,7 | 0,6 | 0,64 | 1,29 |
White | 4,7 | 4,7 | 1,35 | 2,71 |
Sync | 0,6 | 0,6 | 0,17 | 0,35 |
Dividindo-se a tensão em aberto pela tensão com carga de 75 Ohms encontramos a relação igual a:
Vopen/Vload = 2,71/1,35 = 2,01
Essa relação nos permite calcular a resistência de saída do nosso circuito. Partimos da relação de Thèvenin
Em números, ri=75 * (1,01) = 75,75 Ohms.
Conclusão:
Exceto pelos valores de tensão do nível de sincronismo, todos os outros ficaram bem dentro do esperado. Para o circuito carregado temos uma amplitude de 0,47Volts (abaixo do nível de preto) para o pulso de sincronismo e uma amplitude de 0,7Volts (acima do nível de preto) para o sinal de vídeo. Em compensação, apesar dos resistores utilizados serem de valor comercial e estarem ligeiramente diferentes dos valores calculados, a impedância de saída do circuito ficou bem próxima de 75Ohms.A figura abaixo traz o circuito com os valores finais.
De maneira genérica, o sistema de matrizes que descreve nosso circuito encontra-se abaixo. O valor das tensões de saída nas três linhas superiores (em verde) correspondem aos níveis de tensão com carga de 75Ohms e as linhas inferiores (em azul) correspondem aos níveis de tensão em aberto, ou seja, sem a carga.
Em Scilab, pode-se utilizar as seguintes linhas de comando
Voh = 4.7
Vol = 0.6
Voffset = 0.3
Vwhite = 1.0 + Voffset
Vblack = 0.3 + Voffset
Vsync = 0.0 + Voffset
V = { (Voh - Vwhite) (Voh - Vwhite) -Vwhite ; (Voh - Vblack) (Vol - Vblack) -Vblack ; (Vol - Vsync ) (Vol - Vsync ) -Vsync ; (Voh - 2*Vwhite) (Voh - 2*Vwhite) -2*Vwhite ; (Voh - 2*Vblack) (Vol - 2*Vblack) -2*Vblack ; (Vol - 2*Vsync ) (Vol - 2*Vsync ) -2*Vsync }
I = { Vwhite / 75 ; Vblack / 75 ; Vsync / 75 ; 0 ; 0 ; 0 }
s = V\I
r = s.^-1
Nenhum comentário:
Postar um comentário