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

Me gustaría hacer una placa simple para conectar un monitor LCD y obtener una pantalla blanca en blanco. La idea es utilizar cualquier monitor como mesa de luz improvisada. Prefiero 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 solo para una pantalla blanca?

Por lo que vale, descubrí después de reemplazar la luz de fondo en un monitor LCD muerto con una tira de LED independiente, que el panel LCD en sí está predeterminado en blanco cuando el monitor está apagado. (se desplaza lentamente durante varios segundos) Por supuesto, para que eso funcione, necesita una forma de encender la luz de fondo mientras el panel está apagado, lo que probablemente no sucederá con un monitor no modificado.

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 seguirán mostrando esos colores si hay un voltaje de CC constante en sus entradas. En cambio, generalmente responden a la diferencia entre el voltaje presente cuando el escaneo está "fuera de la pantalla" y el presente cuando se escanea el área de visualización deseada. Es posible que encuentre un monitor extraño que responda a CC, pero es atípico.

Dado que desea monocromático, por supuesto puede conducir 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 demoras moderadamente precisas en el medio. Ninguno de los eventos realmente se superpone, por lo que esto es bastante factible. Su programa probablemente consistirá en un ciclo for que produzca el número deseado de líneas horizontales con una secuencia de acciones hysnc y RGB de encendido, espera y apagado, dentro de un ciclo while infinito 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/frecuencia de actualización vertical.

Puede usar los temporizadores de hardware para generar el tiempo, pero dado que no parece que necesite su micro para hacer otra cosa, 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, utilizando un contador programable para contar cada estado como una cierta cantidad de relojes de puntos y leer a través del búfer de cuadros. Pero dado que no está tratando de producir características estrechas, probablemente pueda usar un bucle de retardo para 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 son próximos a un múltiplo entero de los mismos.

El acceso a un osciloscopio ciertamente simplificaría la tarea de hacer la implementación correcta, aunque no es un requisito absoluto. Es probable que un monitor genere "algo" incluso con el tiempo bastante apagado, y luego puede "caminarlo" a su posición cambiando los retrasos.

Vale la pena mencionar dos cosas sobre las tecnologías de monitores; Es posible que los CRT no estén muy contentos de ser conducidos a frecuencias de escaneo inusuales y los imanes pueden quejarse audiblemente; en teoría, incluso podrían dañarse. Las pantallas LCD son bastante tolerantes, pero se esfuerzan por adaptarse a lo que sea que les des de comer y aprovechar al máximo con su circuito de reescalado. Es posible que se encuentre presionando el botón de reajuste con frecuencia a medida que cambia sus tiempos. Supongo que también es posible que no se adapten a una señal que genera un gran rectángulo sin contenido de alta frecuencia que podrían usar para tratar de alinear su frecuencia de muestreo con su reloj de puntos inexistente para mostrar nítidamente texto fino o características gráficas que no está generando. Si usa un CRT con una pantalla completamente blanca, definitivamente querrá obtener la tasa de sincronización vertical lo más alta 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 directo, por lo que la gente suele programar las cosas a 60 Hz.

¡Brillante! Esto es exactamente lo que necesitaba para empezar. Como mencionaste, un bucle de retardo es probablemente la solución más simple. Gracias

Conecte las líneas R, G y B de un conector VGA a 0,7 V (puede usar la caída de voltaje de los diodos para esto).

Luego conecte VSYNC y 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 TTL-esque estándar.

Te dejaré leer un poco las especificaciones de VGA para encontrar los tiempos correctos para estas señales*

*No tengo tiempo, pero agregaré más información más adelante cuando tenga tiempo sobre las especificaciones de VGA

No hay nada de malo en enseñar algo sobre la especificación VGA o dar un enlace a una buena fuente.
¡Gracias! Encontré un par de proyectos que usan Arduino para VGA enumerados en esta pregunta
@kortuk lo habría hecho si hubiera tenido tiempo.
@Majenko, sugeriría la línea "No tengo tiempo, pero agregaré más información más adelante cuando tenga tiempo sobre las especificaciones de VGA"

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