Autor Tema: Video compuesto para TV con pic16f84 (NO se puede en este lenguaje, leer post!!)  (Leído 18702 veces)

0 Usuarios y 5 Visitantes están viendo este tema.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #15 en: 09 de Septiembre de 2014, 12:49:21 »
el garbe:  si esta clara tu explicacion, tengo que pensarla.
siniestro: ante todo gracias por responder y sumarte al post! bueno intente lo que habia dicho antes y no funciono. Mi primer intento fue fallido.


primer prueba FALLIDA.

La idea que tuve fue aprovechar el contador de vertical y prender un punto, seria el 150 de todas las lineas, asi que hice un comando facil con un IF para que cuando llegue a 150 la encienda y luego la apague. NO funciono, primero lo habia hubicado mal en el programa (despues de los if que llevan a los dos sincros par e impar vertical) asi que veia pasar todo para arriba y segundo que no me hace un punto sino una raya..........ahora el problema es que no la hace en el mismo lugar sino dispersa por todos lados, entonces pienso si deberia reducir la cantidad de horizontal, ahora esta en 312 antes estaba en 304  ¿uso 512? porque evidentemente algo no opera correctamente.

les cuelgo el video en HP para que me ayuden a analizar que esta mal (mas alla que creo que todo jajajajjajaajaa)


feature=youtu.be


en mi logica si el sincro estaba bien deberia haber generado un punto blanco en el casillero 150 del horizonal en todas las lineas a lo largo de la pantalla.

Pueden pasar dos cosas al mismo tiempo es demasiado el tiempo que se esta tomando el pic para prender  y apagar el port  y ademas el sincronismo esta mal hecho. A pesar que lo veo re estable. me he acercado a la tele con la lupa para ver como se mueven los pixel cuando prendo y apago el pic, me parecia que operaba hermoso, pero al ver que la raya no se hace en el mismo lugar sino que es aleatorio creo que todo esta mal.
« Última modificación: 09 de Septiembre de 2014, 13:03:00 por jorgenuviola »

Desconectado siniestro

  • PIC10
  • *
  • Mensajes: 44
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #16 en: 09 de Septiembre de 2014, 13:08:47 »
Mmmm hay que considerar mucho que ya estamos hablando del manejo de los tiempos a nivel de microsegundos, estoy pensando que en alguna parte del codigo los tiempos se estan "corriendo" causando un desfase en la sincronia, toma en cuenta cuantos cicloz de reloj consume cada instrucción de PicBasic, me paso algo usando un sensor DHT11 para temperatura y humedad, dependia de recibir 40 Bits por un puerto y debia almacenar el ancho exacto de cada pulso, usando un ciclo for no logre que fucionara, supuse que cada iteracion consumia preciado tiempo de reloj que hacia que cada vez que llegava la instruccion PUSIN a la espera de los pulsos, esta ya habia iniciado haciendo que perdiera parte de la captura, al final no me quedo mas que usar 40 instrucciones PULSIN en secuencia y sin FOR y ah funcionó de maravilla el codigo. Aunque yo trabajo con cristal de 4Mhz.

Hasta el momento estamos tratando de emular las señales completas de television, pero creo que deben bajarse los tiempos, por ejemplo, bajando el numero de lineas por imagen pero manteniendo la frecuencia de imagenes por segundo, si bajas los cuadros por segundo habra un punto en que notaras parpadeo en la pantalla, si usaras por ejemplo 250 lineas por imagen y un refresco de 40 imagenes por segundo tu frecuencia horizontal seria de

250*40=10,000  entonces 1/10,000=0.0001 ó 100uS para la frecuencia horizontal y  la vertical seria de

1/40=0.025  ó  2.5mS

un punto en el centro de la pantalla deberia estar en 50uS de la frecuencia horizontal y 1.25 de la frecuencia vertical, deberias mandar el por ejemplo un pulso de 0.7 Volts cada vez que ambos contadores pasan por ese numero exactamente, una barra solo exigiria encender dicho pulso al llegar la frecuncia horizontal a 1.5 y la serie de puntos dibujados en cada linea horizontal deberia dibujar una barra vertical.

Citar
es cuelgo el video en HP para que me ayuden a analizar que esta mal (mas alla que creo que todo jajajajjajaajaa)

