User Tag List

Страница 11 из 17 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя
Показано с 101 по 110 из 164

Тема: ROM-плеер на ардуино

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,324
    Спасибо Благодарностей отдано 
    1,037
    Спасибо Благодарностей получено 
    820
    Поблагодарили
    491 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот. Основная идея не всех победить, а получить такой сборный загрузчик, который можно собрать себе по вкусу. Например, ценность загрузки по ЛВС или 0-момеду мне сейчас кажется нулевой, потому что я не собираю исторический (или мифический) КУВТ. А загрузчик, который бы понимал твой турбо-формат без предварительной загрузки загрузчика, иметь было бы ценно — особенно при том, что я в обозримом будущем предвижу какую-то низкоуровневую отладку на железе. Ну, или хотя бы загрузчик, который стабильно точно определяет временную постоянную так, что можно разогнать стандартный формат чуть шустрее. Или еще вариант: вместо существующих сейчас альтернативных способов загрузки сделать свой новый, который будет проще поддержать простенькой ардуиной ибо это то, что сейчас людям проще и ближе.

    - - - Добавлено - - -

    P.S. подумалось, что вообще надо делать плату эмулятора ПЗУ, которая будет ставиться в ту же колодку, но гибко позволять себя конфигурировать и грузить все на свете, в том числе из эфира. Разумеется, у меня все мысли сразу в сторону esp8266, видимо в упряжке с какой-то цплдовиной для сопряжения с шиной.
    Больше игр нет

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,714
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    320
    Поблагодарили
    223 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Вот. Основная идея не всех победить, а получить такой сборный загрузчик, который можно собрать себе по вкусу. Например, ценность загрузки по ЛВС или 0-момеду мне сейчас кажется нулевой...
    P.S. подумалось, что вообще надо делать плату эмулятора ПЗУ, которая будет ставиться в ту же колодку, но гибко позволять себя конфигурировать и грузить все на свете, в том числе из эфира. Разумеется, у меня все мысли сразу в сторону esp8266, видимо в упряжке с какой-то цплдовиной для сопряжения с шиной.
    Эмулятор ПЗУ подразумевает два подхода.
    Первый - загрузка с эмулятора по протоколу ПЗУ небольшого БИОСа, и дальше грузить автоматом интерфейс для работы с файлами на эмуляторе уже по другому протоколу.
    Второй - иметь очень быстрый доступ к файлу на эмуляторе что-бы успевать его заливать по стробам протокола ПЗУ, но иметь ограничение, что файл грузится только с адреса 0, и максимальный размер файла 32КБ.
    При этом эмулятор контроллера ЛВС или 0-модема (протокол не смотрел, но думаю он должен быть гибче протокола ПЗУ) лишены этих недостатков. Поток синхронизируемый с ожиданием готовности данных, адрес загрузки указан в служебной части протокола, размер файла... сколько загрузчик позволит.
    Так-что выбор в пользу протокола ПЗУ не так очевиден, по крайней мере для меня.

  4. #3

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,424
    Спасибо Благодарностей отдано 
    768
    Спасибо Благодарностей получено 
    2,374
    Поблагодарили
    1,322 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В качестве задачи первого этапа можно попробовать взять дизассемблирование и комментирование (хотя бы в важных местах) загрузчика Tim0xи (все же это самый современный вариант). В идеале загнать в условную компиляцию источники загрузки. Вполне подъемно, но не интересно (самый главный минус). Может займусь, или может еще кто захочет.
    Но если ты сделаешь эмулятор ПЗУ, загружаемый из всего на свете, то смысл ковырять загрузчик вобще потеряется.

  5. #4

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,714
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    320
    Поблагодарили
    223 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Посмотрел алгоритм ПУ-LPT.
    Всё просто.
    настройка портов Вектора: А,С - выход. В - вход.
    Данные передаются полубайтами, сначала младший. Для данных используется младшие биты порта В. Один бит порта В (бит 5, "1"-данные готовы) на флаг готовности данных, один бит порта С (бит 4, "0"-данные приняты) на подтверждение приёма.
    В потоке сначала передаются 55h, AAh, номер блока для загрузки, количество блоков. Далее сам файл. Контрольная сумма самого файла (которая вычисляется "исключающее ИЛИ" (XOR) контрольной суммы и принятого байта).

    Одно смущает, мне показалось, что после приёма каждого байта файла, вызывается подпрограмма, которая рисует весь "квадратик" на сетке загрузки - типа принято 256Байт...

    Можно будет в плеер добавить
    Последний раз редактировалось KTSerg; 07.03.2018 в 12:07.

  6. #5

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,070
    Спасибо Благодарностей отдано 
    588
    Спасибо Благодарностей получено 
    472
    Поблагодарили
    254 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Возвращаясь к rom-плееру... Вчера попробовал исследовать сигнал, за неимением осциллографа использовал аудиокарту ПК -- кривая сигнала получается "неописуемой красоты", все циклы чётко выдержаны, даже и не знаю, к чему там придраться... Единственное, что увидел, это то, что сигнал формируется в инверсном виде и, чисто теоретически, это может повлечь большее время обработки Вектором. Немного переделал скетч, но проверить на оборудовании его ещё не успел, хотя в тапире вав-ки для обоих вариантов выглядят хорошо.
    Вот результаты, для иллюстрации проделанного: Test_WAV.7z

    По-хорошему, надо бы ещё исследовать сигнал на выходе компаратора, но для этого, опять же, требуется осциллограф.

  7. #6

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,070
    Спасибо Благодарностей отдано 
    588
    Спасибо Благодарностей получено 
    472
    Поблагодарили
    254 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Итак, продолжаем... Снял wav-ку с Вектора на максимальной скорости вывода "copy v2.1", и, самое удивительное, напрямую с компа Вектор её грузит легко, в отличие от тех же сохранённых wav-ок с ардуины. Визуально они отличаются, вот картинка для сравнения (Вектор вверху):
    Нажмите на изображение для увеличения. 

