Магнитофон для компьютеров ZX Spectrum

Магнитофон для zx spectrum на atmega

Несколько слов о ZX Spectrum

ZX Spectrum - компьютер, созданный более 30 лет назад с 3.5 МГц процессором и всего лишь 48 Кб ОЗУ, под который написано огромное количество игр (да и прикладного софта тоже), в которые интересно играть даже сегодня. При том, что эти игры часто представляют собой мегашедевры с точки зрения программирования и оптимизации кода, их разработчики умудрялись вмещать огромные игровые миры в эти скромные 48 Кб.

Программы в те времена загружались с магнитофонной ленты. Причем, в отличии от самого Spectrum-а, магнитофоны и процесс загрузки с них вызывают гораздо меньше теплых воспоминаний - загрузка не всегда заканчивалась успешно, иногда игрушку приходилось грузить по несколько раз получая ошибку "R Tape loading error" регулируя положение головки магнитофона, прочищая ее поверхность одеколоном, либо, если совсем не повезло, вытаскивать из магнитофона "зажеванную" им кассету при этом с трудом сдерживая желание сильно стукнуть виновника апстену :)

Вообщем, если сам компьютер по сей день совсем не утратил своей актуальности и его хочется иметь в коллекции (причем, именно настоящий компьютер, а не эмулятор) чтобы запускать такие игры, как Elite, Saboteur, Exolon и т.д., то связываться с кассетным магнитофоном для загрузки программ хочется гораздо меньше (да к тому же, аудиокассеты сейчас достать уже не так просто). В качестве альтернативы можно использовать либо mp3-плеер, либо смартфон со специальной программой. Первый вариант неудобен тем, что в mp3-формате программы занимают гораздо больше места, чем в tap-файлы, оба варианта неудобны тем, что позволяют только воспроизводить, но не записывать TAP-файлы. А уметь сохранять TAP-файлы нужно хотя бы для того, чтобы сохранить свою набранную на бейсике программку или свое состояние в игре.

В качестве альтернативы аудиокассетам в наши дни напрашивается карта памяти, содержащая файлы программ в форматах TAP и TZX. А в качестве альтернативы магнитофону - микроконтроллерное устройство, способное эти файлы воспроизводить и записывать.

Схема магнитофона

Схема такого устройства приведена ниже:

Схема магнитофона для ZX Spectrum на ATMEGA128

Мангитофон выполнен на микроконтроллере ATMega128, работающий на тактовой частоте 16 МГц. Ресурсов этого МК должно быть вполне достаточно для реализации всего необходимого функционала и его совершенствованию в будущем.

Стабилизатор напряжения питания может быть выполнен либо на микросхеме IC2 либо на микросхеме IC3. На схеме изображены обе эти микросхемы, но в реальном устройстве должна быть установлена только одна из них, в зависимости от требуемого способа питания. Если устройство предполагается встроить непосредственно в компьютер либо питать от блока питания с напряжением не менее 5В, то микросхему IC2 (а также дроссель L1 и диод D1) надо исключить из схемы. Если же планируется питание от батареек / аккумуляторов, то из схемы следует исключить микросхему IC3. В последнем случае будет использоваться повышающий стабилизатор на микросхеме IC2, а для питания схемы будет достаточно одной-двух батареек / аккумуляторов на 1.5В. Однако, не смотря на то, что схема сможет работать от напряжения всего в 1В, рекомендую все же питать ее от двух аккумуляторов с суммарным напряжением 2.4В, т.к. только в этом случае схема работает устойчиво при включении светодиодной подсветки экрана (если же подсветка не нужна, то одного аккумулятора на 1.2В будет достаточно).

В качестве экрана используется дисплей от телефона Nokia 5110 с алиэкспресса, смонтированный на печатную плату. Для навигации по экранному меню служит 5-кнопочный джойстик.

Поскольку магнитофон может не только воспроизводить TAP-файлы, но и записывать их на SD-карту памяти, ему необходимы часы реального времени с автономным питанием чтобы проставлять дату-время модификации файла. Часы выполнены на микросхеме IC4, в качестве которой можно использовать PCF8583T либо PCF8563T (для чего разработаны две разные версии прошивки).

Устройство имеет динамик для прослушивания записываемых / воспроизводимых файлов. Громкость динамика можно регулировать переменным резистором. Но вообще, управление динамиком полностью программное и переменный резистор можно будет исключить а громкость настраивать в меню в будущих версиях прошивки.

Для подключения к Spectrum-у есть два разъема "мини-джек" - вход и выход.

После отладки схемы на макете были заказаны печатные платы в Китае. Внешний вид собранной платы спереди и сзади:

Внешний вид собранной печатной платы магнитофона для ZX Spectrum спереди

Внешний вид собранной печатной платы магнитофона для ZX Spectrum сзади

Магнитофон в сборе:

Внешний вид собранного магнитофона для ZX Spectrum

