Я розробляв власний портативний ігровий пристрій на основі мікроконтролера AVR та невеликого OLED-дисплея.
Я почав з монохромного дисплея 128х64 пікселів і можу зручно звертатися до нього зі швидкістю понад 60 кадрів в секунду.
Нещодавно я переробив його, щоб використовувати OLED-RGB, 128x128 пікселів, не надто замислюючись, щоб знайти лише 4 FPS. Після деякої думки та ретельного рефакторингу я можу отримати це до ~ 12 кадрів в секунду, якщо мені не дуже важливо робити щось інше!
Моє запитання - як такий пристрій, як GBA (Game Boy Advance), досягнув частоти кадрів майже 60 кадрів в секунду? Я думав про те, щоб мати окремий «графічний процесор», але зрозумів, що все одно перебуваю у вузькому місці, передаючи дані дисплея на це.
Мені також було цікаво використовувати вестигіальний 8-бітний паралельний інтерфейс, який має більшість цих екранів, що може привести до 8-кратного прискорення, за винятком того, що сучасні MCU не мають апаратних паралельних інтерфейсів, як це робиться для послідовних і бітових- стукання, швидше за все, з'їсть велику швидкість.
Які ще існують варіанти?
В даний час я використовую ATmega1284P, підключений до SSD1306 OLED-контролеру через USART-SPI. Ось монохромний варіант.
Кольоровий екран був SSD1351, спочатку не підключений до апаратного SPI. Я не був переконаний, що це матиме достатньо значення, загалом це занадто повільно
Я знаю, що можу отримати швидші MCU, але я хочу знати, які ще варіанти я міг би вивчити - процесор GBA набагато повільніше, ніж мій 1284!