Está en la página 1de 39

Generador de patrones de video

Introduccin
El objetivo de este proyecto ha sido la construccin de un generador de patrones de video compuesto, cuyas aplicaciones se extienden desde el campo de la enseanza de la seal de video hasta la reparacin y ajuste de equipos receptores de televisin. No se ha pretendido la realizacin de un equipo con fines comerciales, ya que no se garantizan las especificaciones de un generador de video profesional, si bien se logrado un equipo de muy alta calidad.

Especificaciones
Patrones: Controles: Salida de video: Sistema de color: Sistema de barrido: Alimentacin: Consumo mximo: Aplicaciones: Barras de color, Raster, Cross-hatch, Puntos. R, G, B, luminancia, crominancia y burst de color independientes. video compuesto, 1 Vp-p en carga de 75 ohms. PAL-N (opcional PAL-B/G/I cambiando el oscilador de croma). entrelazado (Barras y Raster), no entrelazado (Cross-hatch y Puntos). 12 Vdc (8 x AA pilas alcalinas). 70 mA (Raster blanco). ajustes de receptores de televisin (pureza, convergencia, linealidad, etc.), localizacin de fallas en el sector de video de televisores y videocaseteras, enseanza de la generacin de video compuesto.

Generalidades
El ojo humano es capaz de percibir imgenes mediante receptores ubicados en la retina. Hay dos tipos de receptores, segn su funcin: los bastones, encargados de percibir imgenes en blanco y negro, y los conos, a cargo de la percepcin del color. Si nos concentramos en el estudio de los conos, veremos que hay de tres tipos: los que reaccionan frente a la luz roja, los que lo hacen frente a luz verde y finalmente los que son sensibles a la luz azul. Solo se perciben tres colores, sin embargo nosotros vemos todos los colores que nos rodean. Aqu se hace evidente una regla bsica del color: para conocer la informacin de color de un objeto basta con tener la proporcin de los tres colores bsicos: Rojo, Verde y Azul. Por esta razn a dichos colores se los conoce como Colores Primarios, ya que con la combinacin de los mismos se pueden obtener todos los dems. Cabe hacer una aclaracin, ya que tal vez alguna vez se nos haya dicho que los primarios son el rojo, amarillo y azul. Es ms, si observamos los colores utilizados por las impresoras de tinta, muy comunes en la actualidad, veremos que utilizan tres cartuchos, magenta, amarillo y cian. No utilizan los primarios, y sin embargo imprimen a todo color. Alguien debe estar equivocado

La confusin resulta de la existencia de dos grupos de colores primarios: los Primarios Aditivos y los Primarios Sustractivos. Para entender la diferencia entre ambos veamos un par de ejemplos. Supngase que iluminamos una pared blanca con una luz verde. Obviamente se ver verde, ya que este es el color que refleja la pared y llega a nuestros ojos. Si ahora cambiamos la luz a rojo, igualmente veremos el color rojo. Pero si iluminamos al mismo tiempo con verde y rojo, el color que percibiremos ser el amarillo, el cual resulta de la suma o adicin de los colores verde y rojo. Como se observa, la suma de estos colores resulta en la generacin de un color secundario, por esto se denominan primarios aditivos. Ahora supongamos que pintamos un papel blanco con pintura amarilla, y lo iluminamos con luz blanca (contiene todos los colores). Obviamente se ve amarillo. Por qu?. Porque la pintura retiene (sustrae) todos los componentes de la luz blanca que la ilumina y devuelve solo el amarillo, el cual llega a nuestros ojos. Si ahora agregamos pintura cian (celeste intenso), el color resultante es verde. Quiere decir que la mezcla ha retenido todos los colores de la luz blanca menos el verde. Cmo se explica esto?. Veamos algunas ecuaciones. Si sumamos todos los colores primarios aditivos obtenemos blanco: LUZ ROJA + LUZ VERDE + LUZ AZUL = LUZ BLANCA Si los sumamos de a dos: LUZ ROJA + LUZ VERDE = LUZ AMARILLA LUZ ROJA + LUZ AZUL = LUZ MAGENTA LUZ VERDE + LUZ AZUL = LUZ CIAN De aqu surge una relacin clave en nuestro anlisis: los llamados colores primarios sustractivos resultan de combinar dos a dos los primarios aditivos. Entonces, cuando vemos la pintura amarilla en realidad estamos viendo luz roja y luz verde combinadas. Quiere decir que la pintura amarilla sustrae el azul de la luz blanca y devuelve los otros dos primarios. Por otra parte, la pintura cian retiene el rojo y devuelve luz verde y luz azul. Entonces, ahora es evidente el resultado de nuestro experimento. Si mezclamos pintura amarilla (retiene el azul) con pintura cian (retiene el rojo), el nico color que puede salir de esta mezcla es el verde, el cual es justamente el color que vemos. Qu ocurre si mezclamos los tres colores primarios sustractivos?. Obviamente se ve negro, ya que todas la luces son retenidas: CIAN + MAGENTA + AMARILLO = NEGRO Queda an una pregunta sin resolver. Por qu habitualmente se dice que los colores primarios son rojo, amarillo y azul?. El motivo es sencillo. Desde nios se nos ensea el color mediante la pintura, y en este campo ya sabemos que trabajamos con los primarios sustractivos, amarillo, magenta y cian. A estos ltimos, por ser rojizo y azulado, respectivamente, se los llama rojo y azul.

Los colores en televisin La imagen en un televisor a colores se forma mediante la emisin de luz resultante de la excitacin de la pelcula de fsforo, que recubre internamente la pantalla, al ser alcanzada por un haz de electrones que barre peridicamente la superficie visible. Si hablamos de emisin de luz, inmediatamente debemos pensar en procesos aditivos, lo cual nos lleva a concluir que en televisin los colores primarios son el Rojo, Verde y Azul (RVA o en ingls RGB). Efectivamente, dentro del tubo de televisin se emiten tres haces de electrones, destinados cada uno a excitar una franja de fsforo en la pantalla, la cual responder emitiendo un color caracterstico al fsforo empleado. Naturalmente, como no poda ser de otro modo, estos colores son Rojo, Verde y Azul. Todos los dems colores (y digo realmente todos) se pueden obtener combinado estos tres primarios en distintas proporciones. Generador de barras bsico Un generador de barras de color bsico podra hacer lo siguiente: tener tres salidas, una para cada color primario cada una de estas salidas se conecta a la correspondiente entrada del televisor el equipo generar combinaciones de sus salidas, segn la siguiente tabla:

Azul Rojo Verde

1 1 1

0 1 1

1 0 1

0 0 1

1 1 0

0 1 0

1 0 0

0 0 0

blanco

amarillo

cian

verde

magenta

rojo

azul

negro

En esta tabla un 1 significa presencia del color, en tanto que un 0 es su ausencia. En la prctica, estos unos y ceros se representan por niveles de tensin, por ejemplo 5V y 0V respectivamente. Como se observa, es muy sencillo construir un generador de este tipo, ya que basta un mnimo de electrnica digital para obtener estas barras. Entonces, por qu complicarse ms?. La mayora de los equipos de televisin y video no poseen entradas directas de Rojo, Verde y Azul, estas quedan reservadas para monitores destinados al campo profesional. Lo habitual es que los equipos hogareos tengan una entrada de Video Compuesto, denominada usualmente como VIDEO IN. Por esta razn, nuestro generador debe poder convertir los componentes Rojo, Verde y Azul en ese Video Compuesto.