El video aparece como privado y no lo pude ver mi amigo. .
Saber de todo un poco, sin ser experto en nada (una filosofia extraña)

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #17 en: 09 de Septiembre de 2014, 13:48:14 »
El video figura como privado y no podemos verlo.

A mi en principio me gustaría ver el esquemático que estas usando para generar las señales y como obtienes los -0.3V y luego los 0V y 0.7V para el Blanco y negro.
Luego podrías colgar el programa final que estas usando para estudiarlo bien. En estos temas donde los tiempos son críticos hay que trabajr lo más ordenado posible y para ayudarte tendríamos que tener toda la informacion sino, estaremos adivinando cosas que pueden ser.

Saludos!

-
Leonardo Garberoglio

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #18 en: 09 de Septiembre de 2014, 13:53:52 »
gracias siniestro, voy a reducir el numero de lineas para probar lo que me explicas, es real que la instruccion FOR te consume mucha velocidad, lo pude ver en proteus haciendo una señal

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #19 en: 09 de Septiembre de 2014, 13:54:45 »
me habia faltado publicarlo, prueben ahora a ver si lo pueden ver.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #20 en: 09 de Septiembre de 2014, 14:06:36 »
El video figura como privado y no podemos verlo.

A mi en principio me gustaría ver el esquemático que estas usando para generar las señales y como obtienes los -0.3V y luego los 0V y 0.7V para el Blanco y negro.
Luego podrías colgar el programa final que estas usando para estudiarlo bien. En estos temas donde los tiempos son críticos hay que trabajr lo más ordenado posible y para ayudarte tendríamos que tener toda la informacion sino, estaremos adivinando cosas que pueden ser.

Saludos!



el esqueatico es simil al de pablin, Un resistencia de 470 ohms para el  puerto de video y una de  1k para el puerto de señales.

El programa es el que esta arriba, lo unico que le agregue fue en la etiqueta inicio que estaba vacia porque basicamente la idea era solo usar la interrupcion y no hay rutina principal, agregue dos lineas, la linea consiste en tomar los datos de la varialble A que uso para diferenciar los sincronismos verticales.

If a = 150 then VSYNC = 1   (VSYNC es la variable que deje para el puerto A 2 donde sale el video)
VSYNC = 0   (la bajo inmediatamente para no dejar el puerto en logico 1)

eso es todo lo que le agregue al programa, segun mi logica en todas las lineas al llegar al 150 debia generar un pixel, entonces deberia tener una especie de columna en vivorita a lo largo de la pantalla.

No funciono.


Desconectado siniestro

  • PIC10
  • *
  • Mensajes: 44
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #21 en: 09 de Septiembre de 2014, 15:02:04 »
Vi el video, basandome en mis conocimientos de la formacion de imagen en Televisiones de Tubo de rayos catodicos puedo decirte que:

Se forma una raya en lugar de un punto por que el tiempo que mantienes  en alto el pin de video es mucho mayor del que deberia ser, colocas el punto pero la sincronia horizontal lo "arrasta por la pantalla", se mueve mucho hacia arriba y hacia abaj porque la sincronia vertical no esta bien, el punto nunca cae en el mismo lugar en el eje Y de la pantalla, y tampoco cae en el mismo lugar en el eje X y cuando cae, se mantiene ahi por demasiado tiempo, por eso el efecto de raya en lugar de punto.  He estado pensando:

¿Que tal si usas dos PIC? uno que se encargue de las señales de sincronia y otro de las señales de video, el de sincronia podria ser un PIC pequeño y el de video seria uno mas potente.   aunque deberias diseñar un protocolo que comunique ambos pic, se me ocurre que el que genere la sincronia le indique al de video, el momento en que inicia a recorrer la pantalla.   Las imagenes en television se forman moviendo el az de electrones en Zig zag, empezando en la esquina superior izquierda y finalizando en la esquina inferior derecha, entonces deberias indicarle, cuando llego al final tambien para poner el video en "infranegro" y que el az no se dibuje en su retorno al inicio de la pantalla
Saber de todo un poco, sin ser experto en nada (una filosofia extraña)

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #22 en: 09 de Septiembre de 2014, 15:23:21 »
Coincido a medias con siniestro en el diagnóstico, el ancho de la pantalla dura 52useg. A 4Mhz cada instruccion asm dura 1useg, en PBP quizá mas. Si enciendes el puerto y enseguida lo apagas entonces el tiempo debería rondar el useg y deberías ver una "rayita", en un TV de 20" (40cm de ancho) la rayita mediría 1*40/52 = 0.77 cm. Si tu linea es tan larga quizá tengas algun tema con la configuracion de los tiempos... lo verificaste con el osciloscopio?

