ARCAdaptor

Всё в твоих руках

Компьютеры на базе AVR-микроконтроллеров

Вместо предисловия

Многие профессионалы-разработчики электроники часто "воротят нос" от семейства микроконтроллеров производства Atmel - фи, мол, эта ваша Атмега — только лампочками поморгать. Однако, это спорное утверждение.

Дешевизна, легкость программирования (как физической "заливки" прошивки, так и создания самих программ) превращают микроконтроллеры семейства AVR в универсальный инструмент, доступный начинающему радиолюбителю, а богатейшая линейка устройств — от самых простых ATTiny до устройств Mega256 с огромным количеством периферии "на борту" позволят реализовать самый смелый и амбициозный проект.

В этот раз мы рассмотрим конкретные примеры реализации одноплатных (и не очень) конструкторов на базе микроконтроллеров семейства ATMega. Все они вполне реализуемы в домашних условиях, а некоторые можно приобрести на сайте авторов. Для начала - небольшое отступление про "одноплатники" вообще.

Название говорит само за себя - все компоненты компьютера, необходимые для его базового функционирования размещены на одной плате. Совсем юные читатели сразу подумают о новинках вроде Raspberry Pi, а те, кто уже имеют понятие о мироустройстве — вспомнят РК-86, ZX-Spectrum и БК-0010, например.

Именно так — те самые "компьютеры в клавиатуре" были одноплатными. Да, допускались различные расширения, но кто о них помнит сейчас, тем более приобрести их в магазине было довольно проблематично. Да и нужды не было по большому счету.

И вот 21 век сдвинул "окно ностальгии" в нужную позицию и радиолюбители по всему миру не сговариваясь выпустили несколько проектов, которые по характеристиками ну очень напоминают те самые "эр-кашки" и "спектрумы" конца восьмидесятых годов прошлого века. А некоторые — в точности повторяют, но обо всём по порядку.

AVR Chip Basic

Первый персонаж нашего обзора - компьютер AVR Chip Basic, точнее это целое семейство компьютеров, различающееся по степени "навороченности" и наличию той или иной периферии.

Из под пера автора ( Jörg Wolfram ) вышла целая плеяда устройств:

  • AVR-ChipBasic8 на базе ATMega8 или ATMega88 (та же микросхема используется в ARCAdaptor)
  • AVR-ChipBasic на базе ATMega16
  • AVR-ChipBasic32 на базе ATMega32
  • AVR-ChipBasic2 на базе ATMega644

Все они имеют (как минимум) ТВ-выход и общаются с пользователем с помощью языка BASIC. В качестве устройства ввода используется стандартная PS/2 клавиатура.

Как уже говорилось, каждое из устройств обладает разными характеристиками, так например, AVR-ChipBasic8 имеет чёрно-белый видеовыход, может хранить программы на языке BASIC на подключаемой микросхеме EEPROM, ибо память самой микросхемы оставляет лишь 512 байт для хранения исходного текста. 

Тем не менее - имеется и звуковой выход, и даже "свободные ножки", на которые можно повесить дополнительное оборудование. 

Диалект бейсика очень сильно урезан, но позволяет вдоволь наиграться с этим языком программирования.

Из "фишек" интересное - прошивку можно собрать самостоятельно как под PAL развертку, так и под NTSC.

Остальные аппараты уже в состоянии выводить цветной видеосигнал через разъем SCART, и даже подключаться к совместимой TFT-матрице. Также к услугам пользователя возможность работы с периферией, последовательный интерфейс RS-232 с возможностью общения с "большим братом" и даже "картриджи памяти"! - съемные блоки памяти с записанными на них программами.

Более того, версии на ATMega16,32 и 644 используют одну и ту же плату, то есть достаточно поставить микросхему в панельку и загрузить нужную прошивку.

Остальные подробности можно почерпнуть на странице автора. К сожалению страничка на немецком языке, но онлайновые переводчики значительно облегчат жизнь.
Кстати, среди его проектов есть и эмулятор компьютера ZX-81 на микроконтроллерах AVR.

FIGnition

Движемся дальше - следующий экспонат - одноплатный компьютер Fignition.

Автор Julian Skidmore создал "одноплатник", работающий под управлением ФОРТ-машины. Устройство способно управляться с экраном размером 25x24 символов, 16 пользовательскими символами, ну или графикой размером 160x160 точек.

Стоит отметить, что устройство может работать как с PAL-телевизорами, так и с NTSC - зависит от загруженной прошивки микроконтроллера ATMega168.