Video compuesto Las seales de Rojo, Verde y Azul (de ahora en ms la llamaremos simplemente RGB) contienen toda la informacin de la imagen, pero ocuparan un ancho de banda considerable si se transmitieran, lo cual justamente es el objetivo de una transmisin de televisin. Para reducir este ancho de banda, adems de mantener la compatibilidad entre transmisiones en Blanco y Negro y Color, se cre la seal de Video Compuesto. En esta seal va la informacin de luminosidad (Luminancia) de una imagen, su color (Crominancia), y adems todos los sincronismos necesarios para generar correctamente la imagen en la pantalla del televisor. Cules son estos sincronismos?. Para contestar esta pregunta veamos primero como se forma una imagen en el televisor. Un haz de electrones (consideremos uno solo, sabemos que son tres) recorre la pantalla de izquierda a derecha y de arriba a abajo, segn lo muestra el esquema adjunto. A medida que recorre la pantalla excita en mayor o menor grado al fsforo que la recubre, generando una imagen. Como se ve, si bien la imagen aparece en una pantalla de dos coordenadas (un plano), en realidad se genera mediante lneas sucesivas. Del mismo modo ingresa al equipo, lnea a lnea. Por lo tanto, es indudable que se necesita sincronizar el haz de electrones que barre la pantalla con el barrido generado en el estudio de televisin. Si no se hiciera esto, las imgenes apareceran cortadas, con barras inclinadas, con colores incorrectos (basta con ver un canal codificado para tener una idea de lo que quiero decir, ya que una manera de codificar la seal es quitarle los sincronismos). Sincronicemos entonces el barrido del haz. Hay que informarle donde empieza una nueva imagen (sincronismo Vertical o V) y donde comienza cada lnea (sincronismo Horizontal o H). Evidentemente el sincronismo Horizontal es un componente de mayor frecuencia que el Vertical, ya que dentro de cada imagen hay muchas lneas de barrido. Cuntas lneas hay dentro de una imagen?. La respuesta es: depende de la norma de transmisin que estemos considerando. Normas de transmisin Una norma es un conjunto de parmetros adoptados como regla dentro de determinado grupo o regin a fin de mantener una relacin clara y sin ambigedades entre las partes. En televisin es exactamente eso. Las normas establecen los parmetros que deben seguir tanto los equipos transmisores de seal como los receptores, a fin de que se establezca una comunicacin segura y sin errores entre ambos. Entre los muchos parmetros que se fijan consideraremos solo los que ataen a nuestro proyecto.

Frecuencia Horizontal (H): frecuencia a la que se repiten las lneas de imagen. Sincronismo Horizontal (H Sync): pulso que indica el comienzo de una lnea de imagen. Frecuencia Vertical (V): frecuencia a la que se repiten las imgenes (campos). Sincronismo Vertical (V Sync.): pulso que indica el comienzo de una imagen (campo). Lneas Horizontales: cantidad de lneas que forman una imagen completa (cuadro). Subportadora de Color (SC): frecuencia a la que se modula para enviar la informacin de color. BURST de Color: rfaga de la SC que sincroniza la demodulacin del color. Front Porch: intervalo de seal sin informacin de imagen previo al H. Sync. Back Porch: intervalo de seal posterior al H Sync., donde se coloca el BURST. Todo esto se resume en el siguiente diagrama:
BURST

Front Porch

H Sync.

Back Porch

Imagen

En la informacin anterior se hizo referencia a dos palabras que an no han sido definidas: Campo y Cuadro. Para comprender su definicin debemos primero aclarar el concepto de Barrido Entrelazado. Como ya se dijo, para reconstruir la imagen en la pantalla del televisor, el haz de electrones recorre la misma lnea a lnea de arriba a abajo. Bastara una pasada completa del haz de electrones para tener una imagen formada en pantalla. Sin embargo no es as. Se requiere que el haz de electrones barra dos veces la pantalla para formar una imagen completa. Veamos esto con ms detenimiento. Cuando la cmara de video en el estudio de televisin escanea la imagen que va a transmitir, lo hace dividiendo la imagen en lneas horizontales. Estas lneas sern posteriormente transmitidas al receptor de televisin para que este las reproduzca secuencialmente en la pantalla. Sin embargo, no se transmiten las lneas consecutivamente (lnea 1, 2, 3, 4, ) sino que primero se transmiten las impares (lnea 1, 3, 5, ) y luego las pares (lnea 2, 4 ,6, ). Del mismo modo recorre el haz de electrones la pantalla, reproduciendo primero las lneas impares y luego las pares. Por este motivo se requiere que el haz recorra 2 veces toda la pantalla para formar una imagen completa. A las dos semiimagenes se les denomina Campos (Impar y Par respectivamente) y a la imagen completa Cuadro. Esto se esquematiza en la figura adjunta.

En esta figura se ha denominado I al Campo Impar y II al Campo Par. En el diagrama se puede observar que el campo impar termina en media lnea horizontal y el par comienza con media lnea horizontal. Esta caracterstica la veremos a continuacin cuando analicemos las dos formas de barrido que pueden encontrarse: Barrido Entrelazado y Barrido No Entrelazado. El ejemplo que acabamos de ver corresponde a una imagen generada con Barrido Entrelazado. Su nombre proviene del entrelazamiento de las lneas de barrido de dos campos sucesivos. Qu ventaja tiene?. Obtener una mayor frecuencia de repeticin de imgenes sin aumentar el ancho de banda. Cmo es esto?. Por el canal de transmisin se envan una cierta cantidad de imgenes por segundo (digamos por ejemplo 25). En el televisor se reproducen estas 25 imgenes por segundo, pero barriendo la pantalla 50 veces por segundo. Para nuestro ojo es como si se hubieran generado 50 imgenes en un segundo, haciendo imperceptible el parpadeo de la imagen. Como dato adicional, en el cine ocurre lo mismo. Las pelculas antiguas corran a 16 cuadros por segundo, y en ellas era muy notorio el parpadeo. Actualmente se filma a 24 cuadros por segundo, y el obturador se abre dos veces en cada cuadro durante la proyeccin, con el mismo propsito de disminuir el parpadeo. Volviendo a la televisin, si este mtodo es tan bueno, no tiene sentido insistir con el Barrido No Entrelazado. Sin embargo, el entrelazamiento, que ha probado ser insustituible en imgenes en movimiento, falla en imgenes fijas. Por qu?. Imaginemos una lnea blanca horizontal quieta sobre un fondo negro en medio de la pantalla. Cuando se barre el campo impar la lnea aparecer a determinada altura, en tanto que cuando se barra el campo par la misma aparecer naturalmente una lnea horizontal ms arriba o ms abajo que la anterior. Al sucederse los campos, la lnea se ver temblar en sentido vertical, en forma poco perceptible, pero muy molesta si uno debe fijar la vista en la pantalla. Cmo se soluciona?. Fcil. Se utiliza el Barrido No Entrelazado. Este es mucho ms sencillo. Simplemente, las lneas de barrido se superponen campo tras campo. Esta tcnica es muy utilizada en monitores de computacin y en generadores de patrones cuando se utilizan seales como el Cross-hatch (lneas) y Puntos.
Barrido entrelazado
Campo I II I II I II I II I II I II I II I Campo I,I' I,I' I,I' I,I' I,I' I,I' I,I' I,I'

Campo I II I II I II I II I II I II I II I

Barrido no entrelazado

