Например TDA7294

Форум РадиоКот :: Просмотр темы - Эмулятор магнитофона для ZX-Spectrum
Форум РадиоКот
https://radiokot.ru/forum/

Эмулятор магнитофона для ZX-Spectrum
https://radiokot.ru/forum/viewtopic.php?f=2&t=87308
Страница 1 из 30

Автор:  da-nie [ Пн мар 25, 2013 17:30:28 ]
Заголовок сообщения:  Эмулятор магнитофона для ZX-Spectrum

Если у вас есть старый спектрум который загружается исключительно с магнитофона, и вам интересно играть на нём "в живую", то вам может пригодиться описанное ниже устройство. Это устройство заменяет собой кассетный магнитофон. Конечно, магнитофон можно заменить и плейером. Но к сожалению, размеры файлов для плейера и необходимость создания этих файлов из распространённых форматов 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]
Скачиваний: 42005


Вложение:
Комментарий к файлу: Схема.
ZXTapeEmulator.GIF [59.82 KiB]
Скачиваний: 7010


Вложение:
Комментарий к файлу: Прошивка. Версия 1.0.
ZXTapeEmulator-Firmware.rar [142.92 KiB]
Скачиваний: 2511


Вложение:
Комментарий к файлу: Печатная плата в формате Layout 4.
ZXTapeEmulator-board.rar [24.76 KiB]
Скачиваний: 2305