En cuanto a una línea vertical lo conseguirías encendiendo el puerto, por ejemplo, en el medio de los 52uSeg, no cuando el vertical va por la linea 150. Deberías configurar tu interrupcion de horizontal para 26useg, ahi adentro haces el pulsito y vuelves con los 26 useg restantes, o sea, en una int haces el pulsito y en la otra no. Me explico? de esa forma vas a conseguir la linea vertical. Ojo de distinguir que estas dentro de las líneas válidas de la pantalla y no en los pulsos de equalizacion, puedes arrancar ente las lineas 40 y 100 por ejemplo para probar.

Me parece que deberías incrementar la velocidad del micro para evitar algun que otro problema de tiempos que a simple vista se escapan...

Creo que te estas confundiendo en un tema, en el que te explique mas arriba, la informacion de video la tenes que meter dentro de los 52useg que dura el barrido horizontal, tu contador A te indica en que fila de la pantalla estás, si haces un pulso cuando A=150, siempre tendras un solo punto en la fila 150. Las columnas son esos 52 useg... me explico?

de todos modos, creo que estas a un par de pruebas de hacerlo andar asi que sigue adelante!!!!!

Saludos!
-
Leonardo Garberoglio

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #23 en: 09 de Septiembre de 2014, 20:05:52 »
Vi el video, basandome en mis conocimientos de la formacion de imagen en Televisiones de Tubo de rayos catodicos puedo decirte que:

Se forma una raya en lugar de un punto por que el tiempo que mantienes  en alto el pin de video es mucho mayor del que deberia ser, colocas el punto pero la sincronia horizontal lo "arrasta por la pantalla", se mueve mucho hacia arriba y hacia abaj porque la sincronia vertical no esta bien, el punto nunca cae en el mismo lugar en el eje Y de la pantalla, y tampoco cae en el mismo lugar en el eje X y cuando cae, se mantiene ahi por demasiado tiempo, por eso el efecto de raya en lugar de punto.  He estado pensando:

¿Que tal si usas dos PIC? uno que se encargue de las señales de sincronia y otro de las señales de video, el de sincronia podria ser un PIC pequeño y el de video seria uno mas potente.   aunque deberias diseñar un protocolo que comunique ambos pic, se me ocurre que el que genere la sincronia le indique al de video, el momento en que inicia a recorrer la pantalla.   Las imagenes en television se forman moviendo el az de electrones en Zig zag, empezando en la esquina superior izquierda y finalizando en la esquina inferior derecha, entonces deberias indicarle, cuando llego al final tambien para poner el video en "infranegro" y que el az no se dibuje en su retorno al inicio de la pantalla


muy buena idea, si tengo muchos pics, asi vamos experimentando a ver que se logra. Igual voy a pulir el programa, elimitar todos los bucles que me sean posibles y hacerlo mas eficiente.

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #24 en: 09 de Septiembre de 2014, 20:08:41 »
Coincido a medias con siniestro en el diagnóstico, el ancho de la pantalla dura 52useg. A 4Mhz cada instruccion asm dura 1useg, en PBP quizá mas. Si enciendes el puerto y enseguida lo apagas entonces el tiempo debería rondar el useg y deberías ver una "rayita", en un TV de 20" (40cm de ancho) la rayita mediría 1*40/52 = 0.77 cm. Si tu linea es tan larga quizá tengas algun tema con la configuracion de los tiempos... lo verificaste con el osciloscopio?

En cuanto a una línea vertical lo conseguirías encendiendo el puerto, por ejemplo, en el medio de los 52uSeg, no cuando el vertical va por la linea 150. Deberías configurar tu interrupcion de horizontal para 26useg, ahi adentro haces el pulsito y vuelves con los 26 useg restantes, o sea, en una int haces el pulsito y en la otra no. Me explico? de esa forma vas a conseguir la linea vertical. Ojo de distinguir que estas dentro de las líneas válidas de la pantalla y no en los pulsos de equalizacion, puedes arrancar ente las lineas 40 y 100 por ejemplo para probar.

Me parece que deberías incrementar la velocidad del micro para evitar algun que otro problema de tiempos que a simple vista se escapan...

