Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

29/07/2008 #41


gzaloprgm me equivoqué con la sincronía, ahora que veo mi codigo me doy cuenta que estoy equivocado, la cosa es asi:

- Primero se ocupan pulsos de sincronía cortos: 30 us Negro, luego 2 us Sync, 30 us Negro y otra vez 2 us Sync, con eso logras los 64us que dura una línea horizontal, eso lo debes repetir 3 veces, es decir 192us
- Luego van los pulsos de sincronia largos: 30us de Sync, luego 2 us Negro, 30us Sync y de nuevo 2 us de Negro, de nuevo son 64us y repites esos pulsos 3 veces para tener 192us
- Al final se vuelven a necesitar pulsos de sincronía cortos: 30 us Negro, luego 2 us Sync, 30 us Negro y otra vez 2 us Sync, con eso logras los 64us que dura una línea horizontal, eso lo debes repetir 3 veces, es decir 192us

Así hago yo la sincronización vertical. Es distinto al tiempo que dice Chico3001 pero segun lo que yo he investigado la sincronía vertical debe durar el tiempo de 9 líneas horizontales, 576us, el tiempo que dura la sincronización que yo digo.

-- Edito --
Tengo entendido que el tiempo de sincronia es igual para PAL así que no debes tener ningún problema.

Y sobre tu pregunta de la línea negra entre cada cuadro, ¿era para mi?, si es así las líneas negras aparecen para que se vea bien definido cada cuadro, son intensiónales y escritas directamente en el código.
29/07/2008 #42

Avatar de gzaloprgm

Sí, era para tí. Gracias por la explicación.

Chico3001, estás seguro que son cada 14ms los períodos de sinc. vertical?

(14 milliseconds) / (64 microseconds) = 218.75 (?)
el ,75 es lo que me intriga.

Además, no debería dar 625lineas /2 ?

Estoy cada ves más confuso con esto

Saludos,
Gonzalo
29/07/2008 #43
Moderador

Avatar de Chico3001

El programa funciona.. fue mi proyecto de fin de carrera en la materia de TV... pero la verdad lo hice hace 8 años y se fue extraviando la documentacion del proyecto y solo me quedo el programa, por lo que la verdad no se si sea correcto o solo jalo "de chiripa" como decimos en mexico

Recuerdo que tenia problemas casi al final de la pantalla donde se empezaba a perder un poco la sincronia horizontal y la linea se comenzaba a desviar al inicio de la pantalla... pero nunca pude averiguar si era debido a inconsistencias en el cristal o por que haya tenido errores al generar alguna sincronia

Estoy reanalizando el programa para ver el por que de los 14mS, pero se me ocurren 2 ideas.. una que el comentario este errado y sea un contador de numero de horizontales que se estan generando (que es lo mas probable) y otra que el restante del tiempo sea parte del todo el codigo sumado...

Mientras te dejo esta pagina que es donde me estoy basando en revisar los calculos...

http://www.desi.iteso.mx/telecom/sis..._de_video.html
29/07/2008 #44


En ese enlace dice lo siguiente:

* El intervalo de tiempo correspondiente al retroceso vertical tiene una duración de 9 líneas horizontales.
* Las 3 primeras líneas forman una zona denominada como de igualación, las 3 líneas centrales son en sí el pulso de sincronía y las últimas 3 líneas horizontales forman otra vez una zona de igualación.
* En todo el intervalo de retroceso vertical los pulsos de sincronía se producen al doble de la frecuencia: 31,468.5 Hz.
* En las zonas de igualación los pulsos de sincronía son invertidos en su forma
Es lo mismo que había leido yo en otra parte, la sincronía vertical tiene una duración de 9 líneas horizontales asi que la duración no puede ser de 14ms sino de 576us como dije en el post anterior., que bueno es encontrar información en español, y de una universidad, que respalde lo que leí.

Gracias por el enlace Chico3001, ya lo guardé para futuras referencias.
30/07/2008 #45
Moderador

Avatar de Chico3001

mmm eso explica muchas cosas... en mi programa mantengo el pulso en cero durante 2mS posiblemente por eso se pierde la linea al final de la pantalla....

Mucho cuidado... si tu vez en el esquema el pulso de sincronia vertical es un tren de pulsos horizontales de ciertas medidas... y todo ese rango de pulsos mide 9 pulsos horizontales...
30/07/2008 #46


Si, las medidas deben corresponder con las que puse en los mensajes anteriores, es decir 30us y 2us alternando entre Negro y Sync, primero el tiempo equivalente a 3 lineas horizontales en donde la señal de 2us es la Sync, luego 3 líneas horizontales donde los 30us correspondan a Sync y de nuevo 3 línes horizontales donde Sync dure 2us, alternando las señales asi hasta que se completen las 9 líneas horizontales.
30/07/2008 #47

Avatar de gzaloprgm

Entonces la forma es esta?
  • Lineas impares (64us * 305) = 19,520 ms

    Pulsos cortos lineas impares (32us * 6)
    Pulsos largos (32us * 5)
    Pulsos cortos lineas impares (32us * 5) En total, 8 líneas de vsync = 0,512ms

    Lineas pares (64us * 305) = 19,520 ms

    Pulsos cortos lineas pares (32us * 5)
    Pulsos largos (32us * 5)
    Pulsos cortos lineas pares (32us * 4) En total, 7 líneas de vsync = 0,448ms
