VGA карта на базе Arduino UNO R4 Minima
VGA карта на базе Arduino UNO R4 Minima (относительно новый и самый младший чип в линейке ардуино уно Р4. В связи с чем наблюдается резкий дефицит библиотек под него).
Что то я за собой замечать стал, токсичность повысилась. Наверное потому что постов давно не писал.
Попала мне в руки плата Ардуины Р4. Покупал по одной причине, а оказалось она под мои хотелки не подходит. Забросил на некоторое время на полку. Потом заморочился немного и решил применить руки. Хотел сначала сделать автомат типа тетрис или пинг понг, но меня понесло и получилось что получилось. Думаю буду дальше допиливать и исправлять.
Видео есть на ютуб и есть непосредственно в посте. На ваш выбор. Краткое описание ниже.
В данном тесте реализовано звездное небо.
Видео ютуб кому интересно.
Видео на сайте если кто против ютуба.
Прототип видеоадаптера, поддерживающий режим VGA 640x480 при 60 Гц - пока что только в одноцветном варианте. В качестве аппаратной основы используется плата Arduino Uno R4 Minima с тактовой частотой процессора 48 МГц и частотой пиксельного генератора 24 МГц. На данный момент реализован текстовый режим с сеткой 64x50 символов.
Технические характеристики платы довольно скромные, однако благодаря низкоуровневому программированию удалось добиться стабильности сигнала на уровне 95%. Архитектура платы зачастую ограничивает доступ к регистрам контроллера. Для этого режима была разработана полноценная библиотека, включающая поддержку окон, прокрутки, спрайтов, пользовательских (или игровых) шрифтов, внеэкранных буферов и многого другого.
К сожалению, пришлось пожертвовать всеми прерываниями - в текущей реализации они отключены. Из исходных 32 КБ памяти пользователю доступно от 10 до 20 КБ, в зависимости от выбранного режима. В дальнейшем можно будет добавить поддержку таких функций, как подключение PS/2-клавиатуры, вывод звука и т. д. В этом упрощенном режиме пользовательские программы выполняются только во время интервала гашения кадра (обратного хода кадровой развертки). Для более опытных пользователей предусмотрен доступ к контроллеру и во время обратного хода строчной развертки. Для мазохистов можно доступ во время рисования строки, но там совсем жестко!
Реализован и протестирован графический режим 640x480 (60 Гц), обеспечивающий рабочую область 320x240 с глубиной цвета 1 бит. В планах - внедрение 4-цветной палитры, подобной той, что использовалась в легендарном стандарте CGA. И снова напомню: объем оперативной памяти крайне ограничен в видеорежиме только экран монохромный съедает 10кб озу - 30% от всего что есть!
PS. Аналогичных поделок именно на этой плате я не нашел. Код писался на С++ документация на плату 1000+ страниц.
PS2. Обязательно кто то скажет фигня, контроллер мощный, не то что 50 лет назад I8088 процессоры были гораздо слабее. На что я вам отвечу - старый ПК типа PC XT содержал не только процессор но и память и видеокарту с ввод вывод и прочее прочее прочее. Каждое устройство занималось своим делом независимо. А тут один чип. При чем реально убогий по возможностям. Математически на 1 пиксель условно уходит 2 такста процесора. А надо сформировать синхроимпульсы, вывести на экран, да еще и пользовательскую программу исполнить. . . .




