Агат-7. Описание концепции проекта.

Итак, в этом посте мы обсудим концепцию реплики компьютера «Агат-7». Она не окончательная и скорее всего будет корректироваться. Ваши идеи и замечания как всегда приветствуются.

Процессор.

В качестве процессора будет использоваться болгарский аналог процессора 6502 — СМ630. Но он может быть заменен и на любой другой совместимый аналог, который окажется под рукой. Конечно существует несколько 6502-совместимых «софт-процессоров», которые можно «уложить» в ПЛИС. Я даже успешно запустил компьютер на одном из них. Но ни один из них не является 100% совместимым. В частности, отличается время выполнения некоторых команд и отсутствует поддержка недокументированных инструкций. Из-за этого работа некоторых программ может оказаться неправильной.

Рабочая частота процессора на компьютере составляла 1,021МГц. Для удобства проектирования я выбрал частоту работы процессора в реплике в 1.016МГц. Это на 0.5% меньше оригинала, но вполне укладывается в погрешность осциляторов, используемых в оригинале.

Память.

Ввиду небольшого объема, все ПЗУ будут вшиты в ПЛИС. Это включает в себя «Системный Монитор», две версии знакогенератора, прошивки контроллеров дисководов и параллельного-последовательного интерфейса. Это уменьшит количество корпусов и стоимость.

ОЗУ будет выполнено на одном чипе SRAM (10нс) объемом 128К х 16 (128К 16-ти битных слов), что фактически составляет 256 Кбайт. Там будут находиться все 96 Кбайт ОЗУ, а также 48 Кбайт ОЗУ «Ячейки 121». Первые 8 байт слова памяти SRAM используются для четных адресов ОЗУ компьютера, а вторые — для нечетных. Такая организация удобна для чтения содержимого памяти видеоадаптером (см. раздел Видео).

96 Кбайт ОЗУ будут определяться как 32 Кбайта системой памяти, 32 Кбайта ДопОЗУ в слоте 4 и 32 Кбайта ЭмПЗУ в слоте 2.

Видео.

Видеосигнал будет выводиться на разъемы «тюльпан» и S-Video, а также VGA монитор. Выбор будет осуществляться переключателем. В режиме вывода на VGA будет использоваться разрешение 1024 х 768 х 65Гц, так как оно наиболее удобно для отображения графических режимов Агат-7 на весь экран. Каждая точка режима 256х256 к примеру формируется из 4-х точек по горизонтали и 3-х по вертикали (256х4=1024, 256х3=768). Из-за этого требуется гораздо более быстрое чтение памяти, чем в оригинальном компьютере. Реплика должна успевать читать достаточное количество данных из SRAM во время полутакта, когда процессор не использует шины адреса и данных, чтобы их хватило для управления лучом до следующего такого полутакта. Для этого и используется быстрая память (10нс) и чтение сразу 16 бит (2 байт) за цикл (помните, как хранятся четные и нечетные ячейки ОЗУ компьютера в SRAM?), чтобы успеть наполнить буфер достаточным количеством данных до следующего полутакта процессора.

VGA будет основным способом вывода. Телевизионные выходы будут построены на микросхеме AD725.