Norma N Actualmente en el mundo hay muchas normas de transmisin de televisin, denominadas con letras desde la A a la N. Algunas ya no se utilizan, pero la mayora siguen vigentes. Veamos ahora los valores que se han establecido para los parmetros que hemos definido en la norma N, utilizada en solo tres pases del mundo: Argentina, Uruguay y Paraguay. Frecuencia Horizontal (H): 15626 Hz (duracin de una lnea: 64 seg.) Sincronismo Horizontal (H Sync): 4.8 seg. Frecuencia Vertical (V): 50 Hz (duracin de un campo: 20 mseg.) Sincronismo Vertical (V Sync.): 2.5 lneas horizontales Lneas Horizontales: 625 por cuadro (312.5 por campo) Subportadora de Color (SC): 3.582056 MHz BURST de Color: 9 a 11 ciclos de SC Front Porch: 1.9 seg. Back Porch: 5 seg. Si comparamos estos valores con normas en uso en Europa (B, G, I) veremos que hay una gran similitud, excepto por el valor de la subportadora de color (en estos sistemas es 4.43 MHz). Para concluir con el tema de las normas, veamos un esquema que representa una seal real de video norma N, utilizando los dos mtodos de barrido ya analizados (ver figura en pgina siguiente). Concentrmonos solamente en el mtodo entrelazado. Se ve claramente como el pulso de sincronismo vertical abarca 2 lneas horizontales (la 1, 2, y mitad de la 3 en el Campo I). Pero adems se ve algo no mencionado hasta ahora: aparecieron unos pulsos de Pre y PosEcualizacin. Qu es esto?. La deteccin del sincronismo vertical en el televisor se realiza integrando la seal de video que llega, y cuando esta alcanza un determinado valor se dispara el barrido vertical. La integracin se lleva a cabo mediante un circuito RC, y se monitorea la carga del capacitor para decidir cuando disparar el vertical. Dependiendo de la imagen previa al pulso de sincronismo vertical, el capacitor podr estar ms o menos cargado, haciendo que los barridos verticales no se disparen siempre en un mismo punto, provocando inestabilidades en la imagen (temblor vertical). Para evitar esto se colocan los pulsos de pre y pos-ecualizacin, cuya funcin es llevar la carga del capacitor a valores fijos antes y despus del pulso vertical. El hecho de hacerlo tambin despus evita disparos errticos del sistema. Los pulsos de pre y pos-ecualizacin tienen una frecuencia igual al doble de la horizontal y su duracin es la mitad de la del H Sync. Se aplican durante un tiempo igual a 2 lneas horizontales. Finalmente, los pulsos positivos que aparecen dentro del pulso de sincronismo vertical se denominan Serrated Pulses, y su funcin es mantener enganchado al oscilador horizontal durante este perodo. Su duracin es igual al H Sync.

Mtodos de barrido en TV - sistema PAL-N


Barrido entrelazado
Pulsos de Pre-ecualizacin Sincronismo Vertical Pulsos de Pos-ecualizacin

Campo I

621

622

623

624

625

Campo II
Pulsos de Pre-ecualizacin Sincronismo Vertical

Pulsos de Pos-ecualizacin

309

310

311

312

313

314

315

316

317

318

319

Barrido no entrelazado
Pulsos de Pre-ecualizacin Sincronismo Vertical Pulsos de Pos-ecualizacin

Campo I

620

621

622

623

624

Campo I'
Pulsos de Pre-ecualizacin

Sincronismo Vertical

Pulsos de Pos-ecualizacin

308

309

310

311

312

313

314

315

316

317

318

Sistemas de color La televisin cromtica lleg varios aos despus de inventado el sistema blanco y negro, y por lo tanto tuvo que adaptarse al sistema en uso. Fue necesario desarrollar sistemas de color compatibles con los receptores monocromticos del momento y adems los nuevos aparatos reproductores de color deban seguir captando las seales de origen blanco y negro. Fue as que aparecieron y perduraron tres sistemas de color: NTSC, PAL y SECAM. Trataremos del PAL que es el sistema que nos concierne. El sistema PAL se basa en enviar la informacin de color modulando la fase de una portadora con dos seales en cuadratura (a 90). Veamos el proceso paso a paso. Dijimos que toda la informacin de color de un objeto est en sus componentes Rojo, Verde y Azul. Esos son los colores que captan nuestros ojos, y si logramos transmitirlos, habremos transmitido el color real del objeto. Lo que no dijimos es que nuestros ojos tienen distinta sensibilidad a cada uno de los colores primarios. Son muy sensibles al verde, menos al rojo y mucho menos al azul. Si lo ponemos en porcentajes relativos de sensibilidad: VERDE: ROJO: AZUL: 59% 30% 11%

O sea que la luminosidad de un objeto (LUMINANCIA o Y), entendida como la suma total de luz que emite, puede representarse as: Y = 0.30Rojo + 0.59Verde + 0.11Azul De ahora en ms denominaremos R al Rojo, G al Verde y B al Azul (tomados del Ingls), por lo tanto: Y = 0.30R + 0.59G + 0.11B Esta informacin de luminosidad (Y) es la que nos da el brillo de cada combinacin de colores en la pantalla, y es la responsable de la imagen monocromtica. Veamos grficamente el brillo relativo de los colores primarios y secundarios: Color: Blanco Amarillo Cian Verde Magenta Rojo Azul Negro R 1 1 0 0 1 1 0 0 G 1 1 1 1 0 0 0 0 B 1 0 1 0 1 0 1 0 Y 1.00 0.89 0.70 0.59 0.41 0.30 0.11 0.00

1.00 0.80 0.60 0.40 0.20 0.00


B lanco Amarillo C ian Verde Magenta Rojo Azul Negro

La luminancia (Y) es uno de los componentes fundamentales de la seal de video, y como vemos, tiene informacin sobre la suma total de los componentes RGB de la imagen. De este modo, bastara con enviar la informacin de dos de los componentes RGB junto con Y, ya que en el receptor se podra recomponer el componente faltante mediante operaciones sencillas. Como el componente G (Verde) es predominante en Y, este ser el que no se enviar por separado, y se reconstruir en el receptor. Recordemos que toda esta complicacin surge porque el enviar RGB como tales ocupa mucho ancho de banda, lo cual no est permitido (esto es porque cuando lleg la televisin a color ya se haban asignado los anchos de banda correspondientes a transmisiones monocromticas). Entonces enviaremos Y, R y B. Pero R y B tampoco sern enviados como tales, sino que se enviar su diferencia respecto a Y: R-Y y B-Y Veamos como se ven estas seales:

Color: Blanco Amarillo Cian Verde Magenta Rojo Azul Negro

R 1 1 0 0 1 1 0 0

G 1 1 1 1 0 0 0 0

B 1 0 1 0 1 0 1 0

R-Y 0.00 0.11 -0.70 -0.59 0.59 0.70 -0.11 0.00

R-Y
1.00 0.50 0.00
B lanco Amarillo C ian Verde Magenta Rojo Azul Negro

-0.50 -1.00

Color: Blanco Amarillo Cian Verde Magenta Rojo Azul Negro

R 1 1 0 0 1 1 0 0

G 1 1 1 1 0 0 0 0

B 1 0 1 0 1 0 1 0

B-Y 0.00 -0.89 0.30 -0.59 0.59 -0.30 0.89 0.00

B-Y
1.00 0.50 0.00
Blanco Amarillo Cian Verde Magenta Rojo Azul Negro

-0.50 -1.00

R-Y 1.00

Estas seales, denominadas Seales de Diferencia de Color sern las que modularn en fase a la subportadora de color. La seal B-Y modular a SC a 0, en tanto que R-Y lo har a 90. De este modo podemos obtener un diagrama de fase de los distintos colores, como se ve en la figura adjunta.

Rojo 0.50 Magenta

Amarillo -1.00 -0.50 0.00 0.00 B-Y 0.50 Azul 1.00

-0.50 Verde Cian -1.00

R-Y 1.00

A su vez, y esto es una caracterstica del sistema PAL, la portadora en cuadratura (90) rotar 180 de una lnea a la otra, es decir que si en una lnea horizontal R-Y modula a SC a 90, en la lnea siguiente lo har a 270, y as sucesivamente. De aqu obtiene su nombre el sistema: PAL = Phase Alternation by Line (Alternancia de Fase por Linea).

Rojo Verde 0.50

Cian Magenta

Amarillo -1.00 -0.50 Amarillo 0.00 0.00 -0.50 Rojo -1.00 Cian 0.50 Azul

Azul B-Y 1.00

Verde

Magenta

Una vez modulada la subportadora de color pasa a llamarse seal de Crominancia o seal de Color (C). Sumando la seal de Luminancia (Y) ms la de Crominancia (C) obtenemos finalmente la seal buscada, la SEAL DE VIDEO COMPUESTO.

Construccin de un generador de patrones


Un generador de patrones no solo debe entregar los componentes RGB de la seal, sino que debe generar video compuesto, con todo lo que esto implica: generar sincronismos, obtener la seal de luminancia, generar una subportadora de color y modularla, etc. Lo primero que debe definirse es la cantidad y tipo de patrones que deber generar el equipo, ya que esto determinar las caractersticas, y por tanto la complejidad, del sistema a desarrollar. En nuestro caso el equipo ser capaz de generar cuatro patrones bsicos:

Adems permitir control independiente de los tres colores R, G y B, as como de las seales de luminancia (Y) y crominancia (C). De este modo se ampla la cantidad de patrones que pueden ser generados, ya que el Raster se podr hacer con cualquiera de los 8 colores, las barras podrn ser monocromticas o adoptar diferentes combinaciones de color (ver ejemplos adjuntos), etc.

Como control adicional se permite la supresin del BURST de color, herramienta til en la deteccin de fallas relacionadas con los circuitos de proceso de color. Para seleccionar cual de los cuatro patrones bsicos generar el equipo se utilizan dos llaves (S4 y S5), cuya combinacin determinar el patrn segn la siguiente tabla:

Llaves: S5 OFF S5 ON

S4 OFF BARRAS CROSS-HATCH

S4 ON RASTER PUNTOS

Los estados OFF (o cero) y ON (o uno) se refieren a que el punto medio de la llave se conecta a masa (0V) o a VCC (5V) respectivamente. Una vez definido que va a hacer el equipo veamos como implementarlo. Generacin de sincronismos y patrones La generacin de la base de tiempo, los sincronismos y los cuatro patrones bsicos estarn a cargo de un microcontrolador (PIC16F84-10), por lo que toda esta seccin consistir en desarrollar el programa (Software) adecuado. Al terminar esta etapa, el microcontrolador deber hacer lo siguiente: Generar una base de tiempos estable, de donde obtener todos los tiempos requeridos por los sincronismos. Generar en uno de sus terminales, el correspondiente al Bit 0 del PORTB, todos los sincronismos requeridos por la norma de televisin adoptada (N), sin agregar video a esta seal (sincronismos puros). Generar en tres terminales las seales R, G y B, que correspondan con el patrn que deba mostrarse a la salida. Estos terminales no tendrn sincronismos (video puro). La designacin de terminales es la siguiente: PORTB (2) = B (Azul) PORTB (3) = R (Rojo) PORTB (4) = G (Verde) (Entre parntesis se indica el Bit correspondiente del PORTB) Aceptar en dos de sus terminales, configurados como entradas, las rdenes provenientes de las llaves S4 y S5, de modo de poder seleccionar el patrn a generar. Estas entradas corresponden a dos Bits del PORTA, los siguientes: PORTA (2) = S4 PORTA (3) = S5

Una vez claros los objetivos, veamos como los lleva a cabo el programa. Bsicamente el mismo se compone de cuatro bloques independientes de generacin de seal, realizndose en cada uno todo lo necesario para la generacin de una imagen completa. En la seccin de diagramas se incluye un diagrama de flujo del programa, el cual ayudar a seguir la explicacin. Luego de una primera instancia de definicin de variables e inicializacin de las mismas, se pasa a leer el estado de las llaves S4 y S5. Segn que combinacin se encuentre activada en ese momento, el programa se dirigir a uno de los cuatro bloques de video mencionados, donde se generar uno de los patrones bsicos.

En cada uno de estos bloques se comienza por generar los pulsos de pre-ecualizacin, luego el sincronismo vertical con sus correspondientes Serrated Pulses, seguido de los pulsos de pos-ecualizacin. A continuacin se realiza la seleccin de campo par/impar. Esto es muy importante, ya que, como trabajamos con barrido entrelazado, en uno de los campos la primera lnea horizontal luego del sincronismo vertical es completa, mientras que en el otro campo debe ser solo media lnea (recordar que comienza en medio de la pantalla). Si no se hiciera esto la imagen aparecera temblorosa en el sector superior. Es de destacar que en dos de los patrones (Cross-hatch y Puntos) se trabaja con barrido no entrelazado, para evitar el fenmeno de temblor vertical (o flicker) de las lneas fijas. En estos casos la primer lnea horizontal es siempre entera, y para compensar esto se quita un pulso de pre-equalizacin (segn ya se mostr en los diagramas de la seal de video, mtodos de barrido). Luego de esto se hacen 3 o 4 lneas horizontales sin video (segn el campo), pero respetando correctamente los tiempos de sincronismo. Ahora es el momento en que entran en actividad la lneas R, G y B. Luego de generar el sincronismo horizontal y respetar el tiempo de back porch, en las lneas RGB aparece la informacin que corresponda a la seal mostrada. Cmo es esto?. Veamos un ejemplo. Supongamos que se est generando una seal de barras. Son ocho barras, por lo tanto debemos dividir el tiempo til de video en ocho intervalos iguales. Antes de seguir, cabe aclarar que el tiempo til de video es aquel tiempo en que efectivamente la informacin generada se ve en pantalla. Recordemos que en PAL-N cada lnea horizontal dura un tiempo total de 64 seg., donde se incluyen 4.8 seg. de H Sync, 1.9 seg. de Front Porch y 5 seg. de Back Porch. Por lo tanto solo nos quedan 52.3 seg. para mostrar video, y ese en nuestro tiempo til. Volviendo a la generacin de barras, ya tenemos los ocho intervalos. Veamos como debemos enviar las seales R (Rojo), G (Verde) y B (Azul) en cada uno de ellos:

Azul Rojo Verde

1 1 1

0 1 1

1 0 1

0 0 1

1 1 0

0 1 0

1 0 0

0 0 0

blanco

amarillo

cian

verde

magenta

rojo

azul

negro

Como vern, esta ya es una figura conocida. Se utiliz para describir lo que deba hacer un generador de barras sencillo con salida RGB, y eso es justamente lo que estamos haciendo.

Veamos ahora como se genera el Raster. Este es an ms sencillo: se enva todo el tiempo un nivel alto en las tres lneas de RGB. Pero, si RGB estn los tres activos, solo generaremos Raster blanco. Es cierto. La seleccin de color se realiza controlando R, G o B externamente al microcontrolador. Para la generacin de lneas y puntos se requieren rutinas algo ms elaboradas, ya que no solo hay que contar tiempos en sentido horizontal sino tambin lneas horizontales, a fin de fijar exactamente la separacin vertical de las lneas o puntos. Pero igualmente se trata de contar, ahora utilizando dos variables. Con respecto a las lneas RGB, todas se ponen activas en el momento de dibujar lneas o puntos (o sea, son blancos). Si se analiza con detenimiento el programa se ver que en cada uno de los bloques de video la generacin de lneas horizontales y sus correspondientes seales de video se realiza en tres bloques, bsicamente iguales. La razn de esto es sencilla. En cada pasada dentro de un bloque de video se barre un campo completo, o sea 312.5 lneas horizontales. Para hacerlo con precisin se debe llevar la cuenta de las lneas generadas en algn registro. Como solo se dispone de registros de 8 bits con signo (o sea que el nmero mximo que alcanzan es 127) se precisa cargar tres veces el registro a fin de llegar al nmero de lneas requerido. Para finalizar con el bloque de video, luego de completado cada campo se evala el teclado (S4 y S5). Si no han cambiado, se contina en el mismo bloque; si hay algn cambio, se vuelve a la rutina inicial de lectura de teclado, y el programa se dirige al bloque de video que le indique el estado de S4 y S5. Y eso es todo. Puede quedar una duda cmo calculo tiempos dentro de un programa?. El uso de un microcontrolador (PIC16F84-10) facilita mucho esta tarea, ya que basta con contar ciclos de reloj para obtener todos los tiempos correctos. Utilizando un cristal de 10 MHz, y sabiendo que cada ciclo de instruccin son 4 ciclos de reloj, obtenemos el tiempo de un ciclo de instruccin: Tosc = 1/fosc Tins = Tosc x 4 Tins = 1/10 MHz x 4 = 0.4 seg. Si cada ciclo de instruccin dura 0.4 seg., entonces para obtener el pulso de sincronismo horizontal basta con contar 12 ciclos: 12 x 0.4 seg. = 4.8 seg. Del mismo modo obtenemos que la duracin de una lnea horizontal completa es de 160 ciclos de instruccin: 160 x 0.4 seg. = 64 seg. Bsicamente, esto es lo que hace el programa. Cuenta instrucciones y pone a nivel alto o bajo, segn corresponda, el Bit 0 del PORTB. Se estableci que durante el pulso de sincronismo (H o V) este bit estar a nivel bajo (0V) y el resto del tiempo a nivel alto (5V).

