Generar Señal de Video con PIC

Estoy elaborando un proyecto con PIC, en el cual necesito tener la facilidad de visualizar todo en el monitor de un PC....

Y la señal de video la quiero generar con dicho PIC sin necesidad de utilizar el PC completo ....
Ya tengo algo de información sobre las señales R,G,B, YUV, SyN , etc.
Aun no se como enviarle las 5 señales q necesita un monitor para q muestre el video. Es decir, si tengo un tiempo critico para el envio de señales RGB, etc dependiendo de la resolucion a usar.....

Conocen algun link o tienen algun material donde pueda ver el diagrama de estados de todas estas señales?

En la Figura 1... esta el conector del puerto VGA,
- Los 3 pines q dicen retorno d rojo, azul, verde. Son simplemente tierra?

En este proyecto se utilizara un monitor de PC pantalla plana, el cual quiere ser utilizado con una resolucion de 320x200 ( 256 colores )

Gracias de Antemano....
 

Adjuntos

  • c_vga_813.jpg
    c_vga_813.jpg
    27.3 KB · Visitas: 4,503
Amigo Ettneciv, a riesgo de equivocarme, creo que lo que tu estas tratando de hacer es casi imposible.
las aplicaciones de video por lo general son de alta velocidad aun en el caso de ser monocromatica, en estos casos se utiliza hardware programable o configurable "FPGA".

Sin embargo, te pregunto ¿es necesario que transmitas la señal de video al pc"? , ya que es
mucho mas facil "practicable" enviar la información basica al pc para que un software genere la señal, de esta forma optimizarias tu diseño, dejandole el grueso del trabajo al
hardware y software de tu computador, el cual esta diseñado para este tipo de tareas, y no a un microcontralodor con un pequeño ciclo de relog y un microprocesador de 8 bits, o algo asi.
 
http://www.epanorama.net/links/videocircuits.html#computervideo

o utilizar un OSD tipo STV9425

Pero ten encuenta que solo podras hacer letras muy budas.

Utiliza un pic18f452 que corre mas.

Yo en su tiempo genere señales VGA y TV y es facil, pero da mucho trabajo diseñar cada letra y numero, aunque es muy rutinario.

tambien corre por internet un generador de patrones de tv en español en formato pdf

Tambien puedes utilizar un integrado tipo teletexto si buscan un poquito encontraras una pagina te hay un diagrama pero aumenta la complejidad un poquito a nivel de PCB
 
adiero a lo escrito por Okcomputer hay cosas echas con pic como un tetris o un pingpong con un pic16f84 pero tiene un codigo muy pulido, debido a las velocidades.
Hoy en dia hay micros mas veloces pero no se el grado de experiencia que tienes.
Las señales para controlar vga suponiendo que sea una imagen estatica requieran tiempos muy cortos y precizos. No se que queres hacer pero si no tenes mucha experiencia comenza con pantallas LCD de powertip o alguna otra ( no para PC ) + un micro, estas pantallas vienen con controlador y memoria.
Lo unico que tendria que hacer tu soft es poner los dato en dicha memoria despreocupandote del tiempo.
Estas pantallas son de precios razonables, pero aunque ya tengas la pantalla vga todo el desarrollo para esta es casi imposible.
Hay otro tipo de pantallas que ya tiene todo lo necesario internamente y se programan en lenguage html
 
Los "retornos" de cada color, son las tierras, porque cada color es una linea flotante. En la practica los retornos van todos a tierra, inclusive adentro de los monitores que he desarmado van a tierra. Pero creo que hay que usarlas flotantes cuando se usan resoluciones muy altas (más de 1024x768) por un tema de ancho de banda.
Por lo demás, son señales de video común (podés mandarle video compuesto) solo que tienen el vertical a 32khz. Supongo que se podrían generar 3 señales de video compuesto (con 3 pic para más velocidad) por cada color y mandarlas al monitor. Si no tenés los sincronismos separados, usá el lm1881 que anda barbaro, mandá la salida del lm1881 de vsync a la entrada de vsync del monitor, y la salida de csync (sincronismo compuesto) al hsync del monitor.

Lo que no sé es si le dará la velocidad al pic para generar todo esto, pero en una revista (Saber Electronica) vendian un generador de patrones VGA color con pic si no me acuerdo mal.
Y video compuesto he visto que hacen con pics, aunque a 16khz, no a 32. Si le mandás 16khz la mayoría de los monitores o se vuelven locos, o se ven imagenes fantasma.


Salu2!
 