Автор:  Maykill [ Пн мар 25, 2013 18:14:07 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  da-nie [ Пн мар 25, 2013 18:25:15 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  kalobyte [ Ср мар 27, 2013 00:30:23 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  da-nie [ Ср мар 27, 2013 04:59:35 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  Ратмир [ Ср мар 27, 2013 05:25:57 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  Maykill [ Ср мар 27, 2013 10:13:12 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

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

Автор:  da-nie [ Ср мар 27, 2013 16:52:45 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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


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

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

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

Автор:  acidrave [ Вт апр 02, 2013 23:12:50 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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


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

Автор:  AHTuXPuCT [ Ср апр 03, 2013 15:32:10 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

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

Автор:  da-nie [ Ср апр 03, 2013 16:43:18 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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


Конечно. Вот он: 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 можно взять. Там как раз входы и выходы совмещены.

Автор:  Astrolux [ Сб апр 06, 2013 22:28:20 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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


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

Автор:  da-nie [ Вс апр 07, 2013 08:27:49 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  da-nie [ Вс апр 21, 2013 18:56:22 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Вот новая версия:
Вложение:
Комментарий к файлу: Прошивка с поддержкой скорости x2 и x4
TapeEmulator.rar [144.64 KiB]
Скачиваний: 1230


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

Нужно заменить в штатном ПЗУ-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

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

Вложение:
Комментарий к файлу: С 2-х кратной скоростью загрузки
x2-turbo-2013.rar [12.67 KiB]
Скачиваний: 1262


Вложение:
Комментарий к файлу: С 4-х кратной скоростью загрузки
x4-turbo-2013.rar [12.67 KiB]
Скачиваний: 1150


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

Автор:  da-nie [ Сб апр 27, 2013 08:00:14 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

Кстати, если кому интересно, как расшифровывать звуковой сигнал со спектрума, то вот моя программа для расшифровки аудиофайлов кассет.
Сначала данные пропускаются через полосовой фильтр (уже и не помню частоты среза :oops: ), затем отсекаются с гистерезисом, а уже потом расшифровываются. Обычно, считывают только по одному каналу.
Программа формирует текстовые файлы вида:
Спойлер
Код:
-----Синхросигнал принят -----
Время начала в файле:281 с.
Считано:19 (0x0013) байт
Bytes:FONT     
13 00
00 03 46 4f 4e 54 20 20 20 20 20 20 00 03 35 cc 00 80 6a
Ошибок нет.

-----Синхросигнал принят -----
Время начала в файле:291 с.
Считано:770 (0x0302) байт
02 03
ff 00 00 00 00 00 00 00 00 00 10 10 10 10 00 10 00 00 24 24 00 00 00 00 00 00 24 7e 24 24
7e 24 00 08 3e 20 3e 02 02 3e 08 00 62 64 08 10 26 46 00 3c 20 24 7e 44 44 7c 00 00 08 10
00 00 00 00 00 04 08 08 08 08 08 08 04 20 10 10 10 10 10 10 20 00 00 14 08 3e 08 14 00 00
00 08 08 3e 08 08 00 00 00 00 00 00 08 08 10 00 00 00 00 3e 00 00 00 00 00 00 00 00 18 18
00 00 00 02 04 08 10 20 00 00 7e 46 4a 52 62 7e 00 00 18 08 08 08 08 08 00 00 7e 42 02 7e
40 7e 00 00 7e 42 1c 02 42 7e 00 00 0c 14 24 44 7e 04 00 00 7e 40 7e 02 42 7e 00 00 7e 40
7e 42 42 7e 00 00 7c 04 04 1c 10 10 00 00 7e 42 3c 42 42 7e 00 00 7e 42 42 7e 02 7e 00 00
00 00 10 00 00 10 00 00 00 00 10 00 00 10 20 00 00 04 08 10 08 04 00 00 00 00 3e 00 3e 00
00 00 00 10 08 04 08 10 00 00 7e 42 1e 10 00 10 00 00 00 5e 52 72 52 5e 00 00 7e 42 42 7e
42 42 00 00 7e 40 7e 42 42 7e 00 00 44 44 44 44 44 7e 02 00 3e 22 22 22 22 7f 00 00 7e 40
7c 40 40 7e 00 00 7f 49 49 49 49 7f 00 00 7e 42 42 40 40 40 00 00 42 24 18 24 42 42 00 00
42 46 4a 52 62 42 00 18 42 46 4a 52 62 42 00 00 42 44 78 44 42 42 00 00 0e 12 22 22 22 42
00 00 42 66 5a 42 42 42 00 00 42 42 7e 42 42 42 00 00 7e 42 42 42 42 7e 00 00 7e 42 42 42
42 42 00 00 7e 42 42 7e 22 42 00 00 7e 42 42 7e 40 40 00 00 7e 42 40 40 42 7e 00 00 7f 49
08 08 08 08 00 00 42 42 42 7e 02 7e 00 00 49 7f 08 7f 49 49 00 00 7e 42 7c 42 42 7e 00 00
40 40 7e 42 42 7e 00 00 41 41 7d 45 45 7d 00 00 7e 02 0c 02 02 7e 00 00 49 49 49 49 49 7f
00 00 7e 02 02 0e 02 7e 00 00 00 41 49 49 49 7f 00 00 42 42 42 7e 02 02 00 00 00 00 00 00
00 00 ff 00 00 42 42 7e 02 02 00 00 00 7e 02 7e 42 7e 00 00 00 1e 20 7e 42 7e 00 00 00 42
42 42 42 7f 01 00 00 3e 22 22 22 7f 00 00 00 7e 42 7e 40 7e 00 00 00 7f 49 49 49 7f 08 00
00 7e 42 40 40 40 00 00 00 42 24 18 24 42 00 00 00 42 42 4e 72 42 00 00 18 42 42 4e 72 42
00 00 00 42 44 78 44 42 00 00 00 06 1a 22 42 42 00 00 00 42 66 5a 42 42 00 00 00 42 42 7e
42 42 00 00 00 7e 42 42 42 7e 00 00 00 7e 42 42 42 42 00 00 00 7e 42 7e 22 42 00 00 00 7e
42 7e 40 40 40 00 00 7e 42 40 42 7e 00 00 00 7f 49 08 08 08 00 00 00 42 24 18 08 10 10 00
00 49 2a 1c 2a 49 00 00 00 7e 42 7c 42 7e 00 00 00 40 40 7e 42 7e 00 00 00 42 42 7a 4a 7a
00 00 00 7e 42 1c 42 7e 00 00 41 49 49 49 49 7f 01 00 00 7e 02 1e 02 7e 00 00 00 49 49 49
49 7f 01 00 14 28 00 00 00 00 00 00 5e 52 52 72 52 5e 00 24
Ошибок нет.


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

Спойлер
Код:
13 00
00 03 46 4f 4e 54 20 20 20 20 20 20 00 03 35 cc 00 80 6a

02 03
ff 00 00 00 00 00 00 00 00 00 10 10 10 10 00 10 00 00 24 24 00 00 00 00 00 00 24 7e 24 24
7e 24 00 08 3e 20 3e 02 02 3e 08 00 62 64 08 10 26 46 00 3c 20 24 7e 44 44 7c 00 00 08 10
00 00 00 00 00 04 08 08 08 08 08 08 04 20 10 10 10 10 10 10 20 00 00 14 08 3e 08 14 00 00
00 08 08 3e 08 08 00 00 00 00 00 00 08 08 10 00 00 00 00 3e 00 00 00 00 00 00 00 00 18 18
00 00 00 02 04 08 10 20 00 00 7e 46 4a 52 62 7e 00 00 18 08 08 08 08 08 00 00 7e 42 02 7e
40 7e 00 00 7e 42 1c 02 42 7e 00 00 0c 14 24 44 7e 04 00 00 7e 40 7e 02 42 7e 00 00 7e 40
7e 42 42 7e 00 00 7c 04 04 1c 10 10 00 00 7e 42 3c 42 42 7e 00 00 7e 42 42 7e 02 7e 00 00
00 00 10 00 00 10 00 00 00 00 10 00 00 10 20 00 00 04 08 10 08 04 00 00 00 00 3e 00 3e 00
00 00 00 10 08 04 08 10 00 00 7e 42 1e 10 00 10 00 00 00 5e 52 72 52 5e 00 00 7e 42 42 7e
42 42 00 00 7e 40 7e 42 42 7e 00 00 44 44 44 44 44 7e 02 00 3e 22 22 22 22 7f 00 00 7e 40
7c 40 40 7e 00 00 7f 49 49 49 49 7f 00 00 7e 42 42 40 40 40 00 00 42 24 18 24 42 42 00 00
42 46 4a 52 62 42 00 18 42 46 4a 52 62 42 00 00 42 44 78 44 42 42 00 00 0e 12 22 22 22 42
00 00 42 66 5a 42 42 42 00 00 42 42 7e 42 42 42 00 00 7e 42 42 42 42 7e 00 00 7e 42 42 42
42 42 00 00 7e 42 42 7e 22 42 00 00 7e 42 42 7e 40 40 00 00 7e 42 40 40 42 7e 00 00 7f 49
08 08 08 08 00 00 42 42 42 7e 02 7e 00 00 49 7f 08 7f 49 49 00 00 7e 42 7c 42 42 7e 00 00
40 40 7e 42 42 7e 00 00 41 41 7d 45 45 7d 00 00 7e 02 0c 02 02 7e 00 00 49 49 49 49 49 7f
00 00 7e 02 02 0e 02 7e 00 00 00 41 49 49 49 7f 00 00 42 42 42 7e 02 02 00 00 00 00 00 00
00 00 ff 00 00 42 42 7e 02 02 00 00 00 7e 02 7e 42 7e 00 00 00 1e 20 7e 42 7e 00 00 00 42
42 42 42 7f 01 00 00 3e 22 22 22 7f 00 00 00 7e 42 7e 40 7e 00 00 00 7f 49 49 49 7f 08 00
00 7e 42 40 40 40 00 00 00 42 24 18 24 42 00 00 00 42 42 4e 72 42 00 00 18 42 42 4e 72 42
00 00 00 42 44 78 44 42 00 00 00 06 1a 22 42 42 00 00 00 42 66 5a 42 42 00 00 00 42 42 7e
42 42 00 00 00 7e 42 42 42 7e 00 00 00 7e 42 42 42 42 00 00 00 7e 42 7e 22 42 00 00 00 7e
42 7e 40 40 40 00 00 7e 42 40 42 7e 00 00 00 7f 49 08 08 08 00 00 00 42 24 18 08 10 10 00
00 49 2a 1c 2a 49 00 00 00 7e 42 7c 42 7e 00 00 00 40 40 7e 42 7e 00 00 00 42 42 7a 4a 7a
00 00 00 7e 42 1c 42 7e 00 00 41 49 49 49 49 7f 01 00 00 7e 02 1e 02 7e 00 00 00 49 49 49
49 7f 01 00 14 28 00 00 00 00 00 00 5e 52 52 72 52 5e 00 24


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

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

Вложение:
Wav2Tap_Converter.rar [223.31 KiB]
Скачиваний: 1449

Автор:  da-nie [ Вт апр 30, 2013 19:02:21 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  Ратмир [ Вт июл 30, 2013 07:13:58 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

Потихоньку двигаюсь к сборке эмулятора :)
Не хочу создавать новую тему т.к очень редкие,
от доброго кота достался ZX-spectrum, модель не знаю,наверное Пентагон(с недособранным контроллером дисковода)
пока только пытаюсь запустить сам ZX,
Яркости нет, резистор стоял на входе-выкинул, все равно как-то тускло
подключил через SCART: от Y подцеплял какие-то помехи,
сигнал идет изнутри платы и RGB подцепил, видно нормально только в инверсии, тумблер есть на корпусе.
В инверсии видно! в нормальном режиме БОТВА плохо видно
кто-нибудь подключал через SCART?

Вложения:
1ф.JPG [120.48 KiB]
Скачиваний: 2213
2ф.JPG [135.11 KiB]
Скачиваний: 2272
3ф.JPG [162.85 KiB]
Скачиваний: 1974

Автор:  da-nie [ Вт июл 30, 2013 18:30:10 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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


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

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


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

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


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

Автор:  Maykill [ Вт июл 30, 2013 18:37:41 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

Автор:  da-nie [ Вт июл 30, 2013 18:56:36 ]
Заголовок сообщения:  Re: Эмулятор магнитофона для ZX-Spectrum

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

СпойлерИзображение

Страница 1 из 30 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/