Кварц без кондёров? Использовал ли шунтирование резистором? Если да, то какое сопротивление? У меня сейчас шунт на 5.6 МОм стоит, без него срывается.
Вид для печати
Безуспешно пытался запустить эмулятор, пробовал несколько версий. Точно могу сказать, AY_Emul_245_2ch_m8_ay_speaker.hex с конфигом Conf_parallel_24MHz_1_75Mhz.hex у меня на Ленинграде не взлетела.
AY_Emul_245_2ch_m8_ay.hex без спикера тоже пробовал, не заработала.
Стал перебирать версии. Самая старшая, которая заработала 24.2 под Atmega8 файл AY_Emul_242_2ch_speaker.hex и конфиг Conf_parallel_24MHz_1_75Mhz.hex
Хм... весьма странно...
но там в этих версиях отличия небольшие, хотя звучание у 24.5 лучше.
у меня 24.5 работает без проблем как и 24.2, я все версии проверяю на железе, прежде чем выложить :)
UPD:
проверил на своей разработке, 24.5 глючит безбожно на Atmega48 в параллельном режиме, если вставить код обработки прерываний из 24.2, то всё работает более-менее хорошо.
Видимо здесь еще от генерации BC1/BDIR зависит, у меня на тестовом ZX было на ИД7, всё норм работало, а тут на логике и глючит, так что скорее всего переделывать буду под вариант из 24.2
Выкладываю новую версию с исправлениями в параллельном режиме, полностью проверенный и рабочий вариант!
Вот, прогнал тестом на всякий случай
http://savepic.ru/13867842.jpg
прошил последнюю версию на 27мГц в Atmega8a-AU TQFP-32 , подключаю к PLM-X комп постоянно ресетится может как-то не так прошил?
загрузил в понипрог прогу и епром, сохранил все одним куском и прошил вилемом, фьюзы L-CE H-CF
- - - Добавлено - - -
прошил последнюю без спикера, тест 4.30 не видит AY, через 5-7 мин. начинаются глюки компа, без эмуля работает нормально
- - - Добавлено - - -
может кто выложит полные рабочие прошивки на 16, 20, 25, 27 мГц 1.75 , чтоб не заморачиваться с конфигами
и насколько понимаю Клок генерится внутри Меги и дополнительный генератор не нужен
заработало, мега сильно фонила на плм-ку, навесил кондеров и все ОК
А никто не подскажет, на какой композиции там проверяют звучание?
http://fotogalleria.info/pub/ZXSpeccy/AYEmul/Audio/
А то хочу подправить шум, хотелось бы выбрать такую же композицию для тестов
PS: там еще и такая картинка есть :)
http://fotogalleria.info/pub/ZXSpecc...Tmega8_smd.png
UPD: скоро будет новая версия эмулятора, будет переделан микшер на исходный вариант, т.к. мой слух говорит мне, что такой вариант более приближен к звучанию оригинала.
Пример звучания можно оценить по данной ссылке
http://avray.ru/files/broken_j.mp3
http://avray.ru/files/Optron40.mp3
http://avray.ru/files/BigThings.mp3 (player v13.0)
http://avray.ru/files/BigThings2.mp3 (player v13.1) !!! true noise!!!
NEW VERSION: Новая версия эмулятора, исправлен генератор шума, выходит он всё-таки работает по XOR, попутно небольшой фикс в генераторах тона.
Теперь на слух не отличить от оригинала :) но время как всегда покажет
UPD: наверное возникают вопросы по поводу конфига, опишу его формат
Конфиг состоит из 4 байт
1) USART_ENABLE: 0 - отключено, 1-включено (если включено, последовательный режим активен)
2) INT_ENABLE: 0 - отключено, 1-включено (если включено, параллельный режим активен)
3) ICR_VAL: значение ICR
4) UBRRL_VAL: значение скорости USART можно вычислить в калькуляторе, коих полно в интернете, только учитывайте, что USART работает в режиме с удвоенной скоростью, например здесь (смотрите там где U2Xn = 1)
http://wormfood.net/avrbaudcalc.php?...C32&databits=8
ICR вычисляется по формуле:
AVR_crystal_value/PSG_generator_freq/2-1
где
AVR_crystal_value - частота кварца атмеги
PSG_generator_freq - частота генератора AY, например, для 1.75МГц будет 1750000/16=109375, т.е. частота AY/16
пример:
AVR работает с кристаллом 27МГц, нужно получить звук похожий на AY с кварцем 1.75МГц
27000000 / (1750000 / 16) / 2 - 1 = 27000000 / 109375 / 2 - 1 = 122.43 = ~ 122 т.е. значение ICR будет 122 или 123 на ваш вкус.
Если немного упростить формулу, то получим 27000000 * 8 / 1750000 - 1, т.е.
(AVR_crystal_value * 8 / AY_crystal_value - 1)
Соответственно можно рассчитать это значение для любой частоты генератора AY
Далее, сделав такой бинарный файл из 4 байт прогоняем его утилитой bin2hex, результат и будет конфигом прошиваемым в EEPROM
Что-то в версии 13.0 с загрузкой проца не то. Скачет от нескольких процентов до полной загрузки одного ядра.
http://rgho.st/6SRWrvWKW/image.png
- - - Добавлено - - -
Если окно свернуто - то загрузка несколько процентов. Разоврачиваем - сразу возрастает.
Странно, в Win 10 таких проблем нет, я так понимаю там XP?
В 13.0 была удвоена дискретизация звука, т.е. он теперь имеет такую же частоту генерации (125кГц для 2МГц кристалла, 109кГц для 1.75) как реальный AY/YM, но такая частота поддерживается только начиная с Vista, далее она ресемплится ОС в 44100 или что-то еще более стандартное,
в XP судя по всему частота более 60кГц не поддерживается, поэтому при определении XP частота уменьшается вдвое.
Так что, на XP звук будет хуже, чем на Vista и выше.
А вот почему загрузка процессора большая в XP это надо проверить.... сейчас запущу виртуалку и посмотрю.
UPD: проверил, тоже нет таких проблем, прыгает немного при запуске новой мелодии до 8-11% потом становится меньше 2-3%, так что скорее всего проблема не в проигрывателе
Это не XP, это Win 7 x86. Еще заметил, что загрузка процессора как-то коррелирует с использованием каналов. Если один из каналов "молчит", то загрузка падает.
Такой вопрос, а для Atmega162 можно, в принципе, адаптировать прошивку? Я в AVRStudio 4 компильнул конечно, кое-как. Но поскольку с AVR не знаком совсем, есть сомнения насчет инициализации того-же UART (в 162 их 2 шт). Я хочу просто через AVR-Player попробовать поиграть на него музыку.... И да, 162 по даташиту 16 МГц максимум. Такого кварца нет, зато есть на 12MHz. Чем чревато уменьшение частоты с минимальных 20МГц в сторону 12МГц?
Так, сначала впилил кварц на 32Мгц, вместо 16 по даташиту. Камень завелся. Заинитил уарт на 57.6, слал в цикле букву "A" - шлет. Но pwm как то странно себя ведет, судя по осцилу. Впаял кварц на 16, pwm попер вроде всегда и с первого раза. Но чегото ощущение, что не обрабатывает прерывание от уарт. Мож не разрешил их в регистре, завтра гляну, код на работе остался
Чисто технически никаких проблем нет, кварц 12 лучше не стоит ставить, 16 тоже не вариант, 20 минимум для последовательного режима, 24 для параллельного, т.к. у этого контроллера есть полноценные порты, то параллельный режим на нем, если переделать, будет работать гораздо быстрее, чем на 8/48/88/168/328. Еще возможно какие-то порты инициализировать придется через инструкции STS, LDS т.к. они там имеют значение больше чем 0x3F, хотя, вроде примерно такие же как у 88/168/328, так что можно смело MCU_TYPE ставить равным 2 и компилить, главное камень правильный выбрать в конфиге.
Насчет потолка в 16МГц - это всё фигня, можно ставить и больше, у меня Atmega8-16PU один завелся на 40МГц, правда такой только 1 был из 40 штук :) атмега48 без проблем работала с 32МГц, так что тут больше от конкретного экземпляра зависит. Рекомендую попробовать 24-32МГц.
Я наоборот, ставлю mcu_type 0. Хотя в части инициализации pwm, скопипастил с mcu 2, только заменил на out. Мне кажется эта хрень ближе к мега8 все-же. Завтра еще поковыряю. Кстати, я конфиг вынес прямо в прошу, .eseg и дальше Config: .db 1, 0, etc. Авр студиа генерит после этого hex сама. Вроде расширение .eep имеет.
UPD: А, ну точно, забыл прерывания по приему байта разрешить в UCSR0B. Поперло судя по осцилу. Спасибо.
UPD2: Работает, но тормозит. Хотя PWMит на ~219Khz. Наверно не успевает на 16Мгц. Будем искать кварц на 24Мгц....
UPD3: Угу, впаял кварц на 25Мгц - поперло нормально.
UPD4: Или не нормально? Файлы из папки примеров DigitalAY, например AYMD38.ay, играются ооочень странно, по сравнению с проигрыванием на звуковой карте компа. Это я скорости не набрал нужной?
Понял, спасибо. Ну ваще, нормально играет . Не смотря на 8 бит таймер. Может на стм32 портпнуть попробовать? Там 16 бит будет.
Это как хотите, тема то не моя, я просто её развил дальше :) я ради эмулятора STM изучать пока что не хочу, изучу как будет острая нужда.
А так конечно, и таблицу громкости можно будет подобрать получше, если конечно 16 бит будет укладываться в нужное время,
в авр ШИМ 16 бит тоже есть, но чтобы оно успело, надо кварц мегагерц на 200 )))))
Есть еще вариант, на авр генерировать 4 битные значение и дальше на DAC передавать в параллельном режиме.
EvgenRU, а трех-канальной версии больше нет ????
Как нету, всё там есть в архиве
PS: продублирую файл с последней прошивкой на всякий
EvgenRU, прошу прощения, какой то из предидущих архивов брал и там были только 2сн. СПС
Сделал версию для 8515 (только для режима serial)
marinovsoft, а как подключать ? AT90S8515 прокатит ?
Подойдет ли AT90S8515 - не знаю.
Схема и печатка моего варианта здесь.
http://zx-pk.ru/threads/21867-podkly...l=1#post628949
EvgenRU, еще файлы с расширением AY как-то странно играют в версии 13.0 AVR-AY Player при использовании звуковой карты.
у меня на 20мГц на реале странно играет мега8, призвук металический в одном канале и вроде как не хватает голосов, шил и 24.5 и 24.6 и 24.7 (1.75) двух канальный еще ничего, а на трех канальной мрак какой-то, может конечно с мегами проблема (брал на али в TQFP32), но в контроллерах клав работают
На реале лучше минимум 24МГц ставить
PS: неожиданно получил подарок от Клауда
http://savepic.net/9603915.jpg
В AVR-AY Player 13.1 при использовании звуковой карты файлы с расширением AY стали играть нормально, но не все. Пример Dobranocki.ay.
AVR-AY Player 13.1, запущенный на Win 8.1 x64 не работает в режиме звуковой карты. Ошибка выдается при попытке воспроизведения, при этом в список звуковых карт заполняется нормально.
http://f22.ifotki_.info/org/7160ee0e...2285467425.png
Ну он как бы намекает, что надо откатиться до сесмерки либо уже апгрейднуться нормально на десятку.
Попробовал на w2k16 через RDP - играет, но с каким-то треском.
Ну, видать не все винды тянут 120кГц звук, надо что-то придумывать... может галку сделать, типа режим совместимости? Или может попробовать другой фреймворк? Сейчас 3.5 используется.
The prototype of the AY replacement in SMD works fine and I've tested it up to 30MHz :) Great work Evgeniy.
The photo the AY Emulator in the real hardware below
http://fotogalleria.info/pub/ZXSpecc...md_prot_01.jpg
Сегодня протестировал плату купленную у Павла Рябцова, которую мне собрали и прошили на заказ. Тестировал на Кае и Скорпионе при помощи переходника от MV1971. Оба компьютера при этом не стартовали. Проблема была в сигнале BC2 который и на переходнике и на плате эмулятора был заведен на +5В. При том, что в Скорпионе на BC2 заведен А13, а в Кае *M1/ :v2_dizzy_facepalm:
К счастью оба компа при стресс-тесте не пострадали и после перерезанной дороги на переходнике и откушенной ноги на плате эмулятора все заработало. :)
Аналогичная беда. Комп не стартует. Побоялся спалить и забросил эту адскую машинку подальше. Спасибо, теперь попробую!
- - - Добавлено - - -
juka1868, а какую ногу надо откусить в эмуляторе и какую дорожку перерезали в переходнике?
Вроде по схеме 19 нога идет как раз на +5V:
http://storage9.static.itmages.ru/i/...ea6b5cd7b4.jpg
А на переходнике еще и A8 на 17 ноге идет на +5V. Это вроде нормально.
http://cats-chess.narod.ru/BOARD_SAL...AY_adapter.jpg
В Кае256 1.1 и 1.4 по схеме там +5V должно быть. На 25 и 28 ноге панельки DIP40. А вот в Скорпионе там действительно сидит A13.
Я втыкал эмулятор Павла через панельку в Эву, комп не включается. В Эве по схеме там +5V. Скорее всего что-то еще не так.
Возможно, но у меня Кай1024 с памятью на Simm30 и там действительно M1/ :)
Резать нужно дорожку ведущую +5В к 19 ноге 8912 на переходнике и откусить 19 ногу на штырях платки эмулятора.
Вообще не понятно зачем было дублировать часть принципиальной схемы компьютера на переходнике, и тем более на эмуляторе???
Кто нибудь собрал эмулятор AAY-3-8912 на платах от Павла? https://img-fotki.yandex.ru/get/8939...aabaa_orig.jpg
Как и куда подключается программатор ISP?
И скольки пиновый ISP нужен? Почему на плате 8 пиновый разъём?