Generacin de Video Compuesto Como ya habamos visto, no basta generar RGB para tener un generador de patrones til, que pueda ser conectado a un receptor de televisin o a un videograbador. Debemos combinar esta seal RGB con la seal de sincronismos y con ambas generar Video Compuesto, seal que s puede inyectarse a los equipos mencionados. Ya vimos todo el proceso requerido para obtener Video Compuesto a partir de RGB, as que no lo repetiremos. Menos an, teniendo en cuenta que hay un circuito integrado diseado por Motorola que cumple con las siguientes especificaciones: Posee cuatro entradas de seal: Sincronismo, R, G y B A partir de RGB genera la seal de luminancia (Y) Posee un circuito oscilador, que con el cristal adecuado genera la Subportadora de Color Genera las seales B-Y y R-Y, con la alternancia de fase requerida por el sistema PAL A partir de B-Y y R-Y genera la seal de crominancia (C) Mezcla Y con C para obtener Video Compuesto

Como ven, un solo integrado hace exactamente lo que necesitamos. Y adems, requiere exactamente las seales que ya hemos generado con el microcontrolador. Este integrado es el MC1377, RGB ENCODER, y bastan muy pocos componentes externos para realizar el circuito completo. De hecho, se ha utilizado la configuracin sugerida en sus hojas de datos, con algunas modificaciones empricas a fin de mejorar an ms su rendimiento. Se ha utilizado un cristal de 3.582056 MHz para que el equipo genere seal en el sistema PAL-N. Nada impide reemplazar este cristal por uno de 4.43 MHz y hacer un pequeo ajuste al TRIMMER CV1 para obtener una seal en los sistemas PAL-B/G/I, de uso actualmente en Europa. En esta etapa es que se realizan los controles de RGB, Y, C y BURST. Bsicamente se han colocado llaves que derivan la seal a masa, directamente (RGB) o a travs de un capacitor (Y, C). En el caso del BURST, para anularlo, la llave (S8) saca del circuito al capacitor C04, el cual es responsable de generar el tiempo de permanencia del mismo. Veamos ahora un resumen de las llaves de comando del equipo y sus funciones: Llave S1 S2 S3 S4 S5 S6 S7 S8 S9 Funcin G ON/OFF R ON/OFF B ON/OFF PROGRAMA PROGRAMA Y ON/OFF C ON/OFF BURST ON/OFF ALIMENTACION

Una vez obtenida la seal de Video Compuesto se ajusta el nivel y la impedancia de la misma pasando por un circuito buffer, conformado por Q1, R14 y R15. Con esto concluye la generacin de seal, y prcticamente la descripcin de nuestro circuito. Solo queda por mencionar que ambos integrados se alimentan con tensiones diferentes, por lo que se puede observar una alimentacin principal de 12V (8 pilas alcalinas tipo AA, se ha pensado en un equipo porttil), destinada al sector de video (U2 y Q1), y una alimentacin secundaria, 5V, derivada de la primera, destinada al microcontrolador (U1).

Realizacin prctica del generador de video


A continuacin se dan todos los diagramas y dibujos necesarios para realizar la construccin del equipo. Se ha incluido el diseo del circuito impreso a escala real, por lo que basta imprimirlo en transparencia y pasarlo a una placa sensibilizada para obtener el impreso real. Prestar atencin al hecho de que impreso est invertido, a fin de que coincida el diagrama de ubicacin de componentes. En el impreso final, el texto Generador de video debe quedar al derecho. Con respecto al programa, se encuentra en su totalidad en las pginas finales. Basta copiarlo en un editor de texto, ensamblarlo y cargarlo en el PIC, utilizando la herramientas provistas por Microchip o mediante el mtodo que habitualmente se utilice. NOTA IMPORTANTE: En el momento de volcar el programa en el PIC no olvidar poner la opcin de operacin con cristal (XT). De otro modo, el cristal no oscilar. Y eso es todo. Si todos los componentes se han ubicado correctamente el equipo funcionar segn lo esperado desde el comienzo. El nico ajuste que puede realizarse es mover CV1 a fin de mejorar la reproduccin de color, lo cual es muy sencillo. Espero que este proyecto sea de utilidad y quedo a la espera de comentarios, sugerencias y posibles mejoras, as como preguntas e inquietudes al respecto. Marcelo F. Maggi - Abril, 1998 mmaggi@hotmail.com

Diagrama de bloques

S1 R10 S8 R11 U2 N/P C14 X2 CV1 C16 +12V C17 S3 C04

S2

R01 C05 C06 C07 R09 S6 C02 C08 R13 R12 C03 C12 C13 C15 R14 Q1 R05 R07 R06 S7 R08 C09 R02 R03

1 2 3 4 5 6 7 8 9 10 SYNC R G B -Y X2 X1 REF GND VCC -Y COUT VOUT R-Y CIN B-Y

20 19 18 17 16 15 14 13 12 11

C18

V. OUT R15

+5V Fuente +12V S4 +12V S5 C10 X1 C11 Fuente +5V R16 +5V C19 C20 1 2 C21 U3 3 +12V BT1 C22 D1 S9

Diagrama esquemtico

R04 C01

1 2 3 4 5 6 7 8 9 RA1 RA0 OSC1 OSC2 VDD RB7 RB6 RB5 RB4

U1 RA2 RA3 RA4/RTCC MCLR VSS RB0/INT RB1 RB2 RB3 18 17 16 15 14 13 12 11 10

GENERADOR DE VIDEO Size Document Number A Date: April 5, 1998 M.M. 7/97 Sheet 1 of REV A 1

Lista de componentes

R01 R02 R03 R04 R05 R06 R07 R08 R09 R10 R11 R12 R13 R14 R15 R16 C01 C02 C03 C04 C05 C06 C07 C08 C09 C10 C11 C12

3K9 3K9 3K9 1K 1K 1K 1K 1K 1K 68K 82K 10K 2K2 4K7 2K7 100 0.1 100/16V 100/16V 1500p 10/25V 10/25V 10/25V .02 .01 15p 15p 0.1

C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 CV1 D1 Q1 U1 U2 U3 X1 X2 S1 S2 S3 S4 S5 S6 S7 S8 S9 BT1

0.1 220p 0.1 18p 150p .02 100/16V 0.1 0.1 100/16V TRIMMER 5-45p 1N4007 BF494C PIC16F84-10 MC1377 LM78L05 10.000MHz 3.582056MHz LLAVE 2 POSICIONES LLAVE 2 POSICIONES LLAVE 2 POSICIONES LLAVE 2 POSICIONES LLAVE 2 POSICIONES LLAVE 2 POSICIONES LLAVE 2 POSICIONES LLAVE 2 POSICIONES LLAVE 2 POSICIONES 8 x AA PILAS ALCALINAS

Nota: para cambiar el sistema de color de PAL-N a PAL-B/G/I reemplazar X2 por un cristal de 4.43MHz

Circuito impreso

5 cm

Disposicin de componentes

Placa armada

Programa

; ; ; ;

***** GENERADOR DE PATRONES PARA VIDEO ***** VERSION 2.01 GEN201.ASM (C) M. MAGGI - 30/08/1997 list p=16f84

