¿Cuál es la forma más sencilla de generar una señal VGA para una pantalla totalmente blanca? Preferiblemente con un AVR MCU

4

Me gustaría hacer un tablero simple para conectar un monitor LCD y obtener una pantalla en blanco en blanco. La idea es usar cualquier monitor como una mesa de luz improvisada. Tengo una preferencia por los micros AVR de 8 bits ya que tengo un par por ahí.

Entonces, ¿cuál es la forma más sencilla de generar una señal VGA para una pantalla en blanco?

    
pregunta davidlgj

3 respuestas

3

En realidad, es probable que deba cambiar las líneas R, G y B, así como HSYNC y VSYNC. La mayoría de los monitores no continuarán mostrando esos colores si hay un voltaje de CC constante en sus entradas. En su lugar, generalmente responden a la diferencia entre el voltaje presente cuando el escaneo está "fuera de pantalla" y el que está presente al escanear el área de visualización deseada. Es posible que encuentre un monitor extraño que responda a DC, pero es atípico.

Como quiere monocromo, por supuesto puede manejar los tres juntos. Un divisor de voltaje resistivo es la forma habitual de crear los niveles de voltaje correctos.

Básicamente, deberá generar una secuencia de pulsos en HYSYNC, RGB y VSYNC, con retardos moderadamente precisos entre ellos. Ninguno de los eventos realmente se superponen, por lo que esto es bastante factible. Su programa probablemente consistirá en un bucle for que producirá el número deseado de líneas horizontales con una secuencia de acciones de hysnc y RGB de encendido-espera-apagado, dentro de un bucle infinito de tiempo que impulsa el vsync para producir pantallas completas. Muchos manuales de monitores mostrarían diagramas de tiempo; a menudo, incluso el manual para un monitor diferente al que está utilizando sería aplicable al menos para una resolución adecuada / tasa de actualización vertical.

Puede usar los temporizadores de hardware para generar el tiempo, pero como no parece que necesite que su micro haga algo más, también puede usar un bucle de retardo.

Tradicionalmente, una tarjeta de video genera todo su tiempo como un múltiplo de un reloj de puntos de varios MHz, usando un contador programable para contar cada estado como un número de relojes de puntos y leer a través del buffer de cuadros. Pero como no está tratando de producir características limitadas, es probable que solo pueda usar un bucle de retardo para lo que sea que sea el evento más corto (probablemente el pulso hysnc), y definir todos los eventos más largos en múltiplos de eso o con sus propios bucles de retardo. Si no están cerca de un múltiplo entero de los mismos.

El acceso a un osciloscopio simplificaría la tarea de hacer que su implementación sea correcta, aunque no es un requisito absoluto. Es probable que un monitor genere "algo" incluso con la sincronización más bien apagada, y luego puede "colocarlo" en posición al cambiar los retrasos.

Vale la pena mencionar dos cosas acerca de las tecnologías de monitoreo; Es posible que los CRT no estén realmente contentos de ser conducidos a frecuencias de escaneo inusuales y los magnéticos pueden quejarse audiblemente; Teóricamente podrían incluso dañarse. Los LCD son bastante tolerantes, pero se adaptan a lo que sea que los alimente y aproveche al máximo sus circuitos de reescalado. Puede que te encuentres presionando el botón de reajuste con frecuencia a medida que cambias los horarios. Supongo que también es posible que no puedan adaptarse a una señal que genere un gran rectángulo sin contenido de alta frecuencia que podrían usar para intentar alinear su tasa de muestreo con su punto-reloj inexistente para mostrar claramente el texto fino o características gráficas que no estás generando. Si usa un CRT con una pantalla completamente blanca, definitivamente querrá obtener la velocidad de sincronización vertical tan alta como sea posible con tiempos válidos para evitar el parpadeo (elegir relativamente pocas líneas verticales puede ayudar con eso, ya que la restricción es a menudo la frecuencia horizontal máxima). el monitor puede manejar); para una pantalla LCD no es un problema directamente, por lo que la gente generalmente mide 60 Hz.

    
respondido por el Chris Stratton
4

Vincule las líneas R, G y B de un socket VGA a 0.7V (puede usar la caída de voltaje de los diodos para esto).

Luego conecte el VSYNC y el HSYNC a las líneas de salida de un microcontrolador.

Estas dos salidas deben pulsarse a la velocidad correcta para simular una señal VGA; son señales estándar tipo TTL.

Te dejaré hacer una lectura de la especificación VGA para encontrar los horarios correctos para estas señales *

* Estoy fuera de tiempo pero agregaré más información más adelante cuando tenga tiempo sobre la especificación VGA

    
respondido por el Majenko
0

Echa un vistazo a estos proyectos:

http://www.serasidis.gr/circuits/AVR_VGA/avr_vga.htm
http://www.lucidscience.com/pro-vga%20video%20generator-1.aspx
http://www.thebackend.de/dokuwiki/doku.php?id=microcontroller:dmm_vga
http://tinyvga.com/avr-sdram-vga
    
respondido por el avra

Lea otras preguntas en las etiquetas

Comentarios Recientes

funcionando a toda velocidad con voltajes predeterminados. Podría estar loco, pero es aterrador. Mi ingeniero de hardware piensa disparar hasta 3V y ver cuánto más rápido podría manejar. La mayoría de 1V, 3V y 6V son probablemente inferiores a 1.2V. Si va a hacer algo útil con los envíos de señales de video o las cosas de transmisión, es probable que necesite más de 1V para garantizar resoluciones y señales sensatas. Buenas abstracciones fuera de mi biblioteca es una vez, el puerto comPanel aquí y allá... Lees verder