AVR Эмулятор музыкального сопроцессора AY-8910/AY-3-8910/12
Для желающих покопаться в исходниках выложена ASM версия эмулятора, а так же исходники версии 20.0 для Algorithm Builder. С версии 22 исходники включены в архив.
Текущие версии эмулятора: версия 26.0 финальная!
- Эмулятор версия 26.0 (полное соответствие AY-3-8912) (16.04.2020)
- turbo sound версия (основана на версии 26.0 двухканальная 16.04.2020)
- новый RC-фильтр
Текущая версия проигрывателя: 13.7 (поддержка форматов файлов .AY, .PT1, .PT2, .PT3, .STC, .STP, .ASC, .PSC, .SQT, .GTR, .PSM, .FTC, .FLS, .FXM)
Добавлена страница о подключении PS/2, USB клавиатуры к ZX-Spectrum (выложены так же исходники для AVR Studio).
Вашему вниманию представляется эмулятор микросхемы AY-3-8910 (AY-8910, AY-3-8912, YM2149F, и т.д.) выполненный на микроконтроллере AVR Atmega8.
Если у вас когда-то был компьютер ZX-Spectrum с музыкальным сопроцессором и вы хотите вспомнить молодость, то этот сайт именно для вас!
Прошивка эмулирует работу чипа на частоте 1,75MHz и 2MHz, в зависимости от загруженного конфига в EEPROM. Можно сделать конфиг и на 1MHz как у CPC, если вам такое нужно — напишите в комментариях.
Данный эмулятор основан на исходниках Ramiros написанных на Algoritm Builder‘e.
Начиная с 22 версии режим чтения работает совершенно иначе чем ранее, теперь вместо единицы пин подключенный к шине данных переводится в HI-Z состояние. Таким образом исключаются ситуации с промежуточным переходом между состояниями в атмеге, т.е. в порт ничего не шлется, а только осуществляется переключение вывод нуля и HI-Z.
Как работает эмулятор? Очень просто! Используются возможности широтно импульсной модуляции (ШИМ/PWM) доступной в микроконтроллере Atmega 8.
Пример ШИМ сигнала со скважностью 50%
Когда скважность составляет 50% мы получаем значение напряжения в 2.5 вольт (красная линия).
Мы можем менять скважность ШИМ с помощью таймеров, таким образом получая сигнал похожий на аудио.
Так как во время изменения скважности ШИМ существует некоторая инерция, то значение напряжения меняется постепенно, таким образом, мы можем получать сигнал похожий на синусоиду, т.е. на аудио сигнал.
На данном принципе и построен эмулятор.
Контроллер Atmega8 имеет 2 16-и разрядных ШИМ и 1 8-и разрядный. Соответственно в 2-х канальной версии эмулятора используются первые 2 ШИМ, а в 3-х канальной все 3 ШИМ сразу, третий используется как управляемый первыми двумя. Таким образом удалось сделать версию с тремя независимыми звуковыми каналами, чего до этого не удавалось другим программистам.
Загрузить прошивку для Atmega8 и скачать проигрыватель вы можете в разделе ЗАГРУЗКИ, а посмотреть документацию, схемы и другое в разделе ИНФОРМАЦИЯ