Обсуждаем цифровые устройства...
Ответить

Эмулятор магнитофона для ZX-Spectrum

Пн мар 25, 2013 17:30:28

Если у вас есть старый спектрум который загружается исключительно с магнитофона, и вам интересно играть на нём "в живую", то вам может пригодиться описанное ниже устройство. Это устройство заменяет собой кассетный магнитофон. Конечно, магнитофон можно заменить и плейером. Но к сожалению, размеры файлов для плейера и необходимость создания этих файлов из распространённых форматов tap и tzx с помощью специальных программ могут несколько испортить удобство данного способа. Выход есть. Можно хранить на карте памяти tap-файлы программ (которых в инете просто огромное количество), а звуковой сигнал для спектрума просто генерировать микроконтроллером. И места такие файлы занимают очень мало. Вот для этого и было придумано представляемое ниже устройство. :)

В основе устройства микроконтроллер Atmega16. К нему подключаются дисплей, клавиши управления, SD-карта и микросхема динамической памяти MB81C4256 на 256 Книббл. Полных аналогов микросхеме памяти под другими названиями очень много, так что проблемы её поиск составить не должен (я вынул эту микросхему со старого 286 компьютера). В принципе, её можно заменить любой другой динамической памятью, но, возможно, потребуется небольшое изменение схемотехники и/или коррекция программы.

Внешний вид устройства:

Изображение

А так работает: http://www.youtube.com/watch?v=EgXSIcPx ... e=youtu.be

Вместо динамика я поставил пищалку от компьютера. Вот и всё. :)


Последняя версия прошивки: download/file.php?id=176396


photo.JPG
Фотография устройства. (В сравнении с печаткой нет конденсатора фильтрации питания).
(146.42 KiB) Скачиваний: 41846


ZXTapeEmulator.GIF
Схема.
(59.82 KiB) Скачиваний: 6981


ZXTapeEmulator-Firmware.rar
Прошивка. Версия 1.0.
(142.92 KiB) Скачиваний: 2501


ZXTapeEmulator-board.rar
Печатная плата в формате Layout 4.
(24.76 KiB) Скачиваний: 2289

Re: Эмулятор магнитофона для ZX-Spectrum

Пн мар 25, 2013 18:14:07

забавно...но я бы сделал иначе...просто перегнал бы с кассет на мр3 плеер ( гиг 8 щас копеек стоят)
а влезет игрух - туча...и потом мптришку вместо магнитофона....

Re: Эмулятор магнитофона для ZX-Spectrum

Пн мар 25, 2013 18:25:15

Делал и так. Всё равно неудобно. :) Объём большой выходит. Копируются и конвертируются 5000 игрушек долго. Да и перематывать их неудобно внутри файла (уровни подгружать и возвращаться к ним). А так - для 5000 файлов нужно около 250 МБ всего. :)

Re: Эмулятор магнитофона для ZX-Spectrum

Ср мар 27, 2013 00:30:23

такую бы херню да 20 лет назад
надо было тебе делать эмулятор дисковода

Re: Эмулятор магнитофона для ZX-Spectrum

Ср мар 27, 2013 04:59:35

Эмулятор дисковода я давно сделал. Он, правда, для амиги. Для спектрума я его адаптировать не могу - у меня нет спектрума с дисководом, чтобы проверить на реальном железе. Но я точно знаю, что всё, что там нужно - изменить прошивку в области расшифровки дискового образа в ОЗУ. Ну и изменить метод модуляции сигнала в функции выдачи данных из ОЗУ на линии дисковода. Все исходники я давно дал, но желающих их модифицировать под спектрум нет. :)

Re: Эмулятор магнитофона для ZX-Spectrum

Ср мар 27, 2013 05:25:57

Возьму на заметку :beer: все равно лежит Пентагон, надо бы его расшевелить.
А файлы с нета в карточку загружаешь?

Re: Эмулятор магнитофона для ZX-Spectrum

Ср мар 27, 2013 10:13:12

kalobyte писал(а):такую бы херню да 20 лет назад
надо было тебе делать эмулятор дисковода

как раз тогда и появились платы контроллера дисковода
на базе КР1818ВГ93
а затем и жесткого диска....

Re: Эмулятор магнитофона для ZX-Spectrum

Ср мар 27, 2013 16:52:45

А файлы с нета в карточку загружаешь?


Да. Обычные tap-файлы. У них очень просто формат. Блок состоит из двух байт размера блока и собственно, данные.

Да, карточка под FAT16 должна быть отформатирована. Ну и должна поддерживать SPI.