TOTAL=40ms = 1/25 (25 FPS)!

Alguien corríjame si me equivoco, son las 3:30 de la mañana

Es el sincro vertical para PAL!

http://en.wikipedia.org/wiki/Vertica...nization_pulse
http://web.archive.org/web/200703251..._vsync_big.png

Mañana armo el código y me fijo si funciona bien.

Saludos,
Gonzalo
30/07/2008 #48


META, el pic32 sera muy potente pero parece que no gusta, mira que llevan tiempo intentando promocionarlo y no les funciona, pasate por el foro de microchip y compara los dspic con el pic32 y no hay brillo por algo sera.

Uno de los problemas de los pic cuando generamos imagenes son los saltos que hacen saltar la pipeline y se saltan pasos intermedios y eso no se puede solucionar con un nop al ser medios ciclos.


El error que sale en la parte inferior puede ser un problema de post ecualizacion, no tiene exactamente la misma duracion la pantalla par respecto la impar.
30/07/2008 #49

Avatar de Meta

p0 equ 0x20
p1 equ 0x21
p2 equ 0x22
p3 equ 0x23
p4 equ 0x24
p5 equ 0x25
p6 equ 0x26
p7 equ 0x27
p8 equ 0x28
p9 equ 0x29
p10 equ 0x2A
p11 equ 0x2B
p12 equ 0x2C
p13 equ 0x2D
p14 equ 0x2E
p15 equ 0x2F
p16 equ 0x30
p17 equ 0x31
p18 equ 0x32
p19 equ 0x33
p20 equ 0x34
p21 equ 0x35
p22 equ 0x36
p23 equ 0x37
p24 equ 0x38
p25 equ 0x39
p26 equ 0x3A
p27 equ 0x3B
p28 equ 0x3C

movfw p0
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p1
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p2
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p3
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p4
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p5
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p6
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p7
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p8
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p9
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p10
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p11
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p12
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p13
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p14
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p15
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p16
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p17
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p18
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p19
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p20
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p21
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p22
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p23
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p24
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p25
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p26
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p27
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
movfw p28
movwf porta
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1
rlf porta, 1 ; (9*29)-1 instrucciones / 260 instrucciones = 52us / (8*29)-1 pix. = 231 pixeles
; 260 WORDS ROM / 29 BYTES RAM
30/07/2008 #50

Avatar de Meta

tiopepe123 dijo:
META, el pic32 sera muy potente pero parece que no gusta, mira que llevan tiempo intentando promocionarlo y no les funciona, pasate por el foro de microchip y compara los dspic con el pic32 y no hay brillo por algo sera.

Uno de los problemas de los pic cuando generamos imagenes son los saltos que hacen saltar la pipeline y se saltan pasos intermedios y eso no se puede solucionar con un nop al ser medios ciclos.


El error que sale en la parte inferior puede ser un problema de post ecualizacion, no tiene exactamente la misma duracion la pantalla par respecto la impar.
Entonces estás diciendo que los PIC32 son una basurilla. ME daré el salto al foro de Microchip a ver http://forum.microchip.com/

¿Tanto que por ahí decían que es muy bueno y7 potente con sus 80MHz y al final no sirve para nada?

Pues salió en noviembre del 2007 que recuerdo que decían que es genial y que no se que historias... Si no vende, entonces a ver que harán, porque los de 8 Bits se venden como rosca. La verdad es que siempre encuentro muy poca información sobre ellos y en otros foros lo han comprado y les encanta, eso si, menuda maraña de cables.

Pues Microchip que tanto presume de ellos, vamos a ver que harán, porque el 16F sea mejor que el PIC32 para TV como que sorprende.

Bueno, pues, a probar un 16F88 a TV, que tiene más memoria.

PD: Aún así, tengo ganas de ver proyectos de esos PIC32 que nunca se lo he visto a nadie y la programación tanto en ASM como en nivel alto.

EDIT:
Bueno, para lo que se quieres registrar y sacar más información sobre PIC32...

http://www.mypic32.com/

No sabía que había una Web de ellos mismos sólo con sus PIC32.
30/07/2008 #51
Moderador

Avatar de Chico3001

tiopepe123 dijo:

Uno de los problemas de los pic cuando generamos imagenes son los saltos que hacen saltar la pipeline y se saltan pasos intermedios y eso no se puede solucionar con un nop al ser medios ciclos.
Ese problema creo que lo tienen todos los micros de todas las marcas... debido a que tienen que desechar la instruccion que estan preejecutando y solicitar la nueva instruccion

En cuanto al los PIC por encima de 8 bits ya ni los considero... me gusta mas Freescale o Texas (Aunque Meta pegue de gritos jejeje....)
30/07/2008 #52

Avatar de Meta

Chico3001 dijo:
tiopepe123 dijo:

Uno de los problemas de los pic cuando generamos imagenes son los saltos que hacen saltar la pipeline y se saltan pasos intermedios y eso no se puede solucionar con un nop al ser medios ciclos.
Ese problema creo que lo tienen todos los micros de todas las marcas... debido a que tienen que desechar la instruccion que estan preejecutando y solicitar la nueva instruccion

En cuanto al los PIC por encima de 8 bits ya ni los considero... me gusta mas Freescale o Texas (Aunque Meta pegue de gritos jejeje....)
Nunca he visto Texas, freeScale es más conocido.
30/07/2008 #53


Hoy estuve trabajando un poco en esto del video con PIC. Hice un código distinto de 262 líneas verticales incluyendo las 9 líneas de sincronización vertical. Aqui está el video de lo que hice:

YouTube - Video NTSC con PIC16F88 - Desplazamiento por la pantalla

En el video se ve un cuadro blanco que se desplaza por una parte de la pantalla al presionar unos push buttons. El desplazamiento solamente se hace en un espacio de 8x8 "pixeles", pero me sirvió como prueba para desplazar una imágen por la pantalla, aunque solamente fuera un cuadro blanco.

La generación de señal monocromática (que no NTSC como bien lo aclaró tiopepe) ya la tengo dominada pero por el momento no puedo hacer gran cosa. Me gustaría hacer algún tipo de video juego como los pong o tetris que hay por ahí pero para eso ocupo comprender la lógica detrás de esos juegos, algún día, espero que pronto, me pondré a hacer algo así, por ahora ya comprendí como generar video blanco y negro compatible con un televisor NTSC o PAL.

Cuando tenga algo de tiempo haré alguna guía aunque creo que siguiendo los post de este tema se puede comprender el proceso.
31/07/2008 #54

Avatar de Meta

Hola:

Muy buena le vídeo. Lo que te falla de que se repite hacia adelante y atrás muy rápido o abajo y arriba cuando pulsas el botón, es porque en ese botón no has puesto retardos para antirrebotes. Pasa en cualquier botón.

Todo esto está en www.pic16f84a.com

Veo que cada vez domina mucho las señales de vídeo y es un gran paso.

Felicidades...
31/07/2008 #55


Todos los botones tienen retardos antirrebotes pero en realidad son muy chicos, leo los botones durante la sincronización vertical así que pasan solamente 20us entre que se detecta una pulsación y se vuelve a checar, es por eso que se ve tan rapido. Tiene antirrebotes pero no es suficiente.

Ahora revisé el código, sigo leyendo los botones durante la sincronización vertical pero ahora el retardo es de 16.2ms, sigue siendo poco pero es muchisimo más que los 20us de antes. El resultado es similar, el cuadro aún se mueve muy rapidamente por la pantalla pero es un poco más "estable"
31/07/2008 #56

Avatar de Meta

Vete probado poco a poco hasta lograr los efectos deseados, cada vez te sale mejor. Cuando domines bien estas cosas, ya podríamos hacer un tutorial. Empezando claro lo que has puesto desde el principio que me llama la atención como esto:



Siiiiiiii, se que es simple y sin movimiento, pero me gustaría hacer cosas de estas.

PD: Por cierto, ¿esos vídeos que has puesto desde el principio el 16F88 lo hiciste con el Windows Media Maker?
31/07/2008 #57


Si, lo hice con el windows media maker, soy muy cutre pero es lo único que tenía a la mano
31/07/2008 #58

Avatar de Meta

pic-man dijo:
Si, lo hice con el windows media maker, soy muy cutre pero es lo único que tenía a la mano
Pues eso es lo que quería saber, para hacer cosas de esas también con el Maker. Solo lo he probado como prueba en mi vida, pero ahora como está Youtube, lo utilizaré.

Avisa si sigues avanzando con las señales de vídeo.

PD: Bueno, decías que no hablan bien del PIC32. http://forum.microchip.com/tm.aspx?m=355118

EDIT:
Vaya, no me vale el formato del Nokia N70 (mp4) para el Movie Maker, espero que en el Windows Vista si funcione...

EDIT2:
http://es.wikipedia.org/wiki/PAL

Aquí hay algo de señales de vídeos para coger ideas. con el tiempo haré una recopilación sea español y inglés sobre temas de vídeos.
http://www.pablin.com.ar/electron/ci...ream/index.htm
31/07/2008 #59

Avatar de Meta

pic-man dijo:
Cuando tenga algo de tiempo haré alguna guía aunque creo que siguiendo los post de este tema se puede comprender el proceso.
No mucho, hay que hacer resumen de lo que se está haciendo y explicar partes de código y esquema del hardware, cosas así.
Explicar cómo se hace una letra y dónde ponerla en pantalla o el punto ese que lo hiciste mover.
Pero tiempo al tiempo, por ahora céntrate en lo que estás haciendo.
¿Al final que harás cuando dominas toda la señales de vídeo?

Puedes poner el código asm por donde vas, me gustaría probarlo en el MPLAB.
31/07/2008 #60


Hola de nuevo a todos los del hilo.

Aquí les dejo este link que creo les va a ser útil para lo que están haciendo:

http://www.tkk.fi/Misc/Electronics/f...b/timings.html

Saludos:
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.