«Ячейка 121», позволяющая запускать программы Apple-][ в своих «родных» графических режимах, так же будет реализована.

Компьютер Атат-7 изначально выпускался со знакогенератором не содержащим строчных символов, но дальнейшие модификации имели расширенный знакогенератор со строчными символами. Для совместимости с различными программами в реплику будут добавлены обе версии знакогенератора с возможным переключением между ними «на лету» при помощи тумблера.

Звук.

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

Магнитофонный вход/выход.

По всей видимости схема оригинала будет также использована ввиду ее дешвизны. Она будет собрана на макетке и протестирована на надежность считывания / записи прежде чем окончательное решение будет принято. Возможно, что использование I2S кодера/декодера будет более оправданным.

Клавиатура.

С репликой будет возможно использовать либо клавиатуру PS/2, либо «родную» клавиатуру от оригинала. Два разъема будут установлены с возможностью выбора между ними переключателем.

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

Дисковод 140К.

Установка реального дисковода в реплику не планируется. Вместо этого в слоте 3 будет эмулироваться дисковод 140К выполненный на ATMega644. Будет возможность его отключения выключателем. К микроконтроллеру будет подключен LCD дисплей 20х4 символов и энкодер для выбора образа диска, хранящегося на SD карте с FAT32 файловой системой с поддержкой каталогов (но без поддержки длинных имен файлов). Формат образов — nib объемом 227,5 Кбайт каждый. При открытии образа будет возможность открыть его в защищенном от записи режиме. Образы дисков готовятся и записываются на SD карту на PC-компьютере.

Питание схемы будет 5В для достижения частоты работы микроконтроллера 20МГц. Обмен с 3.3В SD картой будет осуществляться через буферную микросхему TXB0104.

Обмен с LCD дисплеем будет осуществляться по 4-битной шине.

Дисковод 840К.

Установка реального дисковода 840К в реплику так же не планируется. Вместо этого в слоте 5 будет эмулироваться дисковод 840К выполненный на STM32L152. Будет возможность его отключения выключателем.

Причина выбора этого микроконтроллера в том, что он, в отличие от ATMega, поддерживает DMA и имеет в 1.5 раза большую рабочую частоту — 32МГц. Это важно для эмуляции 840К дисковода ввиду его большей скорости по сравнению с 140К. При этом цена этого микроконтроллера сопоставима с ATMega.

Конечно, для упрощения следовало бы выполнить на STM32 контроллере и дисковод 140К, но он уже был мной написан на ATMega и пока нет смысла переписывать его. Это может быть сделано в одной из следующих ревизий проекта.

К микроконтроллеру так же будет подключен LCD дисплей 20х4 символов (возможно другого цвета) и энкодер для выбора образа диска, хранящегося на SD карте с FAT32 файловой системой с поддержкой каталогов (но без поддержки длинных имен файлов). Формат образов — aim объемом 2020 Кбайт каждый. При открытии образа будет возможность открыть его в защищенном от записи режиме. Образы дисков готовятся и записываются на SD карту на PC-компьютере.

Напряжение питаниясхемы дисковода будет 3.3В. Обмен с 5В LCD дисплеем будет осуществляться по 8-битной шине через буферную микросхему.

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

Параллельный — последовательный интерфейс (ППИ).

Эта плата будет эмулироваться в слоте 6 и иметь возможность отключения тумблером. Разъем интерфейса будет выведен наружу корпуса, но он будет отличаться от оригинального, т.к. не всегда легко найти сейчас такие разъемы. Возможно это будет IDE разъем. Для подключения принтера или других устройств можно будет изготовить нужные переходники.

Сам интерфейс будет выполнен на CPLD Altera MAX II с использованием буферных микросхем.

Слот раширения.

Будет предусмотрена возможность подключения дополнительных плат раширения. Для этого будет выведен наружу оригинальный разъем. Он будет подключен как слот 6 и сможет быть выбран вместо ППИ тумблером. В слот можно будет, например, подключить реальный контроллер дисковода и переписывать диски на SD карту эмулятора дисковода.

Питание.

Питание компьютера будет осуществляться от внешнего блока питания 15-19В. Большинство блоков питания ноутбуков подойдут для этой цели (возможно придется заменить разъем подключения или использовать переходник). В компьютере питание будет распределяться на 12В (параллельный-последовательный интерфейс и разъем расширения), 5В, 3.3В и 1.8В (ПЛИС) с помощью линейных преобразователей. Такое решение, вместо использования ATX блока питания, было выбрано для того, чтобы компьютер можно было вместить в компактный корпус.

Корпус и плата.

Компьютер будет смонтирован на 2-х сторонней плате с максимальным использованием SMD компонентов. «Вторым этажом» будут смонтированы LCD дисплеи и органы управления. Большая часть схемы компьютера будет размещена на ПЛИС Altera Cyclone II EP2C5T208. Для экономии ног ПЛИС будут использованы мультиплексоры для переключения клавиатур, видео, дисководов и пр. Так же для сигналов не критичных к скорости будет использован i2c расширитель портов.

Если будет интерес, то возможно будут сделаны наборы для самостоятельной сборки.

В следующих постах я расскажу о том что уже сделано мной и выложу некоторые примеры кода. Подписывайтесь на обновления и оставляйте ваши комментарии. До встречи!

Leave a Reply