Особенности работы схемы сброса RES:
1. Генератор шума, счетики периода тона для трех каналов, счетчик периода огибающей и счетчик периода шума сбрасываются в 0.
2. Имитируется выборка всех 16 регистров, на внутреннюю шину B0..7 выдается 0, активируется сигнал REG_WR, по которому одновременно во все 16 регистров записываются 0.
3. Счетчик формы огибающей записывается 0.
Недокументированный выход TEST1:
На выход TEST1 напрямую выдается сигнал F_ENV (выход генератора частоты огибающей).
Таким образом, при желании, если отказаться от подмешивания огибающей в основные каналы, можно получить 4-й независимый голос фиксированой громкости.
Недокументированный вход TEST2:
Если на входе TEST2 логическая '1', то блокируются внутренние сигналы REG_WR и DA_OUT_EN, что фактически эквивалентно отключению AY-3-8910 с шины.
Иными словами, вход TEST2 можно обозначить как /CS (Chip Select).
Глюки при записи новых значений в счетчики тона трех каналов, огибающей, генератора шума:
Из-за того, что запись в регистры не синхронна с тактовой частотой AY-3-8910, если момент записи попадает в активную фазу CNT_CLK, может произойти ситуация, когда компаратор счетчика даст ложное срабатывание. Это происходит потому, что сравнение счетчика со значением регистра происходит в тот момент, когда значение регистра изменяется, т.е. не стабилизировалось. В норме, если у нас в регистре записано число 100, а счетчик досчитал до 10, то при записи нового значения 200, счетчик продолжит считать до нового значения 200. Т.е. периоды будут 100, 100, 200, 200 и т.д. Если же запись произошла в момент активной фазы сравнения (CNT_CLK), то счетчик может сбросится, и мы получим такие периоды: 100, 100, 10, 200, 200 и т.д. Что будет слышиться на слух как щелчок.
Из перечисленного следует, что наиболее благоприятная схема тактирования AY-3-8910 должна удовлетворять двум требованиям:
1. Тактироваться от того же источника, что и процессор, производящий запись в регистры AY-3-8910.
2. Цикл начала записи (нестабильная фаза изменения на шине) не должен попадать на сигнал CNT_CLK. Чего, впрочем, достичь сложно, т.к. цикл CNT_CLK генерируется каждый 8-й такт CLK, и его позиция зависит исключительно от времени окончания сигнала RES.
Резюме - скорее всего избежать случайных 'иголок' при записи новых значений в генераторы тона каналов A,B,C, огибающей и шума - практически невозможно.
Подтягивающие ESD-резисторы на землю:
Все входы имеют защитные ESD-резисторы на землю. Судя по всему, они же являются слабыми (несколько мегаом) подтягивающими резисторами, позволяющими оставлять неиспользуемые выводы в воздухе. Впрочем, лучше этим не злоупотреблять, а сажать неиспользуемые выводы на землю принудительно.
Порты ввода-вывода IOA и IOB:
Порты являются одновременно и входами, и выходами с открытым коллектором, и с внутренними подтягивающими резисторами на плюс питания. При записи в регистры R16 и R17 записываются новые значения в порты IOA и IOB, соответсвенно. При чтении регистров R16 и R17 всегда читается фактическое текущее значение портов, а не содержимое регистров.
Чтение нереализованных битов в регистрах:
При чтении нереализованных битов в регистрах, в нормальных условиях читается 0, т.к. перед циклом чтения внутренняя шина B0..7 предзаряжается нулем. Однако, если цикл чтения будет очень долгим, есть вероятность, что эти биты 'поплывут'.
Генератор шума:
Генератор шума основан на 17-битном регистре сдвига с линейной обратной связью (LFSR) с использованием примитивного многочлена P(x)=x^17+x^14+1 с периодом 131071 циклов.
Нелинейность ЦАП:
Судя по исследованиям реальных чипов AY-3-8910, шкала громкости отличается от идеальной с шагом SQRT(2).
Реальные измеренные значения громкости примерно такие (исследования от
DDp):
00: 0.00
01: 0.99
02: 1.43
03: 2.08
04: 3.05
05: 4.57
06: 6.46
07: 10.63
08: 12.79
09: 20.57
10: 29.35
11: 37.23
12: 49.27
13: 63.54
14: 80.55
15: 100.0
Что делает звуковую характеристику AY более пологой, чем на YM, благодаря чему тихие звуки не так теряются на фоне громких, что работает как естественная компрессия.
Изменение наименований сигналов относительно транзисторной схемы deathsoft'a:
RST_1 -> RST
/F1 -> F1
/SEL_EA -> ENV_INV
/F_ENV -> F_ENV
F4 -> F_NOISE
BDIR_1 -> BDIR
BC2_1 -> BC2
BC1_1 -> BC1
Остальные переименования незначительны.
[свернуть]