Сегодня мы обсудим изготовление клона компьютера ZX-Spectrum на основе модуля ESP-32. Процесс изготовления был очень интересным и занятным, хотя в некоторых моментах были свои хлопоты.
Изготовление данного клона ZX-Spectrum основано на видео пользователя Youtube Алекс Екб. Ссылки на видео и прошивку, которые Алекс Екб указал, описана ниже.
Далее я опишу мой процесс изготовления клона ZX-Spectrum.
В начале я, на основе эскизов Алекса Екб, начертил электрическую принципиальную схему клона:
Основой схемы является, как вы сами понимаете, модуль ESP-32. Всё остальное является её обвязкой, которая обеспечивает режимы и удобство работы модуля с внешней периферией.
Разъём XP1 VGA типа, который подключается к модулю по схеме через резисторы R1...R6. VGA-разъём используется для вывода цветного изображения на монитор.
К модулю через разделительный конденсатор С1 делитель R7R8 подключается аудио разъём типа Jack 3.5 XP2, который применяется для загрузки программ c аудионосителей или, как в моём случае, со смартфона.
Для выгрузки данных и имитации звука бипера к модулю по схеме подключается через разделительные конденсаторы С2,С3, и через делители R14R9, R13R12 и R10R11, разъём XP3 типа Jack 3.5
USB-разъём используется для подключения обыкновенной компьютерной клавиатуры.
Хочу сделать некоторые замечания к данной схеме.
Первым замечанием является необязательность нахождения в схеме переключателя S1. Он используется для отключения вывода GPIO27, который отвечает за бипер и выгрузку данных, от разъёма XP3. Как показали испытания платы, такой переключатель просто не нужен. В моём случае, изначально такой переключатель был, но, в последствии, был удалён и заменён на паяные соединения вместо секций данного переключателя.
Вторым замечанием является применение упрощенных схем подключения разъёмов к модулю. Алекс Екб указывал в своём видео рекомендацию использования более усложнённых схем подключения, для исключения ошибок дефектов при работе данной схемы. Как показали проведённые мной испытания, никаких дефектов и ошибок работы не было обнаружено, хотя были у меня такие опасения. Но практика их развеяла, всё прекрасно работает и функционирует.
Третьим замечанием является применение внутреннего модуля импульсного блока питания (ИБП) с выключателем S2. Для уменьшения стоимости изготовления и уменьшения размеров корпуса клона ZX-Spectrum, модуль ИБП был исключён и заменён просто USB-кабелем, по которому и подаётся питание на всю схему.
По итогу разработки принципиальной электрической схемы, была разведена печатная плата, рисунок которой указан ниже:
Затем изделие было смонтировано и собрано в компактном корпусе, распечатанном на 3D-принтере.
Далее через программу ESP32 Download TOOL была произведена загрузка прошивки, которая показана на изображениях ниже.
Рекомендую использовать последнюю версию программы, так как на старой версии программы у меня не получалось нормально прошить компьютер, получилось только на последней.
Далее подключил к ZX-Spectrum клавиатуру и монитор, затем через внешний блок питания на 5 Вольт подключил компьютер к розетке.
По итогу появилось на экране монитора вот такое изображение:
Хочу ниже указать инструкцию по кнопкам, которую оставил Алекс Екб:
Управление скоростью CPU:
№ Кнопка Эффект
1 Home Нормальный режим(3.5МГц), только в этом режиме
доступна загрузка с аудиовхода.
2 End Режим без ограничения, самый быстрый, но
неравномерный.
3 Page UP Режим TURBO 5МГц.
4 Page Down Режим SLOW 2МГц.
Сохранение и загрузка:
№ Кнопка Эффект
1 F1 — F12 Загрузка ранее сохраненного состояния ZX Spectrum.
2 CTRL+(F1 — F12) Сохранение состояния ZX Spectrum.
3 CTRL+ ALT+esc Форматирование памяти. После форматирования
микроконтроллер перезагрузится.
Форматирование нужно, если глючит при загрузке и сохранении. Все сохранения, естественно, теряются. Отображение на экране и работа с внутренней SPI памятью конфликтуют, поэтому экран на время файловых операций приходится отключать. Операции сохранения и форматирования могут длиться несколько секунд. Особенно долго форматирование, до 50 сек.
Эффекты:
№ Кнопка Эффект
1 Print Screen Переключение режимов отображения+информация.
2 Pause Break Пауза.
3 CTRL+ALT+DEL Перезагрузка.
Управление джойстиком(геймпадом):
№ Кнопка Эффект
1 Scroll Lock Смена режима геймпада:
kepston→sinclair player1→sinclair→player2→
пользовательский режим.
Во всех режимах, кроме пользовательского работают
только 5 кнопок (крестовина и кнопка 1). Для
кемпстон-джойстика доступны и кнопки 2,3,4, но
программы их не используют.
Если есть необходимость запрограммировать клавиши
кемпстон джойстика, то они дублируются на
цифровом блоке клавиатуры
(8 - вверх, 5 и 2 - вниз, 6 — вправо, 4 — влево,
0 - огонь ).
2 CTRL+ScrollLock Режим настройки пользовательских кнопок на
геймпаде. Зажатие кнопки на геймпаде и нажатие на
клавиатуре программирует зажатую кнопку геймпада.
Можно программировать все клавиши, но без
комбинаций. Комбинации будут восприняты как
самая первая нажатая клавиша. Также не
программируются CTRL, SHIFT, ALT и клавиша WIN
Выход из режима программирования и сохранение
настроек — клавиша Esc.
Желательно не использовать кнопки режимов работы, такими как управление скоростью CPU, а также сохранением и загрузкой, и режимом настройки пользовательских кнопок, так как это может привести к неустойчивому состоянию работы компьютера. Скажем, я ограничился загрузкой и выгрузкой данных на смартфон, подключив его к ZX-Spectrum через Jack 3.5 кабель. Этого вполне достаточно, чтобы нормально использовать функционал данного компьютера, что будет продемонстрировано ниже.
Сначала я перешёл в 48-килобитный режим работы компьютера, выбрав пункт "48 BASIC". Затем была мной набрана для теста программа простейшего калькулятора.
Для сохранения программы я подключил смартфон через кабель и переходник к разъёму выгрузки данных компьютера.
Затем ввёл команду SAVE "KALKULATOR", где в скобках указал имя сохраняемого файла.
Появилось предупреждение, которое говорит, что надо включить запись звука на смартфоне с помощью диктофона. Как только включили запись, нажмите кнопку Enter на клавиатуре. Начнётся сохранение файла программы, которое закончится сообщением, изображённым ниже:
По окончании записи диктофон на смартфоне можно отключить.
Для загрузки программы на компьютер, смартфон подключаем через кабель уже к разъёму загрузки данных, как изображено ниже:
Затем вводится команда "LOAD """, а затем включаем воспроизведение, записанного нами файла программы на смартфоне.
По окончании программы будет выведено сообщение:
После этого отключите воспроизведение файла, а затем нажмите кнопку "Enter" на клавиатуре. В итоге получится вот такой результат:
Запустить её можно командой "RUN". Программа сложит, введённые вами, числа и выдаст результат.
На последок, я загрузил игру Android, которую я показывал в предыдущей своей статье про восстановление старого клона ZX-Spectrum КВАНТ-БК.
По итогу могу сказать, что получился хороший клон компьютера ZX-Spectrum на базе модуля ESP-32, которым можно управлять почти также, как оригинальным компьютером. Изображение на экране монитора выводится цветное и качественное. Загрузка и сохранение программ на смартфон происходит без ошибок и осложнений. Также не придётся делать конвертеры и переходники, как для оригинальных спектрумов и старых клонов, корпус получился удобный и компактный, что также идёт в плюс к изделию.
Ссылки на информацию, как пользоваться ZX-Spectrum, предыдущую статью по данной теме и картинку клавиатуры оригинала, оставлю ниже. Также, если ссылка на прошивку перестанет действовать, то отпишитесь в комментарии, я добавлю свою ссылку на прошивку, файлы у меня есть.
Литература по использованию клонов спектрума:
Моя предыдущая статья по клону ZX-Spectrum КВАНТ-БК:
По просьбам подписчиков выкладываю ссылку на мой диск с файлами, необходимыми для изготовления клона ZX-Spectrum:
До новых встреч!