Найти в Дзене
Дневник электронщика

Клон ZX-Spectrum на ESP-32

Компьютер ZX-Spectrum со снятой крышкой
Компьютер ZX-Spectrum со снятой крышкой

Сегодня мы обсудим изготовление клона компьютера ZX-Spectrum на основе модуля ESP-32. Процесс изготовления был очень интересным и занятным, хотя в некоторых моментах были свои хлопоты.

Изготовление данного клона ZX-Spectrum основано на видео пользователя Youtube Алекс Екб. Ссылки на видео и прошивку, которые Алекс Екб указал, описана ниже.

full_zx_emul_01.zip

Далее я опишу мой процесс изготовления клона ZX-Spectrum.

В начале я, на основе эскизов Алекса Екб, начертил электрическую принципиальную схему клона:

Схема Э3 клона ZX-Spectrum
Схема Э3 клона 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-кабелем, по которому и подаётся питание на всю схему.

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

Рисунок печатной платы клона ZX-Spectrum
Рисунок печатной платы клона ZX-Spectrum

Затем изделие было смонтировано и собрано в компактном корпусе, распечатанном на 3D-принтере.

Клон ZX-Spectrum в сборе
Клон ZX-Spectrum в сборе

Далее через программу ESP32 Download TOOL была произведена загрузка прошивки, которая показана на изображениях ниже.

Первый этап загрузки
Первый этап загрузки
Второй этап загрузки
Второй этап загрузки

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

Далее подключил к ZX-Spectrum клавиатуру и монитор, затем через внешний блок питания на 5 Вольт подключил компьютер к розетке.

Подключение клавиатуры и монитора к ZX-Spectrum
Подключение клавиатуры и монитора к ZX-Spectrum

По итогу появилось на экране монитора вот такое изображение:

Первое включение ZX-Spectrum
Первое включение ZX-Spectrum

Хочу ниже указать инструкцию по кнопкам, которую оставил Алекс Екб:

Управление скоростью 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

Литература по использованию клонов спектрума:

http://zxbyte.ru/inter.htm

Моя предыдущая статья по клону ZX-Spectrum КВАНТ-БК:

Запустил клон ZX-Spectrum 48K, КВАНТ-БК
Дневник электронщика25 апреля 2022

По просьбам подписчиков выкладываю ссылку на мой диск с файлами, необходимыми для изготовления клона ZX-Spectrum:

ZX-Spectrum-ESP32

До новых встреч!