Creo que te estas confundiendo en un tema, en el que te explique mas arriba, la informacion de video la tenes que meter dentro de los 52useg que dura el barrido horizontal, tu contador A te indica en que fila de la pantalla estás, si haces un pulso cuando A=150, siempre tendras un solo punto en la fila 150. Las columnas son esos 52 useg... me explico?

de todos modos, creo que estas a un par de pruebas de hacerlo andar asi que sigue adelante!!!!!

Saludos!

excelente explicacion, si  estaba mal interpretando como llevarlo a cabo.....ojala salga andando, lo tengo ahi ahi ahi, tiene que andar.!!!! hoy laburo en el programa y mañana les cuento a ver que salio de todo esto, desde ya un millon de gracias a ambos por la ayuda!

Desconectado siniestro

  • PIC10
  • *
  • Mensajes: 44
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #25 en: 09 de Septiembre de 2014, 22:42:06 »
Hace un tiempo vi en la revista Saber electronica, de Argentina un proyecto que se llamama IGTV, era una interfaz grafica para TV, de un Ing. de nombre Roberto, al momento no tengo el dato exacto pero si te interesa lo busco, solamente que este proyecto usaba dos tipos de microcontroladores, un AVR y un PIC, pero el Pic se encargaba de todo lo referente a la señales de sincronia y el AVR tenia las Macros en Assembler para generar, botones, display de 7 segmentos, marcos en relieve, etc.  Solo debias programar otro PIC que enviaba los comandos a la interfaz.  Lamentablemente la revista ya no vino mas a Guatemala :(  no se si dejaron de distruirla en centro america o que pasaria porque todo sucedio desde que se formo alianza con la edicion mexicana.  Extraño a SE  :(
Saber de todo un poco, sin ser experto en nada (una filosofia extraña)

Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #26 en: 09 de Septiembre de 2014, 23:26:03 »
Releyendo veo que como dice siniestro parece haber un problema con el vertical también. No tengo bien en claro cuantos pulsos de pre y post ecualización y cuantos pulsos de barrido horizontal tiene que haber para que la pantalla quede quieta. Recuerdo que los viejos televisores tenían una regulación de vertical para cuando la imagen se iba en vertical, pero no sé lo que hacia... Seguro siniestro podrá explicarlo para poder analizar el problema con el vertical.
Usar 2 micros seguro debe facilitar las cosas, pero me parece que ya casi lo tenés. Yo insisto en poner el micro a máxima velocidad para no sumar posibles problemas de tiempo.

Saludos!
-
Leonardo Garberoglio

Desconectado siniestro

  • PIC10
  • *
  • Mensajes: 44
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #27 en: 10 de Septiembre de 2014, 00:40:20 »
Citar
Recuerdo que los viejos televisores tenían una regulación de vertical para cuando la imagen se iba en vertical

se llamaba Vertical-Hold,  lo que hacia era hacer una corrección de la señal de sincronia vertical, cuando la señal de sincronia Vertical no lograba "enganchar" con el video, se podia corregir manualmente, era un ajuste minimo (a veces por calentamiento de los componentes debia reajustarse despues de algun tiempo).  La señal de sincronia debe ser casi que perfecta, si la vertical varia la imagen se mueve hacia arriba o hacia abajo, con perfecta quiero decir que si decidimos que queremos 30 cuadros por segundo, la señal de sincronia es de:

1/30=0.033 ó 3.3ms, jamas debe moverse ese valor, con 1ms que se corra ese periodo, la imagen se desestabiliza verticalmente

si decidimos 400 lineas por cuadro, esas 400 lineas nos darian una frecuencia horizontal de 400*30=12,000 Hz porque son 400 lineas en 1/30 de segundo ó 12,000 en un segundo
no entiendo porque han estado mencionando 52uS.  Se tiene que fijar un numero fijo de lineas y un numero fijo de cuadros por segundo, luego de ahi partimos para sacar cuanto debe durar el pulso horizontal y cuanto el vertical con los numeros anteriores sabemos que si son 12,000Hz (ciclos por segundo) cada pulso de horizontal durara 1/12000=0.00008333333  ó  8.3uS

Todos estos calculos los hice en el primer comentario que hice a este post usando los valores reales de una señal NTSC.

Usando los mismos calculos de esta respuesta,   dentro de 3.3ms  o lo  que seria lo mismo: 3,300uS  deben caber 400 pulsos de 8.33us  si operamos matematicamente vemos que

8.33*400=3,332 que se aproxima mucho a los numeros dados, no se si he logrado explimarme correctamente

-------------------------
------------------------- |
------------------------- |
------------------------- |
-------------------------
                                V  400 lineas con pulsos 8.33uS cada una y para hacer las 400 invertimos 3,332 al terminarlas
                                     el pulso vertical que es de 3.3ms o sea 3,300 nos haria que cuando empiece un nuevo cuadro
                                     las nuevas 400 lineas empiecen donde mismo.


no son calculos exactos todos los calculos de este comentario son   con  valores  de "cuadros" y de "lineas" que pongo de ejemplo 30 cuadros, 400 lineas

calcula cuanto dura cada linea horizontal en microsegundos y usa ese dato para saber en que momento "pintar" con la señal de video.  

Yo sigo sin entender de donde sacaron esos 52uS

Me parece muy interesante tu proyecto y dare todo lo que pueda para apoyarte.. . Exitos
« Última modificación: 10 de Septiembre de 2014, 00:44:12 por siniestro »
Saber de todo un poco, sin ser experto en nada (una filosofia extraña)

Desconectado jorgenuviola

  • PIC16
  • ***
  • Mensajes: 148
    • rat argentina!!
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #28 en: 10 de Septiembre de 2014, 02:02:19 »
Bueno muchachos malas noticias, vuelvo a cero, estaba leyendo la nota de richard´s y justo explica que muchas tv viejas no tienen impedancia entonces no se logra bajar el voltaje con las resistencias de 1k y 470 ohms...........adivinen.....mi tele no tiene esa impedancia, antes de agregarle una resistencia de 75ohms me busque otra que tengo aca sin usar, moderna y bueno....la verdad es dura....mi programacion de sincronismo no funciona.....

La rehice de nuevo, volvi al concepto anterior de no usar el timer y hacer todo un programa corrido y nada, no funciona. Con el tmr0 al agregar un comando los pulsos se estiraban como chicles mal, incluso calculando gracias a sus consejos no daban los numeros.

El programa de corrido tampoco funciono, asi que ahora estoy en cero cero.

Lamento haberles hecho perder el  tiempo a todos, me confundio ver la pantalla estable junto al osciloscopio y no me di cuenta que la television ni se entero que estaba recibiendo pulsos de sincronia porque estaba fuera del rango de voltaje.

el video de la dura realidad


feature=youtu.be


Desconectado elgarbe

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 2178
Re: señal video compuesto para TV pal y señal de video vga con pic16f84
« Respuesta #29 en: 10 de Septiembre de 2014, 08:23:27 »
Bueno muchachos malas noticias, vuelvo a cero, estaba leyendo la nota de richard´s y justo explica que muchas tv viejas no tienen impedancia entonces no se logra bajar el voltaje con las resistencias de 1k y 470 ohms...........adivinen.....mi tele no tiene esa impedancia, antes de agregarle una resistencia de 75ohms me busque otra que tengo aca sin usar, moderna y bueno....la verdad es dura....mi programacion de sincronismo no funciona.....

La rehice de nuevo, volvi al concepto anterior de no usar el timer y hacer todo un programa corrido y nada, no funciona. Con el tmr0 al agregar un comando los pulsos se estiraban como chicles mal, incluso calculando gracias a sus consejos no daban los numeros.

El programa de corrido tampoco funciono, asi que ahora estoy en cero cero.

Lamento haberles hecho perder el  tiempo a todos, me confundio ver la pantalla estable junto al osciloscopio y no me di cuenta que la television ni se entero que estaba recibiendo pulsos de sincronia porque estaba fuera del rango de voltaje.

el video de la dura realidad


feature=youtu.be



Ayer no estaba en la PC y no podia encontrar el link de la pagina que quería recomendarte, pero es justamente la que estas leyendo:

http://web.archive.org/web/20070111104641/www.rickard.gunee.com/projects/video/pic/howto.php

Ahí se explica de donde salen los 52useg del barrido horizontal en donde se debe operar con el puerto para mostrar informacion.

Si te parece intentemos pasar ese código ASM a PBP o mejor, si te animas a XC8. No te animas pasar a C usando MPLAB X y XC8?

A no desanimar!

Saludos
-
Leonardo Garberoglio