Найти в Дзене

Ретро компьютер "Gigatron TTL" (часть 3)

Предыдущая часть. В предыдущей части я рассказал про сборку Gigatron TTL, теперь это полноценное устройство, но использовать его можно только как игровую консоль с использованием джойстика, хотя в прошивках можно увидеть программы, которые требуют подключения клавиатуры. Подключением клавиатуры я сейчас и хочу заняться. Я пробовал экспериментировать с джойстиком, в запущенном Basic. Если нажимать одновременно несколько кнопок на джойстике, то можно добиться набора различных символов, но предполагаю, что логика еще более сложная, пользоваться таким методом совсем не удобно. Нужен переходник-адаптер с разъема джойстика на PS/2 клавиатуру. Самая простая схема подключения клавиатуры к Gigatron TTL выглядит так (эту фотографию схемы я нашел в одном из архивов в документации по Gigatron TTL): Скорее всего я бы такую схему и стал реализовывать, но мне повезло, ребята из тематического телеграмм канала по Gigatron TTL решили заказать набор дополнительных плат для этого компьютера. Вот по этой

Предыдущая часть.

В предыдущей части я рассказал про сборку Gigatron TTL, теперь это полноценное устройство, но использовать его можно только как игровую консоль с использованием джойстика, хотя в прошивках можно увидеть программы, которые требуют подключения клавиатуры. Подключением клавиатуры я сейчас и хочу заняться.

Я пробовал экспериментировать с джойстиком, в запущенном Basic. Если нажимать одновременно несколько кнопок на джойстике, то можно добиться набора различных символов, но предполагаю, что логика еще более сложная, пользоваться таким методом совсем не удобно. Нужен переходник-адаптер с разъема джойстика на PS/2 клавиатуру.

Самая простая схема подключения клавиатуры к Gigatron TTL выглядит так (эту фотографию схемы я нашел в одном из архивов в документации по Gigatron TTL):

Схема подключения PS/2 клавиатуры через 9 PIN разъем джойстика к Gigatron TTL.
Схема подключения PS/2 клавиатуры через 9 PIN разъем джойстика к Gigatron TTL.

Скорее всего я бы такую схему и стал реализовывать, но мне повезло, ребята из тематического телеграмм канала по Gigatron TTL решили заказать набор дополнительных плат для этого компьютера.

Вот по этой ссылке на GitHub можно найти всю информацию про эти платы расширения. Далее я буду ссылаться на соответствующие папки и файлы из этого архива.

Вот такая плата для подключения клавиатуры мне досталась (две фотографии с двух сторон):

Вся информация, прошивки и герберы находится по этой ссылке.

Схема платы расширения достаточно простая, деталей минимальное количество:

Схема платы расширения для подключения клавиатуры к Gigatron TTL и SD диск.
Схема платы расширения для подключения клавиатуры к Gigatron TTL и SD диск.

Важный момент! На схеме указана Arduino Nano ABX00028, эта плата Arduino на чипе ATMega4809. Я не особо разбирался с возможностью использовать другие варианты, возможно прошивки адаптированы именно под этот чип. На AliExpress нашел именно такую Arduino и ее использовал у себя.

И так. Решено делать вариант с SD картой в виде встроенного диска. Есть возможность использовать эту плату без SD диска, тогда не требуется установка EEPROM и адаптера SD карты. Вот мой набор для сборки адаптера:

Набор для сборки адаптера расширения клавиатуры и SD карты Gigatron TTL.
Набор для сборки адаптера расширения клавиатуры и SD карты Gigatron TTL.

Сам процесс сборки совсем простой, деталей не много. Arduino и адаптер SD карты я припаял, они у меня не съемные с платы, отсоединить можно только EEPROM, чтобы прошить его в программаторе. Еще один важный момент! Адаптер SD карты имеет встроенный преобразователь из 5 вольт в 3.3 вольта, соответственно никаких сложностей нет припаять его на свое место и запитать от 5 вольт (встречаются без преобразователя, тогда питание на SD адаптер нужно именно 3.3 вольта, а не 5 вольт).

Готовый адаптер клавиатуры и SD диска выглядит так:

Адаптера расширения клавиатуры и SD карты Gigatron TTL.
Адаптера расширения клавиатуры и SD карты Gigatron TTL.

Не имеет значения когда прошивать Arduino до или после установки ее на плату. А EEPROM у меня съемная, прошивать ее буду отдельно программатором.

Хочу отдельно рассказать про процесс прошивки. У меня домашний компьютер на Windows 11, соответственно весь процесс буду выполнять в нем.

Для прошивки Arduino потребуется установить программу Arduino IDE, если она еще не установлена. Программа бесплатная, устанавливать ее можно с официального сайта.