;DEFINICION DE PUERTOS: ;PORTB(0): SYNC ;PORTB(2): AZUL ;PORTB(3): ROJO ;PORTB(4): VERDE ;NO USAR EL BIT 1 DEL PORTB ;PARA LOS PATRONES DE RASTER Y BARRAS EL VIDEO ES ENTRELAZADO ;LOS PUNTOS Y EL CROSSHATCH SE HACEN CON VIDEO NO ENTRELAZADO PARA EVITAR EL ;"FLICKER" CBLOCK 0X0C ;VARIABLES DURHOR,CANTHB1,CANTHB2,BLKLIN,CANTPRE,DUREQU,CANTVER,DURVER,CANTPOS TIEMPO,FIELD,CARRY WHITE,YELLOW,CYAN,GREEN,MAGEN,RED,BLUE,BLACK,CANTLIN EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU CLRF CLRF BSF MOVLW MOVWF CLRF BCF ; MOVLW MOVWF RRF MOVLW MOVWF LECTURA BTFSS GOTO BTFSC GOTO GOTO LECT1 BTFSC GOTO 0 CARRY CARRY B'10101010' FIELD PORTA,3 LECT1 PORTA,2 INICIO3 INICIO2 PORTA,2 INICIO1 ;VARIABLE CONTROLAR EL ESTADO DEL CARRY ;CARRY FLAG A "0" ;CONTROL DEL CAMPO ;SE LEE EL TECLADO ;SE USAN LOS BITS 2 Y 3 DEL PUERTO A ;FUNCION: BIT3 BIT2 ;BARRAS 0 0 ;RASTER 0 1 ;CROSSHATCH 1 0 ;PUNTOS 1 1 5 85H 6 86H 3 5 B'00011101' B'00011001' B'00010101' B'00010001' B'00001101' B'00001001' B'00000101' B'00000001' PORTA PORTB STATUS,RP0 B'11111111' TRISA TRISB^80H STATUS,RP0 ;TODOS LOS BITS EN 0 ;TODOS LOS BITS EN 0 ;SELECCIONA BANCO DE REGISTROS 1 ;TODOS LOS BITS DEL PUERTO A COMO ENTRADAS ;TODOS LOS BITS DEL PUERTO B COMO SALIDA ;SELECCIONA BANCO DE REGISTROS O

ENDC PORTA TRISA PORTB TRISB STATUS RP0 BLANCO AMARIL CYANO VERDE MAGENT ROJO AZUL NEGRO ;

;***** BARRAS DE COLOR ***** INICIO RRF MOVLW FIELD D'3' ;CARRY PASA AL BIT 7 DE FIELD, BIT 0 AL CARRY ;LINEAS SIN VIDEO LUEGO DE LA POSECUALIZACION

BTFSS MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF PREEQU BCF MOVLW MOVWF NOP NOP NOP BSF DECFSZ GOTO NOP NOP DECFSZ GOTO NOP BCF MOVLW MOVWF DECFSZ GOTO BSF MOVLW MOVWF DECFSZ GOTO NOP DECFSZ GOTO NOP BCF MOVLW MOVWF NOP NOP NOP BSF DECFSZ GOTO NOP NOP DECFSZ GOTO NOP

FIELD,0 D'4' BLKLIN D'99' CANTHB1 D'3' CANTHB2 5 CANTPRE 5 CANTVER 5 CANTPOS PORTB,0 D'23' DUREQU

;SI ES EL CAMPO 1 SE HACEN SOLO 3 LINEAS ;4 LINEAS EN EL CAMPO 2 ;CANTIDAD DE LINEAS HORIZONTALES EN UN BLOQUE ;CANTIDAD DE BLOQUES (3) ;PULSOS DE PREECUALIZACION ;PULSOS DE SINCRONISMO VERTICAL ;PULSOS DE POSECUALIZACION ;DURACION: 2,6S ABAJO

LOOP1

PORTB,0 DUREQU LOOP1 CANTPRE PREEQU PORTB,0 D'22' DURVER DURVER LOOP2 PORTB,0 2 TIEMPO TIEMPO TIME CANTVER VERT PORTB,0 D'23' DUREQU

;SE COMPLETAN LOS 32S ARRIBA

VERT LOOP2

;DURACION: 4.8S ARRIBA ("SERRATED PULSES")

TIME

POSEQU

LOOP3

PORTB,0 DUREQU LOOP3 CANTPOS POSEQU

;SE EMPIEZAN A BARRER LAS LINEAS HORIZONTALES ;LA PRIMERA LINEA ES COMPLETA EN EL CAMPO 1, EN TANTO QUE ES SOLO MEDIA LINEA ;EN EL CAMPO 2, Y NO COMIENZA CON UN PULSO DE SINCRONISMO RLF NOP NOP PORTB ;1 O 1/2 LINEA H SEGUN EL CAMPO ;SE PASA EL CARRY AL BIT 0 DEL PUERTO B ;CAMPO 1: 1 LINEA Y PULSO DE SINC (CARRY=0)

NEXT LOOP

NOP NOP NOP NOP NOP MOVLW BTFSS ADDLW MOVWF BSF BTFSS GOTO BCF NOP DECFSZ GOTO NOP

;CAMPO 2: 1/2 LINEA SIN PULSO DE SINC (CARRY=1)

D'21' PORTB,0 D'27' DURHOR PORTB,0 FIELD,0 NEXT PORTB,1 DURHOR LOOP

;TIEMPO PARA 1/2 H (80 CICLOS TOTAL) ;SI HAY H SYNC (CAMPO 1) SE AGREGA MAS TIEMPO ;TIEMPO PARA 1 H (160 CICLOS TOTAL)

;SE PIERDE 1 CICLO MAS (SOLO 1/2 H)

;SE HACEN 3 O 4 LINEAS EN BLANCO PARA CUMPLIR CON LAS 625 LINEAS DE LA NORMA N ;SI ES EL CAMPO 1 SE HACEN SOLO 3 LINEAS, YA QUE ANTES SE HIZO 1 DE MAS HORIZ TIME3 BCF MOVLW MOVWF DECFSZ GOTO NOP NOP MOVLW MOVWF BSF DECFSZ GOTO NOP DECFSZ GOTO NOP PORTB,0 2 TIEMPO TIEMPO TIME3 D'48' DURHOR PORTB,0 DURHOR LOOPH3 BLKLIN HORIZ

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

LOOPH3

;SE HACEN 3 BLOQUES DE 99 LINEAS HORIZONTALES ;3*(99+1)=300 LINEAS HORIZ1 TIME1 BCF PORTB,0 MOVLW 2 MOVWF TIEMPO DECFSZ TIEMPO GOTO TIME1 NOP NOP MOVLW D'31' MOVWF DURHOR BSF PORTB,0 NOP NOP NOP MOVLW 5 MOVWF WHITE MOVWF YELLOW MOVWF CYAN MOVWF GREEN MOVWF MAGEN MOVWF RED MOVWF BLUE MOVWF BLACK MOVLW BLANCO

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

WHITE1

YELLO1

CYAN1

GREEN1

MAGEN1

RED1

BLUE1

BLACK1

MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO NOP NOP NOP NOP DECFSZ GOTO NOP BCF MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF MOVLW MOVWF BSF NOP NOP NOP MOVLW MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVWF MOVLW MOVWF DECFSZ

PORTB WHITE WHITE1 AMARIL PORTB YELLOW YELLO1 CYANO PORTB CYAN CYAN1 VERDE PORTB GREEN GREEN1 MAGENT PORTB MAGEN MAGEN1 ROJO PORTB RED RED1 AZUL PORTB BLUE BLUE1 NEGRO PORTB BLACK BLACK1

CANTHB1 HORIZ1 PORTB,0 2 TIEMPO TIEMPO TIME2 D'99' CANTHB1 D'31' DURHOR PORTB,0 ;BIT 0 BAJO ;PIERDO TIEMPO PARA ;HACER LOS 4,8S

HORIZ2 TIME2

;BIT 0 ALTO

WHITE2

5 WHITE YELLOW CYAN GREEN MAGEN RED BLUE BLACK BLANCO PORTB WHITE

YELLO2

CYAN2

GREEN2

MAGEN2

RED2

BLUE2

BLACK2

GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO NOP NOP NOP NOP DECFSZ GOTO NOP