Особый интерес вызывает способ ввода данных. Обычно с AVR-устройствами часто интегрируют поддержку PS/2 клавиатуры, коих в избытке (пока что). Автор подготовился к вселенской катастрофе и организовал ввод с помощью восьми кнопок... Перебор значений на них организован по образу и подобию набора SMS в кнопочных мобильных телефонах.

 

 

Безусловно, такое устройство будет интересно в первую очередь поклонникам языка FORTH.
Сам автор предлагает приобрести комплект для сборки, хотя схема открыта, и в принципе желающие могут собрать подобное устройство самостоятельно.

Сайт проекта

Если до этого шла речь о самобытных  устройствах, то следующая часть статьи будет почти полностью посвящена эмуляторам и репликам существующих (за некоторым очень интересным исключением).

PMD-85

Первый в списке - компьютер PMD-85. Это довольно интересное устройство, которое выпускалось с 1985 по 1989 в социалистической Чехословакии. По характеристикам он очень похож на семейство "РК-86", выпускавшийся в СССР в середине и конце восьмидесятых годов прошлого века - процессор i8080 и небольшой объем памяти.

Подробнее можно почитать в Википедии , ну а пока что рассмотрим аппаратную реализацию на ATMega.

Даже по этой иллюстрации видно - на плате всего лишь 2 микросхемы - непосредственно контроллер ATMega128 и микросхема памяти.

Ввод осуществляется с клавиатуры PS/2, вывод - через черно-белый ТВ. Для того, чтобы запустить ту или иную игру - необходимо скомпилировать соответствующую прошивку, которая содержит тот или иной набор программ. Вот несколько скриншотов от "родных" игр.

А вот видео работы, правда записано с настоящего PMD:

 

 

Подробности можно почерпнуть по этой ссылке , сайт же поклонников PMD-85 из бывшего соцлагеря тут.

Проект был бы весьма интересен отечественным фанатам РК-86, тем более что уже есть реализация на микроконтроллере PIC в проекте Maximite.

AVR-CP/M

Дальше - больше. Если возможна эмуляция i8080, то почему бы не попытаться запустить на АТМеге операционную систему CP/M ?

Это стоит сделать хотя бы ради великого и ужасного ZORK! И ведь запускают.

 В качестве устройства отображения используется serial port.

Для него в плату установлен конвертер Serial->USB, но вполне можно обойтись и без него, точнее - обойтись внешним конвертером.

Сама схема представляет собой контроллер ATMega328 и несколько чипов памяти (из старых видеокарт или материнских плат).

Диск эмулируется через набор образов, размещенных на SD-карте. Схемы, прошивки и прочее можно найти здесь. Сайт на немецком языке, но онлайновые переводчики сделают свое дело.

UzeBox

Постепенно переходим к жемчужинам этого собрания. Первая в списке - самодельная, полностью открытая приставка UzeBOX.

 

Мало того, что приставка полностью "повторяема" в домашних условиях — её программное обеспечение имеет вполне достойный уровень, и более того — игры для неё разрабатываются энтузиастами прямо-таки в промышленных количествах.

Что "под капотом":

  • Низкая стоимость. Всего 2 чипа (микроконтроллер и кодер NTSC), более того - второй не обязателен, если есть телевизор с полноценным разъемом SCART.
  • Ядро управляется прерываниями. Нет "тормозов", никто не отсчитывает такты процессора, генерация аудио и видео происходит в фоне.
  • 256 цветов 4 звуковых канала - 3 wavetable +1 шумовой
  • MIDI-интерфейс
  • Стандартные джойстики от SNES (на 15 долларов на Aliexpress можно приобрести несколько штук).
  • Есть возможность использовать NES (Dendy), но потребуется перекомпиляция игр, хотя это вообще не проблема
  • Поддержка манипулятора "мышь" от SNES
  • Поддержка SD-карточек UART и SPI интерфейсы доступны, также есть некоторое количество свободных "ножек" ATMega
  • Есть эмулятор для разработки игр Загрузчик игр/программ с SD Развитое API для разработки Полностью открытая схемотехника и код

Приставка оказалась настолько удачной, что комплектами для сборки подторговывал магазин Adafruit Industries — признанный лидер в DIY движении.

Сама приставка базируется на микросхеме ATMega644 в DIP-исполнении (об этом чуть подробнее ниже). Этого контроллера вполне хватает для вышеописанных задач, а на выходе можно наблюдать игры примерно такого качества:

Без сомнения - классика не стареет.

Неплохо для микроконтроллера, правда ?

Автор разработки - канадец Alec (Uze) Bourque. Проекту не один год, но сообщество, сложившееся вокруг консоли всё еще полно идей и энтузиазма для дальнейшего движения вперед.