Файлы прошивки Arduino находятся по этой ссылке. Необходимо скачать их и в программе Arduino IDE открыть файл BabelFish.ino.

Теперь можно подключить Arduino к компьютеру. Компьютер установит драйверы и назначит COM порт. В программе Arduino IDE необходимо установить платформу "Arduino megaAVR Boards", для этого в левой панели необходимо вызвать "BOARDS MANAGER" и в строке ввести название (на скриншоте у меня эта платформа уже установлена, кнопки "Install" нет):

Установка платформы Arduino megaAVR Boards.
Установка платформы Arduino megaAVR Boards.

Далее следует установить библиотеку работы с SD картами на Arduino. Для этого в левой панели активировать "LIBRARY MANAGER" и ввести в строке поиска "SD", на скриншоте отображена библиотека, которую нужно установить:

Установка библиотеки работы с SD картами на Arduino.
Установка библиотеки работы с SD картами на Arduino.

Далее в меню "Tools"-"Board Arduino Nano Every"-"Arduino megaAVR Boards" выбрать "Arduino Nano Every":

Настройка "Arduino Nano Every".
Настройка "Arduino Nano Every".

В меню "Tools"-"Port" выбрать номер порта, назначенный компьютером:

Выбор порта.
Выбор порта.

Не знаю на сколько нужен этот шаг, но все же, нужно в меню "Tools"-"Registers emulations" выбрать None (ATMEGA4809):

Настройка ATMEGA4809.
Настройка ATMEGA4809.

Все готово для прошивки. Теперь в верхней панели программы Arduino IDE необходимо выполнить "Upload" (стрелка вправо в кружке):

Выполнение прошивки Arduino.
Выполнение прошивки Arduino.

В процессе прошивки может возникнуть такая ошибка, игнорируем ее:

Микроконтроллер платы не определяет раздел загрузки, который ожидает версия утилиты avrdude для загрузки, используемая в пакете Arduino megaAVR Boards.
Микроконтроллер платы не определяет раздел загрузки, который ожидает версия утилиты avrdude для загрузки, используемая в пакете Arduino megaAVR Boards.

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

Обязательно нужно дождаться завершения, в правом нижнем углу появится соответствующее сообщение.

EEPROM я прошил с помощью программатора T48. В нем необходимо выбрать "ACE24C64", никакие настройки тут менять не нужно:

Настройка T48 для прошивки EEPROM.
Настройка T48 для прошивки EEPROM.

Файл прошивки находится там же, где и прошивка для Arduino, файл называется "ACE24C64.HEX".

Последнее, что нужно сделать - это установить новую специальную прошивку в ПЗУ Gigatron. Прошивка находится в Github, называется "SDCARD.rom".

Подключил адаптер в разъем джойстика. Для стабильности питания Gigatron плату Arduino запитал отдельно:

Адаптер клавиатуры и SD диск для Gigatron TTL.
Адаптер клавиатуры и SD диск для Gigatron TTL.

Прошивка Gigatron TTL на экране выглядит так:

Стартовое меню прошивки с "SDCard".
Стартовое меню прошивки с "SDCard".

Первым делом проверяю работу клавиатуры. Запустил Basic и написал в нем простую программу из одной строки, клавиатура работает отлично:

Работа Basic на Gigatron TTL.
Работа Basic на Gigatron TTL.

Теперь проверяю работу SD диска. Для этого SD карточку отформатировал в FAT32 и записал на нее все содержимое вместе с папками каталога из Github. Вставил SD карту в адаптер и выполнил из загрузочного меню команду "SDCard", на экране появилось содержимое SD карты:

Содержимое SD карты Gigatron TTL.
Содержимое SD карты Gigatron TTL.

Стрелками влево и вправо можно перемещаться по страницам. Выбор кнопкой на джойстике или "Enter" на клавиатуре. Если выбрана папка, то будет отображено содержимое папки, две точки - выход из текущей папки.

Файлы отображаются и запускаются только с расширением "GT1":

Файл программы на SD карте.
Файл программы на SD карте.

Процесс загрузки программы в Gigatron:

Процесс загрузки программы в Gigatron
Процесс загрузки программы в Gigatron

Демонстрационная программа "Sprites":

Демонстрационная программа "Sprites" на Gigatron TTL.
Демонстрационная программа "Sprites" на Gigatron TTL.

Вот и завершен очередной этап сборки компьютера Gigatron TTL:

Gigatron TTL с адаптером клавиатуры и SD диском.
Gigatron TTL с адаптером клавиатуры и SD диском.

Не было цели разбираться с программами для этого компьютера, цель была собрать этот адаптер. Считаю сборку успешной. Обязательно будет продолжение...

Следующая часть.