Hola a todos. Estoy trabajando en un proyecto para generar video NTSC usando un PIC 16F88 a 12MHz. Estos dias he estado leyendo alguna documentación sobre señales de video pero la información que he encontrado no me ha quedado muy clara.

Hasta ahora el único avance que he tenido ha sido un programa de prueba (similar al de el PIC Video Howto de Rickard Gunee) para desplegar barras de colores (negro, gris y blanco) que realicé basandome en el diagrama de sincronización horizontal que se muestra a continuación

Mi implementación tiene algunos cambios con respecto a ese diagrama, el valor de voltaje del front y back porch es 0.33V (el mismo del color negro) y el valor de sincronización es 0V en vez de -0.4V como aparece en el diagrama. El resultado fue este:

Los tiempos de las líneas horizontales son bastante cercanos a los del estándar NTSC, aproximadamente 12us de sincronización y 52us de señal de video.

El gran problema que estoy teniendo es que no he sido capaz de realizar una sincronización vertical. Las imágenes de video se van dibujando en la pantalla una línea a la vez, primero las impares y después las pares. Según he entendido al terminar de dibujar todas las líneas impares se debe realizar la sincronización vertical para comenzar a dibujar las líneas pares, despues se vuelve a realizar la sincronización vertical y vuelven a dibujarse las impares. Hasta ahora no he sido capaz de realizar eso, lo único que logro es dibujar líneas verticales a partir de la rutina que controla la sincronización horizontal.

Hay muchos proyectos que generan video con pic, el tetris y pong de Rickard Gunee, el PIC Breakout, el &microSCOPE, PIC-Pong y PIC-Tock de Eric Smith, entre otros, pero yo quisiera saber si alguien podría darme información sobre los tiempos de sincronización horizontal y vertical (aunque la horizontal creo que ya la tengo dominada) del estándar NTSC, además si hay algún iluminado en el tema no estaría mal una explicación para el resto de nosotros.

Bueno, aqui dejo esto, si a alguien le interesa el tema tal vez podamos colaborar y realizar entre todos una buena librería para generar video usando un PIC.

Por último adjunto el código de prueba y el diagrama de conexión que uso entre el pic y la entrada de video

La resistencia de 450 en realidad puede ser de 470 y la de 900 puede ser de 1K, la de 75 ohms representa la entrada de video RCA del televisor.
 

Adjuntos

  • pruebahorsync_901.txt
    1.9 KB · Visitas: 394
Cuando hablas de ntsc es que quieres generar color, creo que con el pic andas muy justo, en pal no daba tiempo.

Si la señal es en blanco y negro no necesitas generar la señal de burt lo que se te simplifica mucho.

Si quieres colo lo mas comodo es utilizar la entrada RGB posterior de tu TV o sea el euroconector o Scard.


Para el tema de las tensiones recuerda que tienes tres estados o sea nivel alto, bajo y alta impedancia lo que te permite tener 3 tensiones facilmente.


Si buscas un poco encontraras un tutorial es pdf en español aunque es para pal que es lo que yo conozco.
Ya diseñe hace unos años un patron con un pic16f876 en colo via RGB.
 
gracias tiopepe por tu respuesta pero no estoy buscando generar una señal a color, se que con el pic no me alcanza (y menos a esa velocidad), quiero generar una señal blanco y negro que cumpla con la norma ntsc, lo que sería el estándar RS-170 (RS-170A es para color).

No sabía que en B/W no hacía falta el burst del backporch, yo no lo había hecho, solo había hecho el backporch, con razón si funcionaba.

Bueno, de nuevo gracias, seguiré buscando porque creeme que ya he buscado y leido bastantes manuales pero aún no me queda claro como hacer la sincronización vertical. Si alguien tiene alguna idea o sabe algo de esto agradecería su ayuda.
 
Si puede ser, también es bueno saber de PAL que es el que uso aquí en España, bueno, aunque en mi país también puedes usar el NTSC pero el predeterminado es el PAL, en concreto el PAL-D que es una mejora del PAL normal, para que lo tengan en cuenta.

He visto por ahí que el que quiera color usan los dsPIC de 16 bits y dicen que con 32 bits es la leche. Con el 16 Bits han conseguido algo con 16 colores.

Hace un tiempo quería hacer algo pero no tengo ni idea, a ver si entre todos hacemos algo.

https://www.forosdeelectronica.com/f24/16f84a-conetacto-al-tv-tetris-13163/

En español.
http://www.taringa.net/posts/información/996552/Mod-8--Arma-tu-propia-consola-1-