Прошивка и интерфейс

При включении магнитофона отображается главное меню:

Главное меню магнитофона для ZX Spectrum

Тут можно перейти, соответственно

  1. к воспроизведению TAP-файла с SD-карты
  2. к его сохранению с компьютера на карту
  3. к настройкам интерфейса магнитофона и параметров таймингов сигналов
  4. к просмотру информации об установленной SD-карте (размер и тип карты, свободное и занятое место, производитель и т.д.)
  5. к просмотру информации о магнитофоне и номера установленной версии прошивки

При выборе первого пункта следует переход к списку файлов и директорий на карте памяти. Из файлов показываются только .tap файлы, из директорий не показываются те, что начинаются с точки (т.е. скрытые директории).

Браузер файлов магнитофона для ZX Spectrum

После выбора файла начинается его загрузка. Тут можно видеть количество блоков в TAP-файле и текущий блок а также время, прошедшее с начала загрузки. Загрузку можно приостановить нажав Pause, при этом в режиме паузы клавишами вверх-вниз можно выбрать блок, с которого будет начато воспроизведение (актуально для игр с дозагружаемыми уровнями).

Загрузка TAP-файла

При сохранении файла на карту сначала вводится имя файла:

Ввод имени TAP-файла

Перемещение по экранной клавиатуре - курсором, ввод символа - центральная клавиша. Для отмены сохранения ввести пустое имя.

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

На экране настроек можно выбрать язык интерфейса (английский или русский), настроить звуки при нажатии клавиш, при воспроизведении и сохранении TAP-ов. Настройка подсветки экрана: всегда выключена, всегда включена и авто-режим - включается при нажатии на клавиши. Еще тут можно настроить скорость воспроизведения (x1, x2, x4, x8), ввести текущую дату и перейти к настройке временных параметров сигнала:

Экран настроек магнитофона для ZX Spectrum

На экране настроек временных параметров сигнала можно изменить

  • Pause: задержка между блоками в миллисекундах
  • Pilot: длительность сигнала пилота в миллисекундах
  • Pilot.l: длительность импульсов пилота в микросекундах
  • Sync 1: длительность первого синхроимпульса в микросекундах
  • Sync 2: длительность второго синхроимпульса в микросекундах
  • Data: длительность импульса данных (длительность передачи бита 0, бит 1 будет в два раза дольше)
  • Capture: режим захвата при получении данных от компьютера (по фронту или спаду импульса)

Так же тут можно сбросить параметры в значения по умолчанию или определить их по форме сигнала с компьютера.

Настройка таймингов магнитофона для ZX Spectrum

Предварительная настройка устройства

После первого включения магнитофона или обновления прошивки, возможно, потребуется настроить контрастность дисплея. Хотя, некоторые дисплеи показывают одинаково хорошо, вне зависимости от выбранного контраста. Если при включении экран дисплея показывает чёрный квадрат, или, наоборот, ничего не показывает, то настроить контрастность через меню не получится. В этом случае надо отключить питание, затем нажать и удерживать три клавиши - влево, вправо и среднюю одновременно включая питание. В случае успеха произвчит мелодия и магнитофон перейдёт в инженерное меню, где кнопками вверх/вниз можно точно выставить желаемый контраст, а средней кнопкой можно быстро менять его с шагом 10. Контраст меняется в диапазоне от 0 до 128. Затем, изменённое значение можно сохранить нажатием клавиши вправо.

Файлы

Далее по ссылкам можно скачать проект Eagle и прошивки.

Downloadzx-tape-loader-v1.1.3.zip (самая свежая)
Downloadzx-tape-loader-v1.1.2.zip
Downloadzx-tape-loader_8563_v1.1.hex (прошивка для PCF8563T)
Downloadzx-tape-loader_8583_v1.1.hex (прошивка для PCF8583T)
Downloadzx-tape-loader_8563_v1.1.1.hex (прошивка для PCF8583T)
DownloadПроект Eagle
DownloadСхема в pdf
DownloadСхема в png в большом разрешении
DownloadФьюзы

Рейтинг: 
0
Голосов еще нет

Комментарии

Доброго дня.

Понравилась ваша разработка для Спектрума. Захотелось собрать, но почитав форум, обратил внимание, что проект развивается и вылавливаются ошибки. Прошивка дошла до версии 1,1,5 и сделана для версии платы 1.2, а в статье, для изготовления плата версии 1.0. Вопрос: какие изменения нужно провести в плате версии 1.0, чтобы использовать версию прошивки 1.1.5 с исправленными ошибками?

С уважением, Дмитрий.

Здравствуйте! Кучу сайтов излазил, но так и не нашел информацию по тому как прошить PCF8583. Есть программатор TL 866II Plus, но в нем отсутствует программа для этой микросхемы. Сам только начинаю учиться работать с программаторами, потому не хватает знаний. Подскажите как можно прошить на этом программаторе PCF. За ранее благодарю.