Название:	WAVs.jpg 
Просмотров:	209 
Размер:	25.3 Кб 
ID:	64528

    Причём заметил, что кроме среза верхних частот, Вектор далеко не всегда чётко выдерживает интервалы, и это, как видно, для него не критично.

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

    Скрытый текст

    Нажмите на изображение для увеличения. 

Название:	IMG_20180302_202841~~.jpg 
Просмотров:	188 
Размер:	43.2 Кб 
ID:	64530
    [свернуть]

    Правда, не нашёл конденсатор 0,068 мкФ, поставил вместо него в полтора раза больший 0,1 мкФ -- результат отрицательный, т.е. улучшений нет. Пробовал исправить эквалайзером одну из ранее полученных с ардуины wav-ок, игрался и так, и эдак, доводил её даже до состояния, близкого с чистой синусоиде -- Вектор понимает и такую, но, опять же, не на максимальной скорости. :-(

    В общем, пока кроме поиска и установки правильного конденсатора, идей нет...

    Вот wav-ка, полученная с Вектора, может, кто поймёт, в чём его секрет? :-)

  8. #7

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,324
    Спасибо Благодарностей отдано 
    1,037
    Спасибо Благодарностей получено 
    820
    Поблагодарили
    491 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если вав записать с ардуины в компьютер и потом такую запись проиграть в Вектор? Если эту запись загрузить в эмулятор?
    Больше игр нет

  9. #8

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,070
    Спасибо Благодарностей отдано 
    588
    Спасибо Благодарностей получено 
    472
    Поблагодарили
    254 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Если вав записать с ардуины в компьютер и потом такую запись проиграть в Вектор? Если эту запись загрузить в эмулятор?
    В эмулятор не пробовал, только на живой Вектор -- и с компа не грузится, даже после обработки записи фильтрами. Загружает только если снизить скорость воспроизведения до 75-80% от исходной, т.е. получается на тех же ~256 мкс.

  10. #9

    Регистрация
    06.02.2018
    Адрес
    г. Волгоград
    Сообщений
    1,070
    Спасибо Благодарностей отдано 
    588
    Спасибо Благодарностей получено 
    472
    Поблагодарили
    254 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Игры с фильтрами/конденсаторами ничего не дают... Но заметил интересную особенность: сигнал с Вектора имеет небольшие задержки в передаче на границе каждого байта, примерно по 5 сэмплов на 96кГц, что равно ~50 мкс. Это можно заметить и на скриншоте, который я опубликовал выше, примерно в середине. Ардуина же напротив, чётко выдерживает все периоды. Вот, думаю, может в этом причина? Вот только надо придумать, как организовать такие задержки? Править задержку таймера на каждом байте?

    - - - Добавлено - - -

    О, да -- именно так и есть! Сейчас попробовал взять самый первый скетч и добавить туда задержку между байтами, и Вектор стал грузить на скоростях с полупериодом до 176 мкс, такой по скорости сигнал не давал ни один из копировщиков (речь идёт о стандартном формате ROM, не турбо).

    Теперь вопрос, как сделать это на таймере1?...

  11. #10

    Регистрация
    22.02.2014
    Адрес
    г. Курган
    Сообщений
    1,714
    Спасибо Благодарностей отдано 
    275
    Спасибо Благодарностей получено 
    320
    Поблагодарили
    223 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Improver Посмотреть сообщение
    Игры с фильтрами/конденсаторами ничего не дают... Но заметил интересную особенность: сигнал с Вектора имеет небольшие задержки в передаче на границе каждого байта, примерно по 5 сэмплов на 96кГц, что равно ~50 мкс. ... Ардуина же напротив, чётко выдерживает все периоды. Вот, думаю, может в этом причина?
    ...
    О, да -- именно так и есть! Сейчас попробовал взять самый первый скетч и добавить туда задержку между байтами, и Вектор стал грузить на скоростях с полупериодом до 176 мкс, такой по скорости сигнал не давал ни один из копировщиков (речь идёт о стандартном формате ROM, не турбо)....
    Тут можно пойти от обратного...
    Вектор грузит и выгружает не по таймеру, а по алгоритму с задержками.
    Соответственно, нужно расписать тайминги команд алгоритма чтения, и будет видно, где какие задержки должны быть для "оптимальной" по скорости загрузки.
    На границе байта задержка нужна для записи принятого байта в память, а при приёме 32 байт ещё и на отрисовку принятой строчки блока (квадратика) на экране. А после приёма всего блока (256Байт) ещё и на проверку все ли строки блока приняты без ошибок. А это "не хухры-мухры", там идёт преобразование адреса принимаемой строки (32Байт в ОЗУ) в адрес на экране, довольно много вычислений. И когда возвращается к приёму следующего байта... а он уже проскочил...
    Но можно нарваться и на то, что в разных загрузчиках, "стандартный формт" может отличаться "авторской оптимизацией"... и тайминги для одного загрузчика не подойдут к таймингам в другом...
    Я так думаю...

    А можно и не маяться и не считать тайминги алгоритма, а просто подключить логгер на сигнал "ЧТВУ" и магнитофонный вход ВВ55. И посмотреть на эти самые тайминги...
    Последний раз редактировалось KTSerg; 11.03.2018 в 07:22.

Страница 11 из 17 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Портативный AY плеер.
    от Руслан в разделе Звук
    Ответов: 1
    Последнее: 16.04.2014, 08:46
  2. Service rom + 128 basic rom
    от VELESOFT в разделе Оси
    Ответов: 1
    Последнее: 24.03.2013, 04:48
  3. Плеер для pt 3
    от Руслан в разделе Музыка
    Ответов: 25
    Последнее: 14.08.2012, 19:25
  4. Advanced ROM Manager (ROM Switvcher + Prof. ROM)
    от Alex_NEMO в разделе Память
    Ответов: 4
    Последнее: 04.10.2010, 11:43
  5. AY плеер
    от newart в разделе Звук
    Ответов: 19
    Последнее: 20.07.2006, 00:03

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •