ZX Spectrum - компьютер, созданный более 30 лет назад с 3.5 МГц процессором и всего лишь 48 Кб ОЗУ, под который написано огромное количество игр (да и прикладного софта тоже), в которые интересно играть даже сегодня. При том, что эти игры часто представляют собой мегашедевры с точки зрения программирования и оптимизации кода, их разработчики умудрялись вмещать огромные игровые миры в эти скромные 48 Кб.
Программы в те времена загружались с магнитофонной ленты. Причем, в отличии от самого Spectrum-а, магнитофоны и процесс загрузки с них вызывают гораздо меньше теплых воспоминаний - загрузка не всегда заканчивалась успешно, иногда игрушку приходилось грузить по несколько раз получая ошибку "R Tape loading error" регулируя положение головки магнитофона, прочищая ее поверхность одеколоном, либо, если совсем не повезло, вытаскивать из магнитофона "зажеванную" им кассету при этом с трудом сдерживая желание сильно стукнуть виновника апстену :)
Вообщем, если сам компьютер по сей день совсем не утратил своей актуальности и его хочется иметь в коллекции (причем, именно настоящий компьютер, а не эмулятор) чтобы запускать такие игры, как Elite, Saboteur, Exolon и т.д., то связываться с кассетным магнитофоном для загрузки программ хочется гораздо меньше (да к тому же, аудиокассеты сейчас достать уже не так просто). В качестве альтернативы можно использовать либо mp3-плеер, либо смартфон со специальной программой. Первый вариант неудобен тем, что в mp3-формате программы занимают гораздо больше места, чем в tap-файлы, оба варианта неудобны тем, что позволяют только воспроизводить, но не записывать TAP-файлы. А уметь сохранять TAP-файлы нужно хотя бы для того, чтобы сохранить свою набранную на бейсике программку или свое состояние в игре.
В качестве альтернативы аудиокассетам в наши дни напрашивается карта памяти, содержащая файлы программ в форматах TAP и TZX. А в качестве альтернативы магнитофону - микроконтроллерное устройство, способное эти файлы воспроизводить и записывать.
Схема такого устройства приведена ниже:
Мангитофон выполнен на микроконтроллере 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-у есть два разъема "мини-джек" - вход и выход.
После отладки схемы на макете были заказаны печатные платы в Китае. Внешний вид собранной платы спереди и сзади:
Магнитофон в сборе:
При включении магнитофона отображается главное меню:
Тут можно перейти, соответственно
При выборе первого пункта следует переход к списку файлов и директорий на карте памяти. Из файлов показываются только .tap файлы, из директорий не показываются те, что начинаются с точки (т.е. скрытые директории).
После выбора файла начинается его загрузка. Тут можно видеть количество блоков в TAP-файле и текущий блок а также время, прошедшее с начала загрузки. Загрузку можно приостановить нажав Pause, при этом в режиме паузы клавишами вверх-вниз можно выбрать блок, с которого будет начато воспроизведение (актуально для игр с дозагружаемыми уровнями).
При сохранении файла на карту сначала вводится имя файла:
Перемещение по экранной клавиатуре - курсором, ввод символа - центральная клавиша. Для отмены сохранения ввести пустое имя.
После ввода имени устройство будет ожидать начала передачи с компьютера. Затем, на экране будут выводиться номера и размеры принятых блоков.
На экране настроек можно выбрать язык интерфейса (английский или русский), настроить звуки при нажатии клавиш, при воспроизведении и сохранении TAP-ов. Настройка подсветки экрана: всегда выключена, всегда включена и авто-режим - включается при нажатии на клавиши. Еще тут можно настроить скорость воспроизведения (x1, x2, x4, x8), ввести текущую дату и перейти к настройке временных параметров сигнала:
На экране настроек временных параметров сигнала можно изменить
Так же тут можно сбросить параметры в значения по умолчанию или определить их по форме сигнала с компьютера.
После первого включения магнитофона или обновления прошивки, возможно, потребуется настроить контрастность дисплея. Хотя, некоторые дисплеи показывают одинаково хорошо, вне зависимости от выбранного контраста. Если при включении экран дисплея показывает чёрный квадрат, или, наоборот, ничего не показывает, то настроить контрастность через меню не получится. В этом случае надо отключить питание, затем нажать и удерживать три клавиши - влево, вправо и среднюю одновременно включая питание. В случае успеха произвчит мелодия и магнитофон перейдёт в инженерное меню, где кнопками вверх/вниз можно точно выставить желаемый контраст, а средней кнопкой можно быстро менять его с шагом 10. Контраст меняется в диапазоне от 0 до 128. Затем, изменённое значение можно сохранить нажатием клавиши вправо.
Далее по ссылкам можно скачать проект Eagle и прошивки.
Комментарии
ydmitry
пн, 10/26/2020 - 12:34
Постоянная ссылка (Permalink)
Отличия версий платы 1,0 от версии 1,2
Доброго дня.
Понравилась ваша разработка для Спектрума. Захотелось собрать, но почитав форум, обратил внимание, что проект развивается и вылавливаются ошибки. Прошивка дошла до версии 1,1,5 и сделана для версии платы 1.2, а в статье, для изготовления плата версии 1.0. Вопрос: какие изменения нужно провести в плате версии 1.0, чтобы использовать версию прошивки 1.1.5 с исправленными ошибками?
С уважением, Дмитрий.
Shurikvishnyakov
пн, 05/24/2021 - 03:08
Постоянная ссылка (Permalink)
Прошивка pcf8583.
Здравствуйте! Кучу сайтов излазил, но так и не нашел информацию по тому как прошить PCF8583. Есть программатор TL 866II Plus, но в нем отсутствует программа для этой микросхемы. Сам только начинаю учиться работать с программаторами, потому не хватает знаний. Подскажите как можно прошить на этом программаторе PCF. За ранее благодарю.
Tomich
чт, 05/02/2024 - 13:34
Постоянная ссылка (Permalink)
Магнитофон
Нашел как-то старую плату спектрума Ленинград-2. Собрал, настроил. Решил Собрать магнитофон для него. Вот нашел эту страницу. Собрал магнитофон используя прошивку zx-tape-loader_8583_hwv-1_2.hex из архива zx-tape-loader-v1.1.3.zip
Правда плату развел свою и заказывал ее у китайцев. Магнитофон в принципе заработал, вот только дата и время слетает после отключения питания. Батарейка на часах есть, питание часов после отключения основного питания тоже есть. Решил попробовать прошивки старых версий в том числе и для микросхемы PCF8563. В итоге выяснил что все файлы в архиве абсолютно одинаковы! Что файлы с разными версиями, что файлы для разных чипов часов. Абсолютно одинаковы! ВОПРОС ПОЧЕМУ? Второй вопрос почему слетает время и дата на часах после выключения питания? Сбрасывается на одно и тоже время и год 2015. Ответить можно на электронную почту decoder@list.ru
Пока жду ответа решил написать свою программу для работы с часами PCF8583 чтобы проверить может она работать с питанием от батарейки или нет. В pdf на нее я не нашел упоминания на возможность работы от батарейки в отличии от pdf на PCF8563 где даже приведена схема подключения.