Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Музыка (http://zx-pk.ru/forumdisplay.php?f=11)
-   -   Особенности AY (http://zx-pk.ru/showthread.php?t=13965)

TomCaT 3rd October 2010 11:55

Особенности AY
 
Прочитав даташит, все-таки сформулировал для себя несколько вопросов. Не подскажет ли уважаемый All, что известно или где прочитать/узнать:

1) указан рабочий диапазон выходов 1 вольт пик-пик. На графике амплитуд указаны 16 уровней в диапазоне 0 -- 1 вольт, но ведь это же для полуволны. В этом последнем случае полный диапазон был бы 2 вольта пик-пик?

2) Питание "земля -- +5". Этот диапазон внутри диапазона питания, конечно (не инвертировалось же напряжение в то время при той цене, это не дешево) ? А какое напряжение среднего уровня?

3) Несколько раз упомянута квадратная волна. Есть ли возможность на Спектруме с AY отследить момент фронта между полуволнами, если не напрямую, то по какому-нибудь из синхронных событий.

4) Когда происходит изменение характеристик сигнала после записи в регистры - на очередном такте процессора, после 16-тактовой паузы (тогда кстати для огибающей она 256-тактовая до очередного обновления?), на очередном фронте волны или иначе?

Atari 3rd October 2010 12:24

Поиск рулит.
Начиная с 17-го поста http://zx.pk.ru/showthread.php?t=12989&page=2 есть ответы на половину вопросов.

TomCaT 3rd October 2010 13:12

А про вторую половину что-то известно?

Интересно, что поиск "AY волны" юзал, среди найденных тем именно эту почитал, но до сути и точных выводов дойти меня не хватило :) :( .

Еще один вопрос вспомнился.

5) в регистрах амплитуды при выборе режима аппаратного генератора огибающей младшие биты этой огибающей как-то управляют или полностью игнорируются? (вряд ли, конечно, судя по даташиту - эдакий плюс грех не указать в описании)

psb 3rd October 2010 17:11

а что такое "AY волна"?


Quote:

Originally Posted by TomCaT (Post 320431)
На графике амплитуд указаны 16 уровней в диапазоне 0 -- 1 вольт, но ведь это же для полуволны.

для какой еще полуволны?? нет ничего такого. AY работает так:
есть генератор меандра, частота которого задается в регистрах 0 и 1 (1 канал рассмотрим). т.е. есть у нас лог. сигнал, который с заданной частотой переключается.

дальше этот сигнал идет на микшер, у которого состояние может быть 0 и 1 (бит 7го регистра). эти два сигнала просто по OR складываются. получается, когда в микшере 0, на выход проходит меандр, а когда 1 - на выходе всегда 1.

далее этот сигнал идет на ЦАП. так же на ЦАП приходит код громкости (рег.8). и здесь происходит умножение: когда с микшера пришел 0, на аналоговом выходе 0В, когда пришла 1, на выходе - некое напряжение, зависящее от громкости (как раз по табличке из даташита).

получается, если не включена огибающая, на выходе меандр 0В-хВ (х зависит от значения громкости). если включена огибающая, то на код громкости ЦАПа как бы подаются последовательно значения 0,1,2,....,15 с частотой заданной в рег. 11-12. сами значения кодируются рег.13 (т.е. может быть нарастающая пила, убывающая и смешанная).

так вот, обычно, когда говорят про звук типа "огибающей", имеется в виду, когда в микшере 1, а на вход ЦАПа приходят последовательные числа. на выходе при этом будет сигнал, похожий на параболу (посмотри вот тут - сигнал, снятый осциллографом).


Quote:

Originally Posted by TomCaT (Post 320431)
Есть ли возможность на Спектруме с AY отследить момент фронта между полуволнами

можно попробовать, чисто теоретически, но не факт, что это получится. регистры типа 0-1 - 12битные. ты можешь записать туда число 16бит, и оно даже оттуда считается обратно, но через некоторое время оно считается обратно обрезанным до 12 бит. возможно, как раз тогда, когда пройдет период. НО ЭТО НЕ ФАКТ И ТРЕБУЕТ ПРОВЕРКИ!
Quote:

Originally Posted by TomCaT (Post 320431)
Когда происходит изменение характеристик сигнала после записи в регистры

на очередном фронте
Quote:

Originally Posted by TomCaT (Post 320446)
в регистрах амплитуды при выборе режима аппаратного генератора огибающей младшие биты этой огибающей как-то управляют или полностью игнорируются?

если речь про рег.8-10, то при уст.4 бите, биты 0-3 значения не имеют.

TomCaT 7th October 2010 21:35

Quote:

Originally Posted by psb
регистры типа 0-1 - 12битные. ты можешь записать туда число 16бит, и оно даже оттуда считается обратно, но через некоторое время оно считается обратно обрезанным до 12 бит. возможно, как раз тогда, когда пройдет период. НО ЭТО НЕ ФАКТ И ТРЕБУЕТ ПРОВЕРКИ!

Интересно, надо попробовать.

Quote:

Originally Posted by psb
Quote:

Originally Posted by TomCaT
Когда происходит изменение характеристик сигнала после записи в регистры

на очередном фронте

так со всеми регистрами, и частотными, и амплитудными? :(
значит, после фронта повлиять на выходы каналов нельзя до следующего фронта... :(

psb 7th October 2010 23:24

Quote:

Originally Posted by TomCaT (Post 321654)
так со всеми регистрами, и частотными, и амплитудными?

только частотными.

TomCaT 8th October 2010 18:42

Тогда у меня напрашивается идея воспроизведения 4-битного оцифрованного звука, хотя, я уверен, что-то такое кто-то давно уже делал, и столкнувшиеся проблемы не позволили развить идею.

psb 8th October 2010 19:15

эээээ... а как же все цифровые музоны? они и есть 4 битные. только учитывать нужно нелинейность ЦАПа.

TomCaT 16th October 2010 10:17

музоны-то понятно, а речь?

psb 16th October 2010 17:00

загоняешь в редактор цифровой музыки инструмент с речью и играешь - будет говорить. самый тупой способ: берешь 8бит Wav, откусываешь заголовок, потом берешь из каждого сэмпла старшие 4 бит и кидаешь с нужной частотой в рег. громкости. все. хоть и не совсем правильно (из-за нелинейности цапа), но звук будет.


All times are GMT +4. The time now is 12:05.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.