По этой ссылке можно ознакомиться с минимальной версией UzeBox - полностью модульной системой, которая состоит из базовой платы с микроконтроллером и SCART-выходом, а также дополнений - платы энкодера NTSC, платы адаптера SD-карты и платы MIDI-переходника.

Последний, кстати, никогда не был воплощен "в металле" за отсутствием MIDI-оборудования :) Выглядит "домашняя версия" в сборе примерно так:

Так что с уверенностью заявляем - "дизайн" проверен и работает.

Конечно же, нужно упомянуть о недостатках.

  • Для обеспечения нужной скорости ATMega работает в режиме "overclock" - аж на 28.6 Mhz
  • Для сборки подходят только DIP-версии микросхемы
  • При использовании SMD-версий перестает работать UART, перебои с SD-картой и вообще большой риск "не завестись". Причина тому - указанный выше "разгон"
  • Чип AD725 (энкодер NTSC) в наших краях редкость и довольно дорого обходится (хотя он по большому счету и не нужен в начальной конфигурации)
  • SNES-джойстики не так распространены и уж тем более "ответные" разъемы для них
  • Нормально работают далеко не все SD-карты (точнее, большинство не работает, хотя подобрать в конце концов можно)

Достоинства консоли, кстати, с лихвой перевешивают описанные недостатки, так что её действительно можно рекомендовать к сборке даже новичкам.

Официальный сайт консоли со всей информацией, исчерпывающей документацией и весьма позитивным форумом здесь.

 

AVR ZX Spectrum 2.0

Ну и в финале — действительно потрясающий проект нашего соотечественника - Василия Лисицына - полностью функциональный "клон" компьютера ZX-Spectrum!

Спецификации впечатляют:

  • Разрешение экрана: 256 х 192 точки
  • Матрица знакомест экрана: 32 х 24
  • Количество цветов на знакоместо: 2
  • Число цветов экранной области: 8
  • Число цветов бордюра: 8
  • Число градаций яркости для каждого цвета: 2
  • Эквивалентная частота ЦП: 2,333 МГц
  • Порты ввода/вывода: 0xFE, 0x7FFD, 0x7FFD, 0xBFFD
  • Клавиатурный интерфейс: PS/2
  • Число задействованных клавиш: 82
  • Число каналов звукового сопровождения: 4
  • Перечень каналов звукового сопровождения: левый AY8910, правый AY8910, средний AY8910, бипер
  • Видеовыходы: ЧБ выход, RGB выход, отдельный выход синхронизации
  • Поддержка загрузки/выгрузки «на ленту»: имеется
  • Дополнительные устройства ввода/вывода: micro-SD карта
  • Поддерживаемые модели ZX Spectrum: Pentagon 128 K, ZX Spectrum 128 K, ZX Spectrum 48 K, ZX Spectrum +2, ZX Spectrum +3, ZX Spectrum 48 K ` 2006, OPEN SE BASIC 128 K, OPEN SE BASIC 48 K
  • Дополнительная операционная система: SD DOS
  • Файловая система: FAT32
  • Разъём шины ввода/вывода: имеется
  • Конструкция: двухсторонняя печатная плата 140 х 22 мм, установка внутри клавиатуры или в отдельный корпус
  • Питание устройства: соединитель mini-USB «F», напряжение +5 В

На фото -  плата AVR ZX-Spectrum 2.0 с установленным эмулятором AY8910(12), кстати тоже на ATMega.

Плата в базовой конфигурации имеет на борту 3 микроконтроллера и микросхему динамической памяти аж на 512 кб:

  • Центральный процессор (ATMega128)
  • Видеопроцессор (опять ATMega128)
  • Контроллер клавиатуры (ATTiny2313)

Это позволяет "в теории" реализовать компьютер с таким объемом памяти. Помимо этого на плате есть некоторое количество микросхем мелкой логики.

Уже сейчас помимо "спектрума" плата может функционировать, как Robotron 1715. То есть на этой базе можно реализовывать и другие компьютеры!

Что может быть лучше ретро-платы все в одном! Впрочем, о тайнах и возможностях может поведать сам автор:

 

 

К сожалению, на данный момент у автора нет веб-сайта, но есть надежда, что он появится. А пока что со схемой и описанием можно ознакомиться, например, вот здесь.

Заключение

Микроконтроллеры - отличная возможность прикоснуться с миру разработки микроэлектроники. Для "олдскульщиков" - возможность "нырнуть" в то время, когда они были молодыми, а компьютеры простыми. Для поколения Arduino - шаг вперед в образовании. И пусть фанаты навороченных FPGA и ARMов утверждают о том, что время ATMega прошло - мы-то знаем на что она способна.

Удачных самоделок!

comments powered by Disqus