http://server-die.alc.upv.es/asignaturas/TEII/2006-07/Web_C05/02.html

http://www.pablin.com.ar/electron/circuito/mc/picpong/index.htm

EDIT:
http://www.ucontrol.com.ar/wiki/index.php/PIC_PAL_Video_Library

http://www.pablin.com.ar/electron/circuito/mc/tetris/index.htm

http://wk3.iespana.es/tetris.htm
 
Sigo sin lograr la resolución vertical pero aqui les dejo un avance del proyecto:

YouTube - microTV: Señal de Video NTSC usando PIC16F88

El video generado esta desentrelazado y tiene una resolución vertical de 260 lineas, aunque claro la imágen que se despliega (space invaders yeah!) ocupa gran parte de la pantalla por lo que no se ve una super resolución, pero con 260 líneas disponibles (tal vez menos, habrá que hacer más pruebas) se pueden hacer cosas interesantes, o al menos eso espero.

El efecto de scroll aunque queda bien no es intensiónal, eso se debe a que aún no logro hacer la sincronización vertical, simplemente dibujé línea a línea la pantalla, espero encontrar la solución para la sincronización vertical pronto y que con eso quede fija la imágen en la pantalla.

Aqui dejo esto, espero que alguien se anime y consigamos la sincronización vertical :LOL:
 
Muy interesante.

YouTube - Video NTSC / PALM & PIC

YouTube - PIC Microcontroller generating PAL TV signal

YouTube - PIC PAL video OSD superimposer


1- ¿Hacerlo con el 16F88 no es lo mismo que un 16F84? Lo digo porque todo el mundo usa ese (16F84), aún así el 16F88 tiene más RAM que ayuda mucho.

2- ¿Te cuesta mucho programar un dibujo en pantalla como el que hiciste?

3- ¿Es complicado el tema de hacer algo con señal de vídeo?

Si tienes más ejemplos lo pones, cada vez que te veo hacer algo, más gana me dan de hacer algo. A ver si vienen más personas que les interesen estos temas.
 
El 16F84 sin duda debe ser el más común de los pics de gama media, yo no programo en el porque me sale más caro que otros pics como el 16f628 o el 16f88. Son pics parecidos, tienen el mismo conjunto de instrucciones (dos más o dos menos, algo asi), pero además el 16f628 tiene un oscilador interno de 4MHz y el 16f88 uno de 8MHz (además de otros añadidos como el convertidor analógico digital, más memoria y cosas asi). Un código escrito para el 16F84 puede funcionar con algunos cambios en un 16F88, pero hay que saber que cambiar y eso en un código sin comentarios muchas veces no es sencillo.

Hacer el dibujo que hice no es complicado, simplemente modifiqué el primer código que puse para dibujar las 260 líneas, usé 9 líneas distintas, una todo negro y otras 7 que son las que forman la imágen, lo demás fue simplemente repetir. El código al final no es nada eficiente y es demasiado largo para lo que hace pero en realidad solo quería hacer una prueba para ver la resolución vertical.

El tema de video a mi me parece un poco complicado, ya ves llevo 3 días investigando y aún no logro la sincronización vertical.

En cuanto tenga más ejemplos o avance un poco con el proyecto iré publicandolos, por lo pronto aqui dejo el código fuente del ejemplo del video que se me olvidó subirlo en el post anterior.

Por cierto, el segundo video que pusiste lo vi ayer o antier, es bastante impresionante y la verdad es que cuando termine mi proyecto creo que lo voy a montar en una pequeña televisión como la de ese alemán.
 

Adjuntos

  • utv_prueba_1__space_invaders_scroll_up_194.asm
    13.6 KB · Visitas: 226
Muchas gracias por las respuestas.

Voy a mirar el código, a ver si lo puedo adaptar al 16F84A ya que es el único que tengo por ahora.

Voy a intentar poner una imagen como tu a ver si me sale en estos días, ya que actualmente estoy haciendo otro proyecto para presentarlo en una revista oficial de España.

Eso si, seguiré investigando mientras pueda sobre el tema de señales de TV, aunque estoy para el sistema PAL, pero bueno.

Me he dado cuenta que el NTSC y el PAL son *.hex a parte ya que el 16F84A no cabe.

¿Con 4Kb que tiene el 16F88 crees que cabe el NTSC y PAL a la vez? Eso si, habrá que seleccionar uno o otra en el código de entrada con un simple btfss.

Otra cosa que me olvidaba, ¿con qué frecuencia utilizas el oscilador? Porque por lo que he visto por ahí, el tetris funciona con 16MHz.
 
Arriba