WHITE2 AMARIL PORTB YELLOW YELLO2 CYANO PORTB CYAN CYAN2 VERDE PORTB GREEN GREEN2 MAGENT PORTB MAGEN MAGEN2 ROJO PORTB RED RED2 AZUL PORTB BLUE BLUE2 NEGRO PORTB BLACK BLACK2

CANTHB2 HORIZ1

;ESTA ULTIMA LINEA/MEDIA LINEA, LA 305, LA USO PARA CARGAR VARIABLES BCF NOP NOP MOVLW BTFSC MOVLW MOVWF NOP MOVLW BTFSC ADDLW MOVWF BSF BTFSS GOTO NOP NOP DECFSZ GOTO RRF BTFSC GOTO BTFSC GOTO NOP PORTB,0 0 FIELD,0 1 CARRY D'15' FIELD,0 D'24' DURHOR PORTB,0 FIELD,0 NEXT1 DURHOR LOOPH5 CARRY PORTA,2 LECTURA PORTA,3 LECTURA ;BIT 0 PASA A NIVEL BAJO ;PIERDO TIEMPO PARA ;HACER LOS 4,8S ;NO USAR EL BIT 1 DEL PORTB, BIT 0 = SYNC

;BIT 0 PASA A NIVEL ALTO

NEXT1 LOOPH5

;CARRY = 1 SI 1 H, CARRY = 0 SI 1/2 H

NOP NOP NOP NOP GOTO

INICIO

;***** RASTER ***** INICIO1 RRF MOVLW BTFSS MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF APREEQU BCF MOVLW MOVWF NOP NOP NOP BSF ALOOP1 DECFSZ GOTO NOP NOP DECFSZ GOTO NOP AVERT BCF MOVLW MOVWF ALOOP2 DECFSZ GOTO BSF MOVLW MOVWF ATIME DECFSZ GOTO NOP DECFSZ GOTO NOP APOSEQU BCF MOVLW MOVWF NOP NOP NOP BSF ALOOP3 DECFSZ GOTO NOP NOP DECFSZ FIELD D'3' FIELD,0 D'4' BLKLIN D'99' CANTHB1 D'3' CANTHB2 5 CANTPRE 5 CANTVER 5 CANTPOS PORTB,0 D'23' DUREQU ;DURACION: 2,6S ABAJO

PORTB,0 DUREQU ALOOP1 CANTPRE APREEQU PORTB,0 D'22' DURVER DURVER ALOOP2 PORTB,0 2 TIEMPO TIEMPO ATIME CANTVER AVERT PORTB,0 D'23' DUREQU

;SE COMPLETAN LOS 32S ARRIBA

;DURACION: 4.8S ARRIBA ("SERRATED PULSES")

PORTB,0 DUREQU ALOOP3 CANTPOS

GOTO NOP RLF NOP NOP NOP NOP NOP NOP NOP MOVLW BTFSS ADDLW MOVWF BSF BTFSS GOTO BCF NOP DECFSZ GOTO NOP

APOSEQU PORTB ;1 O 1/2 LINEA H SEGUN EL CAMPO

ANEXT ALOOP

D'21' PORTB,0 D'27' DURHOR PORTB,0 FIELD,0 ANEXT PORTB,1 DURHOR ALOOP PORTB,0 2 TIEMPO TIEMPO ATIME3 D'48' DURHOR PORTB,0 DURHOR ALOOPH3 BLKLIN AHORIZ PORTB,0 2 TIEMPO TIEMPO ATIME1 D'44' DURHOR PORTB,0

;TIEMPO PARA 1/2 H (80 CICLOS TOTAL) ;TIEMPO PARA 1 H (160 CICLOS TOTAL)

;SE PIERDE 1 CICLO MAS (SOLO 1/2 H)

AHORIZ

BCF MOVLW MOVWF ATIME3 DECFSZ GOTO NOP NOP MOVLW MOVWF BSF ALOOPH3 DECFSZ GOTO NOP DECFSZ GOTO NOP AHORIZ1 BCF MOVLW MOVWF ATIME1 DECFSZ GOTO NOP NOP MOVLW MOVWF BSF NOP NOP NOP NOP NOP NOP NOP NOP NOP MOVLW MOVWF ALOOPH4 DECFSZ GOTO

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

B'00011101' PORTB DURHOR ALOOPH4

MOVLW MOVWF DECFSZ GOTO NOP BCF MOVLW MOVWF ATIME2 DECFSZ GOTO MOVLW MOVWF MOVLW MOVWF BSF NOP NOP NOP NOP NOP NOP NOP NOP NOP MOVLW MOVWF ALOOPH5 DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO NOP

B'00000001' PORTB CANTHB1 AHORIZ1 PORTB,0 2 TIEMPO TIEMPO ATIME2 D'99' CANTHB1 D'44' DURHOR PORTB,0

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

B'00011101' PORTB DURHOR ALOOPH5 B'00000001' PORTB CANTHB2 AHORIZ1

;ESTA ULTIMA LINEA/MEDIA LINEA, LA 305, LA USO PARA CARGAR VARIABLES BCF NOP NOP MOVLW BTFSC MOVLW MOVWF NOP MOVLW BTFSC ADDLW MOVWF BSF BTFSS GOTO ANEXT1 NOP NOP ALOOPH6 DECFSZ GOTO RRF BTFSS GOTO BTFSC GOTO NOP NOP NOP PORTB,0 0 FIELD,0 1 CARRY D'15' FIELD,0 D'24' DURHOR PORTB,0 FIELD,0 ANEXT1 DURHOR ALOOPH6 CARRY PORTA,2 LECTURA PORTA,3 LECTURA ;BIT 0 PASA A NIVEL BAJO ;PIERDO TIEMPO PARA ;HACER LOS 4,8S ;NO USAR EL BIT 1 DEL PORTB, BIT 0 = SYNC

;BIT 0 PASA A NIVEL ALTO

;CARRY = 1 SI 1 H, CARRY = 0 SI 1/2 H

NOP NOP GOTO

INICIO1

;***** CROSSHATCH ***** INICIO2 RRF NOP NOP MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF BPREEQU BCF MOVLW MOVWF NOP NOP NOP BSF BLOOP1 DECFSZ GOTO NOP NOP DECFSZ GOTO NOP BVERT BCF MOVLW MOVWF BLOOP2 DECFSZ GOTO BSF MOVLW MOVWF BTIME DECFSZ GOTO NOP DECFSZ GOTO NOP BPOSEQU BCF MOVLW MOVWF NOP NOP NOP BSF BLOOP3 DECFSZ GOTO NOP NOP DECFSZ GOTO NOP FIELD D'4' BLKLIN D'28' CANTHB1 D'10' CANTHB2 4 CANTPRE 5 CANTVER 5 CANTPOS PORTB,0 D'23' DUREQU

;SOLO 4 PULSOS POR SER VIDEO NO ENTRELAZADO

;DURACION: 2,6S ABAJO

PORTB,0 DUREQU BLOOP1 CANTPRE BPREEQU PORTB,0 D'22' DURVER DURVER BLOOP2 PORTB,0 2 TIEMPO TIEMPO BTIME CANTVER BVERT PORTB,0 D'23' DUREQU

;SE COMPLETAN LOS 32S ARRIBA

;DURACION: 4.8S ARRIBA ("SERRATED PULSES")

PORTB,0 DUREQU BLOOP3 CANTPOS BPOSEQU

BLOOP

NOP NOP NOP NOP NOP NOP NOP NOP MOVLW NOP NOP MOVWF NOP NOP NOP NOP BCF NOP DECFSZ GOTO NOP

;1/2 LINEA H (NO ENTRELAZADO)

D'21' DURHOR

;TIEMPO PARA 1/2 H (80 CICLOS TOTAL)

PORTB,1 DURHOR BLOOP PORTB,0 2 TIEMPO TIEMPO BTIME3 D'48' DURHOR PORTB,0 DURHOR BLOOPH3 BLKLIN BHORIZ PORTB,0 2 TIEMPO TIEMPO BTIME1 9 CANTLIN PORTB,0

BHORIZ

BCF MOVLW MOVWF BTIME3 DECFSZ GOTO NOP NOP MOVLW MOVWF BSF BLOOPH3 DECFSZ GOTO NOP DECFSZ GOTO NOP BHORIZ1 BCF MOVLW MOVWF BTIME1 DECFSZ GOTO NOP NOP MOVLW MOVWF BSF NOP NOP NOP NOP NOP NOP NOP NOP NOP BLOOPHA MOVLW ADDWF SUBWF NOP MOVLW

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

B'00011100' PORTB PORTB 2

MOVWF BLOOPH4 DECFSZ GOTO DECFSZ GOTO NOP MOVLW ADDWF SUBWF NOP NOP NOP NOP NOP NOP DECFSZ GOTO NOP BCF MOVLW MOVWF BTIMEZ DECFSZ GOTO NOP NOP MOVLW MOVWF BSF NOP NOP NOP NOP NOP NOP NOP NOP NOP MOVLW MOVWF BLOOPHZ DECFSZ GOTO MOVLW MOVWF NOP NOP NOP BCF MOVLW MOVWF DECFSZ GOTO MOVLW MOVWF MOVLW MOVWF BSF NOP NOP NOP NOP NOP NOP

DURHOR DURHOR BLOOPH4 CANTLIN BLOOPHA B'00011100' PORTB PORTB

CANTHB1 BHORIZ1 PORTB,0 2 TIEMPO TIEMPO BTIMEZ D'44' DURHOR PORTB,0

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

B'00011101' PORTB DURHOR BLOOPHZ B'00000001' PORTB

BTIME2

PORTB,0 2 TIEMPO TIEMPO BTIME2 D'28' CANTHB1 D'44' DURHOR PORTB,0

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

NOP NOP NOP MOVLW MOVWF BLOOPH5 DECFSZ GOTO MOVLW MOVWF DECFSZ GOTO NOP

B'00011101' PORTB DURHOR BLOOPH5 B'00000001' PORTB CANTHB2 BHORIZ1

;ESTA ULTIMA MEDIA LINEA, LA 305, LA USO PARA CARGAR VARIABLES BCF NOP NOP MOVLW BTFSC MOVLW MOVWF NOP MOVLW NOP NOP MOVWF BSF NOP NOP NOP NOP NOP BLOOPH6 DECFSZ GOTO RRF BTFSC GOTO BTFSS GOTO NOP NOP NOP NOP NOP GOTO PORTB,0 0 FIELD,0 1 CARRY D'15' DURHOR PORTB,0 ;BIT 0 PASA A NIVEL BAJO ;PIERDO TIEMPO PARA ;HACER LOS 4,8S ;NO USAR EL BIT 1 DEL PORTB, BIT 0 = SYNC

;BIT 0 PASA A NIVEL ALTO

DURHOR BLOOPH6 CARRY PORTA,2 LECTURA PORTA,3 LECTURA

;CARRY = 1 SI 1 H, CARRY = 0 SI 1/2 H

INICIO2

;***** PUNTOS ***** INICIO3 RRF NOP NOP MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF MOVLW MOVWF FIELD D'4' BLKLIN D'28' CANTHB1 D'10' CANTHB2 4 CANTPRE 5 CANTVER 5 CANTPOS

CPREEQU BCF MOVLW MOVWF NOP NOP NOP BSF CLOOP1 DECFSZ GOTO NOP NOP DECFSZ GOTO NOP CVERT BCF MOVLW MOVWF CLOOP2 DECFSZ GOTO BSF MOVLW MOVWF CTIME DECFSZ GOTO NOP DECFSZ GOTO NOP CPOSEQU BCF MOVLW MOVWF NOP NOP NOP BSF CLOOP3 DECFSZ GOTO NOP NOP DECFSZ GOTO NOP NOP NOP NOP NOP NOP NOP NOP NOP MOVLW NOP NOP MOVWF NOP NOP NOP NOP BCF NOP DECFSZ GOTO

PORTB,0 D'23' DUREQU

;DURACION: 2,6S ABAJO

PORTB,0 DUREQU CLOOP1 CANTPRE CPREEQU PORTB,0 D'22' DURVER DURVER CLOOP2 PORTB,0 2 TIEMPO TIEMPO CTIME CANTVER CVERT PORTB,0 D'23' DUREQU

;SE COMPLETAN LOS 32S ARRIBA

;DURACION: 4.8S ARRIBA ("SERRATED PULSES")

PORTB,0 DUREQU CLOOP3 CANTPOS CPOSEQU ;1/2 LINEA H

D'21' DURHOR

;TIEMPO PARA 1/2 H (80 CICLOS TOTAL)

PORTB,1 DURHOR CLOOP

CLOOP

NOP CHORIZ BCF MOVLW MOVWF CTIME3 DECFSZ GOTO NOP NOP MOVLW MOVWF BSF CLOOPH3 DECFSZ GOTO NOP DECFSZ GOTO NOP CHORIZ1 BCF MOVLW MOVWF CTIME1 DECFSZ GOTO NOP NOP MOVLW MOVWF BSF CLOOPHZ DECFSZ GOTO NOP DECFSZ GOTO NOP BCF MOVLW MOVWF CTIMEZ DECFSZ GOTO NOP NOP MOVLW MOVWF BSF NOP NOP NOP NOP NOP NOP NOP NOP NOP CLOOPHA MOVLW ADDWF SUBWF NOP MOVLW MOVWF CLOOPH4 DECFSZ GOTO DECFSZ PORTB,0 2 TIEMPO TIEMPO CTIME3 D'48' DURHOR PORTB,0 DURHOR CLOOPH3 BLKLIN CHORIZ PORTB,0 2 TIEMPO TIEMPO CTIME1 D'48' DURHOR PORTB,0 DURHOR CLOOPHZ CANTHB1 CHORIZ1 PORTB,0 2 TIEMPO TIEMPO CTIMEZ 9 CANTLIN PORTB,0

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

B'00011100' PORTB PORTB 2 DURHOR DURHOR CLOOPH4 CANTLIN

GOTO NOP MOVLW ADDWF SUBWF NOP NOP NOP NOP NOP NOP NOP NOP NOP BCF MOVLW MOVWF CTIME2 DECFSZ GOTO MOVLW MOVWF MOVLW MOVWF BSF NOP NOP NOP NOP NOP NOP NOP NOP NOP CLOOPHB MOVLW ADDWF SUBWF NOP MOVLW MOVWF CLOOPH5 DECFSZ GOTO DECFSZ GOTO NOP MOVLW ADDWF SUBWF NOP NOP NOP NOP NOP NOP DECFSZ GOTO NOP

CLOOPHA B'00011100' PORTB PORTB

PORTB,0 2 TIEMPO TIEMPO CTIME2 D'28' CANTHB1 9 CANTLIN PORTB,0

;PIERDO TIEMPO PARA ;HACER LOS 4,8S

;BIT 0 ALTO

B'00011100' PORTB PORTB 2 DURHOR DURHOR CLOOPH5 CANTLIN CLOOPHB B'00011100' PORTB PORTB

CANTHB2 CHORIZ1

;ESTA ULTIMA MEDIA LINEA, LA 305, LA USO PARA CARGAR VARIABLES BCF NOP NOP MOVLW PORTB,0 0 ;BIT 0 PASA A NIVEL BAJO ;PIERDO TIEMPO PARA ;HACER LOS 4,8S ;NO USAR EL BIT 1 DEL PORTB, BIT 0 = SYNC

BTFSC MOVLW MOVWF NOP MOVLW NOP NOP MOVWF BSF NOP NOP NOP NOP NOP CLOOPH6 DECFSZ GOTO RRF BTFSS GOTO BTFSS GOTO NOP NOP NOP NOP NOP GOTO END

FIELD,0 1 CARRY D'15' DURHOR PORTB,0

;BIT 0 PASA A NIVEL ALTO

DURHOR CLOOPH6 CARRY PORTA,2 LECTURA PORTA,3 LECTURA

;CARRY = 1 SI 1 H, CARRY = 0 SI 1/2 H

INICIO3

También podría gustarte