Estoy buscando una forma de controlar una pantalla VGA con un PIC. Los componentes externos están bien, por lo que un chip VGA con I2C o SPI o algo así también está bien.
Requisitos:
En mi proyecto tengo un búfer de texto que quiero tener en una pantalla. Puede compararlo con el uso de una pantalla LCD para mostrar texto, pero ahora con VGA.
Si no es excesivo para su aplicación, puede agregar una interfaz ISA a su PIC y recoger una tarjeta de video vieja en alguna parte.
Sin embargo, supercat señala que no hay una PC para ejecutar el BIOS de video, por lo que probablemente esto no funcione.
Encontré una publicación en hackaday haciendo algo similar con un AVR que podría ser una buena fuente de inspiración.
Es probable que el circuito requerido para agregar una pantalla VGA a un PIC exceda el costo y la complejidad de usar un chip diferente que podría proporcionar una pantalla y también hacer lo que fuera que iba a hacer el PIC, o usar algo como una Raspberry. Pi para proporcionar la pantalla y hacer que se comunique con el PIC a través de un UART o algo similar (creo que Raspberry PI tiene al menos un UART entre sus pines de E/S).
Si su meta es construirse un subsistema VGA para que pueda aprender cómo funcionan estas cosas, una interfaz VGA a 640x480 requiere la capacidad de registrar alrededor de 32 millones de píxeles por segundo. Eso va a estar un poco más allá de las capacidades de un PIC "sin asistencia"; probablemente no tendría que agregar mucho hardware a un PIC para permitirle generar texto si no le importara que la pantalla acaparara el procesador durante la mayor parte de cada cuadro, pero es probable que el PIC no tenga tiempo para nada . demás; cada línea de escaneo requeriría que ejecutara una secuencia de 160 instrucciones algo así como:
movf POSTINC0,w,c
movwf PORTC,c
comenzando en el ciclo correcto y funcionando sin interrupción [el hardware tomaría ciegamente los datos de caracteres de PORTC en el momento en que se suponía que debían estar allí, los alimentaría a través de una ROM con forma de carácter y los cargaría en un registro de desplazamiento].
Si hiciera algo así, podría ser posible que un PIC de 32MHz genere texto de 80x25 usando algo así como una ROM rápida (25ns) de 32Kx8 para contener formas de caracteres y serializarlos, un contador de 3 bits para registrar los píxeles de cada carácter , y algunas puertas misceláneas; uno probablemente podría usar uno de los módulos PWM de PIC para manejar la sincronización horizontal. Este enfoque proporcionaría una matriz de mosaicos de 80x25, cada uno de los cuales podría tener cualquiera de las 256 formas; cada forma sería de 8x16 píxeles, y cualquier combinación de 256 colores [para simplificar, imagine que los colores probablemente serían RRRGGGBB o algo así]. Si uno tuviera problemas para encontrar una ROM de 32Kx8 lo suficientemente rápida, podría usar una RAM de 32Kx8 rápida en su lugar y proporcionar un mecanismo para alimentar datos en el inicio del sistema.
david tweed
usuario17592
olin lathrop
usuario17592
chris stratton
usuario17592
AndrejaKo
usuario17592
chris stratton
usuario17592
AndrejaKo
usuario17592
crosley
usuario17592
1024 * 768 / (6*8) = 16384
que 16,4 Kbytes, ya que usaría una fuente de 5x7. No necesitas un byte por píxel, ¿verdad? Además, el 1024x768 fue el máximo, menos también está bien.chris stratton
crosley
usuario4574