Важная информация

User Tag List

Страница 1 из 22 12345 ... ПоследняяПоследняя
Показано с 1 по 10 из 217

Тема: Прикрутить YM2149F к IBM-PC?

  1. #1
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Прикрутить YM2149F к IBM-PC?

    Заказал пару YM2149F из китая. Одна будет стоять в ПК "Дуэт" в виде отдельной платы, вставляющейся в слот расширения. Вторая YM2149F типа запасная, но вот подумалось - нельзя ли ее как-то прикрутить к PC ? Ну не знаю, в качестве ISA-8 платы или с помощью топора, LTP-порта и какого-нибуть микроконтроллера? А то чего оно будет просто так лежать....

    UPD 10.01.2015:
    В результате этой темы сначала подключил YM к LPT (схема здесь), а затем захотелось подключить и к USB. В итоге получилось следующее:



    Используемый микроконтроллер - дешевый старенький PIC16F628A, без аппаратного USB. Используется программная реализация USB 1.1 с помощью библиотеки 16fusb . В качестве проигрывателя выступает знаменитый ZX Tune. Напрямую он не поддерживает AY-USB, зато если находит у себя в директории одну из библиотек dlportio.dll/inpout32.dll/inpoutx64.dll , то позволяет переключится в настройках вывода звука на YM-LPT, а затем использует функцию __stdcall void DlPortWritePortUchar(unsigned short port, unsigned char val); для выдачи байт YM2149.



    Так, если написать библиотеку-заглушку с этой функцией, то возможно перенаправлять вывод байт на USB устройство. Что я и сделал, взял за основу исходники inpout32. На выходе получаются библиотеки inpout32.dll или inpoutx64.dll, в зависимости от используемой версии плеера (x86/x64). Они уже есть в скомпилированном виде в приложенном архиве, достаточно одну их них скопировать в папку с ZX Tune, запустить плеер, зайти в настройки звука и переместить на самый верх устройство "aylpt".

    Драйвера для Win XP, Win 7 x86/x64 скачиваются здесь: http://16fusb.googlecode.com/files/1...32-1.2.6.0.zip

    Уже скомпилированная прошивка для PIC, библиотеки inpout32.dll/inpoutx64.dll . Так же выложены исходники прошивки, исходники библиотеки-заглушки и конечно схема устройства.

    Немного по схеме

    для тактирования PIC применен кварцевый генератор, а не кварц, тем самым высвобождая одну ногу МК (RA6), необходимую для управления сигналом RESET. Нога RA5, торчащая в воздухе, в данном семействе работает только на вход и не может быть использована для управления выходным сигналом. Можно было бы попробовать ее (ногу RA5) использовать как входной сигнал U+ или U- USB, но в обработчике прерывания тогда бы увеличилась задержка из-за разбросанности на разных портах (порт A и порт B) сигналов, что скорее всего привело бы к неработоспособности USB стека. Хотя не отрицаю, что возможно бы и получилось перенести с ноги RB2 функционал на RA5, а RB2 использовать для управления RESET, а МК тактовать просто от кварца. Но, как получилось. С другой стороны, для тактирования YM2149F собран генератор на микросхеме 74HC02 и кварце 3.579545 MHz. Можно было бы попробовать использовать вторую свободную половину микросхемы для сборки аналогичного генератора и для PIC, но остановило два момента: 1) у меня нету кварца на 24МГц (а кварцевый генератор был, с какой-то древней мамки) 2) я не знаю, как поведет себя 74HC02, если с "разных боков" у нее будут разные частоты, причем одна из них довольно высокая (24МГц все таки большая частота).

    Дальше, нога RA4, которая управляет сигналом BDIR, с открытым коллектором, поэтому ее обязательно нужно подтянуть к питанию - на схеме это 10K резистор R5.
    [свернуть]


    Немного деталей по прошивке

    Прошивка базируется на оригинале библиотеки 16FUSB, но многое подогнано "под себя":
    - выкинуто все, что связано с чтением сигналов из PIC в хост (компьютер) для увеличения быстродействия обработки реквестов USB;
    - состояние направлений портов ввода-вывода жёстко задано при инициализации МК и не изменяется в процедурах выдачи байта на ноги.
    - организован кольцевой буфер на 30 байт. При декодировании запроса от хоста байты складываются в буфер. Когда есть свободное время, данные из буфера выдаются на YM.
    - дичайше оптимизирована скорость выдачи байта на ноги МК. Частично за счет жестко указанных направлений ввода-вывода, частично из-за известности предыдущего состояния управляющих бит.
    - что-то еще по мелочи.
    UPD: 17.01.2015:
    - Пофикшен глюк с зацикливанием PIC через несколько тысяч пакетов (развернут цикл RxLoop в файле isr.asm, вместо goto RxLoop вставлена проверка на признак конца пакета)
    - Теперь данные передаются сразу по 16 байт, то есть два дата-пакета USB без UBR по 8 байт. Буфер в контроллере расширен до 64 байт.
    [свернуть]


    Про стабильность и скорость: Сначала было ооочень медленно, потом было медленно и, наконец стало нормально. Проверил на двух машинах - одна с Win7 x64 быстрая современная, другая - ноут с Win XP на атоме. Работает одинаково и там и там. Но не исключаю, что на какой-то другой конфигурации может вести себя по другому, поэтому собирая устройство помните - вы делаете это на свой страх и риск.

    PS: К ПК "Дуэт" тоже подключил YM, как и хотел. Тут подробнее:тема про Дуэт
    Вложения Вложения
    Последний раз редактировалось Tronix; 17.01.2015 в 11:15.

  2. Этот пользователь поблагодарил Tronix за это полезное сообщение:

    nimdasys_inbox_ru (01.05.2020)

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

  4. #2
    Veteran Аватар для Hacker VBI
    Регистрация
    05.03.2013
    Адрес
    г. Канев, Украина
    Сообщений
    1,596
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    а смысл
    "наличие готового программного обеспечения для нового компьютера в наши дни имеет мало смысла."
    "Еще вопрос - почему на Спектруме большинство звуков на AY булькающие ? Как это исправить ?"
    (c) zst

  5. #3
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Играть AY музыку на него....

  6. #4
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    AY-LPT давно существует, хотя устарел сильно. к усб тоже были попытки цеплять, только вот софта нет.

  7. #5
    Master
    Регистрация
    04.12.2008
    Адрес
    г. Черкассы, Украина
    Сообщений
    957
    Спасибо Благодарностей отдано 
    4
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    8 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Back to the Future. Глубокий смысл в этом есть...

    • ayplayer
      Sound player for popular ZX Spectrum formats for AY8910 sound chip on LTP port or with software emulation.
    • LPT AY by Vitaly Mayatskih & Alexander Kulik [Wolf^eTc/Scene]
      In same day I built this little board, connected to PC and wrote plug-in
      for Zx-Spectrum emulator by Shalaev.
      Совсем недавно в эхе ZX.Spectrum была затpонута тема подключения музыкального пpоцессоpа AY к паpаллельному поpту LPT. Меня это очень заинтеpесовало и я отписался от эхи что-бы завеpшить pаботу над нашими пpоектами, а также осуществить подключение AY к LPT поpту. И тут ко мне пpишло письмо от Vitaly Mayatskih с уже готовой схемой подключения. После ее пpосмотpа, я пpоизвел небольшое изменение в плане pеализации сигнала Select. В пеpвоначальной ваpианте необходимо было подключать к 13 выводу поpта, а я заменил на 17 вывод, т.к. Select (13) pаботает только в pежиме input. И еще были добавлены два резистора и два конденсатора, вместо одного резистора . После этого, я нагpел свой паяльник и спаял эту схему, в тот же день я ее отладил и написал plug-in к Шалаеву.
      Оказалось что самое сложное, в реализации этой схеме, так это найти
      лишний AY-8910
    • Эмулятор AY-8910 на ATMega
    • Wild Sound...
    • ZX Spectrum Computer Sound Chip Emulator
      Схема подключения YM2149F к порту принтера (LPT) PC от Romanich'а с печатной платой, фотографией, описанием и плеерами YM3 и YM5/YM6-файлов (с исходным текстом).
    • YM2149 sound generator, Arduino and fast pin switching


    To be continued...

  8. #6
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vlad Посмотреть сообщение
    Глубокий смысл в этом есть...
    где-то очень глубоко...

    нужен нормальный современный продвинутый девайс, тогда может быть появится его поддержка в популярных программах. а на данный момент ничего такого не видно, хотя успешные попытки играть музоны на ay через усб были.

  9. #7
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Одно время в ZXTune была поддержка реального чипа через LPT. Поскольку подначивший меня на это товарищ так и не удосужился проверить работоспособность, поддержка почила в бозе.

  10. #8
    Veteran Аватар для Tronix
    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,929
    Спасибо Благодарностей отдано 
    78
    Спасибо Благодарностей получено 
    230
    Поблагодарили
    114 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от vlad Посмотреть сообщение
    Спасибо, то что нужно. В архиве LPT-YM.7z там даже исходники плееров на паскале, очень удобно. Попробую собрать тогда по схеме


    Только не понятно, нафига какая-то "кренка" и какие-то 9 вольт. Выкину и возьму 5 вольт с любого разьема, например от харда. Так же не совсем понятно, нужен ли сабжу кварцевый генератор. Где-то читал, что вроде у него свой собственный есть.

    ---------- Post added at 17:38 ---------- Previous post was at 17:36 ----------

    Цитата Сообщение от Vitamin Посмотреть сообщение
    Одно время в ZXTune была поддержка реального чипа через LPT. Поскольку подначивший меня на это товарищ так и не удосужился проверить работоспособность, поддержка почила в бозе.
    Ну соберу - готов потестить. Запилить обратно сложно будет?

  11. #9
    Banned
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Так же не совсем понятно, нужен ли сабжу кварцевый генератор.
    нужен обязательно, своего нет.

  12. #10
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,254
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    80
    Поблагодарили
    34 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Ну соберу - готов потестить. Запилить обратно сложно будет?
    Не должно. Мне главное- гарантии неповторения истории
    http://zx-pk.ru/showthread.php?t=12109

Страница 1 из 22 12345 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Куплю YM2149F
    от cmari в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 13.09.2010, 00:48
  2. Хочу прикрутить NEMO IDE к моему Speccy
    от ILoveSpeccy в разделе Внешние накопители
    Ответов: 15
    Последнее: 21.04.2010, 23:40
  3. AY38910 vs YM2149F
    от AlexBel в разделе Звук
    Ответов: 1
    Последнее: 10.01.2008, 19:44
  4. Продам 2 YM2149F и ещё кое-что
    от Lounge Lizard в разделе Барахолка (архив)
    Ответов: 0
    Последнее: 13.08.2005, 04:17

Ваши права

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