Вот ещё что. С дисплеем аккуратнее. У них есть WH1602A - у него полярность питания другая! Я один сжёг пока делал. Не обратил внимания... :?

Re: Эмулятор магнитофона для ZX-Spectrum

Вт апр 02, 2013 23:12:50

da-nie писал(а):Эмулятор дисковода я давно сделал. Он, правда, для амиги.


А можно где-нибудь на него посмотреть?

Re: Эмулятор магнитофона для ZX-Spectrum

Ср апр 03, 2013 15:32:10

а под атмега32 прошивочку можно переделать?
и чем заменить MB81C4256? на 4шт 565ру7 или на симм30?

а записывать на карту со спектрума сей девайс может? :)

Re: Эмулятор магнитофона для ZX-Spectrum

Ср апр 03, 2013 16:43:18

А можно где-нибудь на него посмотреть?


Конечно. Вот он: http://www.radiokot.ru/forum/viewtopic.php?f=2&t=79144

а под атмега32 прошивочку можно переделать?


Можно, конечно. Там просто имена некоторых регистров поменяются. Таймер T0, насколько я понимаю, работает так же. Собственно, вам надо будет просто в WinAVR компильнуть и посмотреть, на что ругается. Ну и, конечно, в makefile указать atmega32.

а записывать на карту со спектрума сей девайс может?


Нет, этого не может. Записывать, на мой взгляд, в целом бесполезно. :)

и чем заменить MB81C4256? на 4шт 565ру7 или на симм30?


Например: http://radio-hobby.org/modules/analog/mb81c4256

На 565ру7 так просто не выйдет. У неё раздельный вход и выход данных (DI и DO), а у MB81C4256 входы и выходы совмещены. Для ру7 нужен будет мультиплексор. Ну и надо проверять сильно ли регенерация отличается от MB81C4256. А вот SIMM30 можно взять. Там как раз входы и выходы совмещены.

Re: Эмулятор магнитофона для ZX-Spectrum

Сб апр 06, 2013 22:28:20

da-nie писал(а):Вот для этого и было придумано представляемое ниже устройство. :)
В основе устройства микроконтроллер Atmega16.


Вы как автор не будете против, если будут изготовлены несколько таких платок в Китае?
http://zx.pk.ru/showthread.php?t=18127&page=20

Re: Эмулятор магнитофона для ZX-Spectrum

Вс апр 07, 2013 08:27:49

Как автор, я не только не буду против, но и обоими руками буду за. :) Я для того, чтобы эту штуку могли дорабатывать и строить свои аналоги на других микросхемах, привёл в том числе и исходники прошивки с комментариями. :)
Кстати, если средняя кнопка не нужна (а она нужна была для ускоренного пролистывания файлов в меню и как пауза при воспроизведении), то её можно подключить к магнитофонному выходу спектрума. Кстати, для этого же можно приспособить и имеющийся выход, переключая его аппаратно на спектруме то к входу, то к выходу магнитофона. Таким образом, можно сделать загрузку в ОЗУ данных со спектрума (там просто надо считать импульсы до смены уровня и по их длительностям судить о данных). Вот дальше посложнее. Из ОЗУ всё это надо на SD в формате FAT16 записать. Я пока такого не умею, потому и не делал загрузку со спектрума. Надо подумать. :)

Re: Эмулятор магнитофона для ZX-Spectrum

Вс апр 21, 2013 18:56:22

Итак, я обновил прошивку. Теперь эмулятор может выдавать данные с 2-х и 4-х кратной скоростью.

Вот новая версия:
TapeEmulator.rar
Прошивка с поддержкой скорости x2 и x4
(144.64 KiB) Скачиваний: 1223


Для такой прошивки нужно новое ПЗУ спектрума.

Нужно заменить в штатном ПЗУ-48 следующие байты.

Для скорости в 2 раза больше:

Адрес:1409 Записать:206 Было: 156
Адрес:1416 Записать:227 Было: 198
Адрес:1424 Записать:228 Было: 201
Адрес:1432 Записать:236 Было: 212
Адрес:1446 Записать:216 Было: 176
Адрес:1479 Записать:217 Было: 178
Адрес:1487 Записать:229 Было: 203
Адрес:1492 Записать:215 Было: 176
Адрес:1512 Записать:5 Было: 22

После этого можно загружать с двухкратной скоростью. На запись это не распространяется.

Для скорости в 4 раза большей цифры другие:

Адрес:1409 Записать:231 Было: 156
Адрес:1416 Записать:241 Было: 198
Адрес:1424 Записать:242 Было: 201
Адрес:1432 Записать:245 Было: 212
Адрес:1446 Записать:236 Было: 176
Адрес:1479 Записать:237 Было: 178
Адрес:1487 Записать:243 Было: 203
Адрес:1492 Записать:236 Было: 176
Адрес:1512 Записать:1 Было: 22

Для тех, кому лень возиться с редактором, привожу готовые версии ПЗУ.

x2-turbo-2013.rar
С 2-х кратной скоростью загрузки
(12.67 KiB) Скачиваний: 1259


x4-turbo-2013.rar
С 4-х кратной скоростью загрузки
(12.67 KiB) Скачиваний: 1143


Видео, как сейчас всё это работает: http://www.youtube.com/watch?v=xlYe3kVi ... e=youtu.be

Re: Эмулятор магнитофона для ZX-Spectrum

Сб апр 27, 2013 08:00:14

Кстати, если кому интересно, как расшифровывать звуковой сигнал со спектрума, то вот моя программа для расшифровки аудиофайлов кассет.
Сначала данные пропускаются через полосовой фильтр (уже и не помню частоты среза :oops: ), затем отсекаются с гистерезисом, а уже потом расшифровываются. Обычно, считывают только по одному каналу.
Программа формирует текстовые файлы вида:


Чтобы из этого сделать tap нужно обработать такой файл программой HEX2BIN, находящейся в комплекте.
Но перед этим нужно текстовый файл превратить в следующий вид:



То есть, убрать все заголовки. Два числа "13 00" - это длина блока.
Программа не создаёт сразу tap-файлы потому что, обычно, это бесполезно - при разных настройках будет удаваться считать разные блоки. Их нужно будет сшивать в едином текстовом файле из которого затем нужно делать tap-файл.
Ну вот и всё, собственно. :)

Функция фильтра находится в файле CTape.cpp. Сами фильтры можно формировать прилагающейся программой WinFilter (частота семплирования 44100).

Wav2Tap_Converter.rar
(223.31 KiB) Скачиваний: 1444

Re: Эмулятор магнитофона для ZX-Spectrum

Вт апр 30, 2013 19:02:21

Кстати,тем, кто будет собирать, советую провести небольшую модернизацию этого устройства. У меня сейчас вылетела К561ЛН2 на магнитофонном входе (в моём композите стоит именно она вместо операционника). Видно, ей 0-5В много. Следовательно, имеет некоторый смысл поставить, например, делитель напряжения на выходе. Ну а я, в свою очередь, просто отключил эту ЛН2 и припаял выход непосредственно к входу К555КП11.

Re: Эмулятор магнитофона для ZX-Spectrum

Вт июл 30, 2013 07:13:58

Потихоньку двигаюсь к сборке эмулятора :)
Не хочу создавать новую тему т.к очень редкие,
от доброго кота достался ZX-spectrum, модель не знаю,наверное Пентагон(с недособранным контроллером дисковода)
пока только пытаюсь запустить сам ZX,
Яркости нет, резистор стоял на входе-выкинул, все равно как-то тускло
подключил через SCART: от Y подцеплял какие-то помехи,
сигнал идет изнутри платы и RGB подцепил, видно нормально только в инверсии, тумблер есть на корпусе.
В инверсии видно! в нормальном режиме БОТВА плохо видно
кто-нибудь подключал через SCART?
Вложения
1ф.JPG
(120.48 KiB) Скачиваний: 2200
2ф.JPG
(135.11 KiB) Скачиваний: 2265
3ф.JPG
(162.85 KiB) Скачиваний: 1963

Re: Эмулятор магнитофона для ZX-Spectrum

Вт июл 30, 2013 18:30:10

подключил через SCART: от Y подцеплял какие-то помехи,


Так Y надо было примешивать к синхросигналу через диоды. :?

видно нормально только в инверсии


А там КП14 или КП11 мультиплексор цвета? Если одну на другую менять, то инверсия будет. Но если у вас всё правильно, то нужно просто проинвертировать сигналы.

в нормальном режиме БОТВА плохо видно


В нормальном, это проинвертированном? Тогда, может, не все сигналы нужно инвертировать.

Re: Эмулятор магнитофона для ZX-Spectrum

Вт июл 30, 2013 18:37:41

http://zxbyte.ru/pentagon48.htm
а вообще, помню, на скарт никогда не подключал...выводил гнездо прямо с МЦ

Re: Эмулятор магнитофона для ZX-Spectrum

Вт июл 30, 2013 18:56:36

Как я понял по вашей ссылке выходы сделаны повторителями, но в композите, например, перед смешением сигналы инвертировались. Вот так:

Ответить