He estado diseñando mi propio dispositivo de juegos portátil basado en un microcontrolador AVR y una pequeña pantalla OLED.
Comencé con una pantalla monocromática de 128x64 píxeles y puedo dibujar cómodamente a más de 60 cuadros por segundo.
Recientemente lo modifiqué para usar un OLED RGB, 128x128 píxeles sin pensar realmente demasiado solo para descubrir que solo podía lograr unos 4 FPS. ¡Después de pensarlo un poco y refactorizarlo cuidadosamente, puedo obtener eso hasta ~ 12 fps si no me importa demasiado hacer otra cosa!
Mi pregunta es: ¿cómo logró un dispositivo como el GBA (Game Boy Advance) una velocidad de cuadro de casi 60 fps? Pensé en tener un 'procesador de gráficos' separado, pero me di cuenta de que aún estaría bloqueado al transferir los datos de la pantalla a eso.
También me pregunté sobre el uso de la interfaz paralela vestigial de 8 bits que la mayoría de estas pantallas tienden a tener, lo que podría generar una velocidad 8 veces mayor, excepto que las MCU modernas no tienden a tener interfaces paralelas de hardware como lo hacen para serial y bit- golpear probablemente consumirá gran parte de la ganancia de velocidad.
¿Qué otras opciones existen?
Actualmente estoy usando un ATmega1284P conectado a un controlador OLED SSD1306 a través de USART-SPI. Esa es la versión monocroma.
La pantalla a color era un SSD1351, no conectado originalmente al hardware SPI. No estaba convencido de que haría suficiente diferencia, en general es demasiado lento
Sé que puedo obtener MCU más rápidas, pero quiero saber qué otras opciones podría explorar: ¡el procesador GBA es mucho más lento que mi 1284!