7 votos

Interfaz VGA con PIC

Estoy buscando una manera de controlar una pantalla VGA con un PIC. Los componentes externos están bien, así que un chip VGA con I2C o SPI o algo así también está bien.

Requisitos:

  • Resolución: máximo 1024x768, sin mínimo
  • Idioma: C (compilador C18) o Jalv2
  • Sólo texto, sin necesidad de gráficos (pero estaría bien que también los tuviera)
  • Un color es suficiente, por lo que la conversión de DA está fuera del alcance de esta pregunta

En mi proyecto tengo un buffer de texto que quiero tener en una pantalla. Se puede comparar con el uso de una pantalla LCD para la visualización de texto, pero ahora con VGA.

0 votos

¿Qué intenta hacer? Un PIC no tiene ningún hardware de vídeo, ni hay ningún hardware de vídeo estándar de facto utilizado con los PIC. Cualquier software será específico para una configuración de hardware particular.

0 votos

En mi proyecto, voy a tener un buffer de texto. Quiero que ese texto aparezca en la pantalla. Quiero tener la opción de salida VGA en lugar de una pantalla LCD, para cuando quiera conectar el dispositivo a un beamer o así. Sé que es posible , pero eso es con ASM, y yo quiero una biblioteca C/Jalv2. Pero como respuesta a tu pregunta: Quiero poner un buffer de texto en la pantalla.

1 votos

El PIC adecuado podría ser capaz de producir señales VGA con una codificación cuidadosa, pero no será fácil. ¿Qué hardware pretende proporcionar entre el PIC y la salida VGA?

11voto

hockey2112 Puntos 121

Aquí hay algunos enlaces que pueden ayudar.

http://www.micro-examples.com/public/microex-navig/doc/089-pic-pal-tv.html#20

para aquellos que sólo buscan mostrar algún texto en la pantalla, (Algunos monitores tienen la opción de AV en) puede utilizar este sencillo consejo, trate de MAX7456 en su proyecto, es muy simple y fácil

3voto

Kip Diskin Puntos 11

Si no es excesivo para su aplicación, podría añadir una interfaz ISA a su PIC y recoger una vieja tarjeta de vídeo en algún lugar.

Sin embargo, supercat señala que no hay un PC que ejecute la BIOS de vídeo, así que probablemente esto no funcionaría.

Encontré un post en hackaday haciendo algo similar con un AVR que puede servir de inspiración.

0 votos

¡Oh, qué bien! Ciertamente, tengo que pensar en esto para futuros proyectos, ¡gracias por el enlace y el +1! Me temo que es una exageración para este proyecto, sin embargo

0 votos

Muy bonito, lo había olvidado. Creo que incluso puede haber tarjetas VGA que puedan funcionar sólo con la ISA de 8 bits conectada; ciertamente hay tarjetas Hércules, EGA, etc. que podrían ser reprogramadas a los tiempos necesarios.

0 votos

Una tarjeta VGA lo suficientemente anticuada debería funcionar con un bus de 8 bits, pero los requisitos de E/S incluso para un bus de 8 bits van a ser lo suficientemente grandes como para optar por un acceso de 16 bits. Sin embargo, un problema que se suele tener con las tarjetas VGA es averiguar qué secuencia de inicialización se requiere para una tarjeta en particular. Incluso las tarjetas que son "100% compatibles con VGA" a menudo tendrán que ser inicializadas de varias maneras no estándar antes de su uso. Dado que todas las tarjetas VGA incluyen una BIOS ROM, esto no es un problema cuando la tarjeta se conecta a un PC; el PC ejecutará el código de la ROM, que...

1voto

Alex Andronov Puntos 178

Es probable que la circuitería necesaria para añadir una pantalla VGA a un PIC supere el coste y la complejidad de utilizar un chip diferente que pueda proporcionar una pantalla y también hacer lo que el PIC iba a hacer, o bien utilizar algo como una Raspberry Pi para proporcionar la pantalla y hacer que se comunique con el PIC a través de una UART o algo similar (creo que la Raspberry PI tiene al menos una UART entre sus pines de E/S).

Si tu objetivo es construirte un subsistema VGA para aprender cómo funcionan estas cosas, una interfaz VGA a 640x480 requiere la capacidad de registrar unos 32 millones de píxeles/segundo. Eso va a estar un poco más allá de las capacidades de un PIC "sin asistencia"; probablemente no tendrías que añadir mucho hardware a un PIC para permitirle emitir texto si no te importa que la pantalla acapare el procesador durante la mayor parte de cada cuadro, pero el PIC probablemente no tendría tiempo para cualquier cosa si no; cada línea de exploración requeriría que se ejecutara una secuencia de 160 instrucciones algo así como

movf  POSTINC0,w,c
movwf PORTC,c

a partir de el ciclo justo y funcionando sin interrupción [el hardware tomaba ciegamente los datos de los caracteres del PORTC en el momento en que se suponía que debían estar allí, los hacía pasar por una ROM de caracteres y los cargaba en un registro de desplazamiento].

Si hicieras algo así, podría ser posible que un PIC de 32MHz generara texto de 80x25 usando algo como una ROM rápida (25ns) de 32Kx8 para mantener las formas de los caracteres y serializarlas, un contador de 3 bits para sincronizar los píxeles de cada carácter, y algunas puertas diversas; probablemente se podría usar uno de los módulos PWM del PIC para manejar la sincronización horizontal. Este enfoque proporcionaría una matriz de 80x25 azulejos que podrían ser cada uno de 256 formas; cada forma sería de 8x16 píxeles, y cualquier combinación de 256 colores [para simplificar, figura los colores probablemente sería RRRGGGBB o algo así]. Si uno tuviera problemas para encontrar una ROM de 32Kx8 lo suficientemente rápida, podría utilizar una RAM de 32Kx8 rápida en su lugar, y proporcionar un mecanismo para alimentar los datos en el arranque del sistema.

0 votos

Pero la Raspberry Pi no hace VGA.

0 votos

@AndrejaKo: Ah, vale. Si necesitas VGA en particular, probablemente haya otros ordenadores de placa única que podrían hacer el trabajo por menos del coste de diseñar una solución a medida. Sin embargo, ir por la ruta del PIC puede ser educativo. La cantidad de circuitos no debería ser irrazonable, y probablemente podrías encontrar todo lo que necesitas en piezas de agujero pasante fáciles de soldar a mano. Por cierto, añadiendo algunos contadores, una RAM fuera del chip, y un poco de lógica de pegamento haría posible tener el vídeo generado continuamente sin la participación del PIC, con la advertencia de que el PIC...

0 votos

...tendría que cronometrar adecuadamente sus escrituras en la pantalla para asegurarse de que coincidieran con las horas en que los datos de la pantalla estuvieran disponibles; añadir un poco más de circuitería podría facilitar ese requisito.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X