SSG - (Software controlled Sound Generator) это большая интегральная микросхема, выполненная по технологии NMOS и разработанная для генерации звуков. От микропроцессора и микроконтроллера (CPU) требуется только инициализация массива регистров, что уменьшает загрузку CPU. Генерация звука производиться тремя генераторами прямоугольных волн, генератором шума и генератором огибающей.
Восьмибитная двунаправленная шина данных, используется для передачи данных и адресов между SSG и CPU. В режимах чтения и записи DA7~DA0 обмениваются байтами с массивом регистров R7~R0. В адресном режиме DA3~DA0 адресует регистры, а DA7~DA4 используются вместе с |A9 и A8 для старших адресов.
Линии старших адресов. A8 подтянут резистором к высокому потенциалу, а |A9 к низкому. Если эти выводы не используются, необходимо подать на A8 +5 вольт, на |A9 - общий.
Активный уровень напряжения - низкий. Устанавливает содержимое всех регистров в "0". Этот вывод подтянут резистором к высокому потенциалу.
Вход тактовых импульсов на генераторы звука и огибающей. Оснащён делителем частоты с коэффициентом деления 2, который позволяет использовать для тактирования частоту в два раза меньшую, чем та, что подается на вход.
Когда на |SEL подан высокий уровень, входная частота принимается как есть. При низком уровне на |SEL, тактовая частота получается делением на два входящей частоты. Этот вывод подтянут резистором к высокому потенциалу для сохранения совместимости по выводам с AY-3-8910 производства General Instruments, когда этот вывод ни к чему не подключен.
Управляют внешней (DA7~DA0) и внутренней шиной SSG. Контроллер шины может находиться
в одном из четырёх состояний. Управление избыточно и BC2 может быть подключен к +5V.
BDIR | BC2 | BC1 | Режим |
0 | 0 | 0 | Неактивный |
0 | 0 | 1 | Адресный |
0 | 1 | 0 | Неактивный |
0 | 1 | 1 | Чтение |
1 | 0 | 0 | Адресный |
1 | 0 | 1 | Неактивный |
1 | 1 | 0 | Запись |
1 | 1 | 1 | Адресный |
Каждый канал имеет цифро-аналоговый преобразователь, преобразующий цифровые величины в аналоговые сигналы.
Это два восьмибитных порта ввода/вывода. Наличие портов позволяет поместить SSG между внешней системой и центральным процессором для передачи данных. Выводы подтянуты резисторами к высокому потенциалу.
Все функции SSG контролируются 16 внутренними регистрами.
Центральный процессор должен только записывать данные в эти регистры, а SSG
самостоятельно генерирует звук. Генерация звука производиться следующими модулями:
Массив регистров
В десяти битном адресе младшие адреса DA3~DA0 используются для выбора 16 внутренних регистров
из массива регистров. Старшие адреса |A9, A8 и DA7~DA4 используются для выбора кристалла.
В случае, когда на них присутствует комбинация отличная от 010000b
двунаправленные буферы переводятся в высокоимпедансное состояние.
Структура массива регистров (номера регистров представлены в шестнадцатиричной системе).
Частота прямоугольных импульсов производимых генераторами тона трех каналов (A, B и C) задается регистрами с R0 по R5. R0 и R1 управляют каналом A, R2 и R3 используются для канала B, R4 и R5 для канала C. Частота колебаний осциллятора fT получается следующим образом из значения регистра TP:
Частота шума fN определяется регистром NP по следующей формуле:
Смеситель используется для комбинирования компонентов тона и шума. Различные комбинации определяются битами B5~B0 регистра R7. Звук выводиться, когда в регистре содержится "0". Таким образом, когда биты соответствующие тону и шуму установлены в "0" смеситель смешивает их на выходе. Когда шуму соответствует "0" и тону "1", выводиться только шум и наоборот. Если все биты, отвечающие за тон и шум, установлены в "1" звук не воспроизводиться. Выбор режима портов ввода/вывода определяется битами B7 и B6 регистра R7. Порт настраиваются на ввод когда в соответствующий бит, записан "0", иначе на вывод.
Громкость звука на выходе ЦАП для трех каналов (A, B и C) регулируется регистрами R8, R9 и RA.
Режим M определяет, будет ли уровень громкости фиксированый (при M="0") или переменным (при M="1"). Когда M="0", уровень громкости устанавливается в одно из 16 значений и определяется битами L3, L2, L1 и L0. Когда M="1" уровень громкости определяется пятью битами E4, E3, E2, E1 и E0 генератора огибающей.
Частота повторения огибающей fE определяется периодом огибающей EP:
Фактический период огибающей 1/fEA есть 1/32 периода 1/fE (На сколько я понимаю, fEA используется для формирования огибающей посредством пятиразрядного ЦАП, следовательно плавное возрастание/убывание сигнала происходит за 1/fE, т. е. за 32 такта fEA. В [1] информация по звуковому генератору вообще скудная и неверная, что, кстати, привело к ошибке в процедуре выключения звука "музыкального звонка", а в [2] по этому поводу сказано следующее: "Генератор формы огибающей путем деления частоты огибающей на 16 образует и выдает на регулятор амплитуды форму огибающей, представленную шестнадцатью фиксированными уровнями напряжений на один цикл, закодированными в четырехразрядном выходном счетчике", что также противоречит данному документу - примечание переводчика).
Счетчик генератора огибающей синхронизируется частотой огибающей fEA 32 раза за период огибающей. Уровень огибающей определяется пятью битами (E4~E0) счётчика огибающей. Форма огибающей создается увеличением, уменьшением, высоким или низким уровнем и повторением этого счетчика. Форма огибающей управляется битами B3~B0 регистра RD (Вероятно под "счетчиком" понимается пяти разрядный счетчик входящий в генератор огибающей, который управляет ЦАПом и могущий работать как на возрастание так и на убывание в зависимости от установок регистра RD. Тактируется он частотой fEA и переполняется за время 1/fE - примечание переводчика).
В зависимости от сигналов CONT, ATT, ALT и HOLD огибающая может принимать формы, представленные в следующей таблице.
Регистры RE и RF используются для хранения содержимого портов ввода/вывода. RE отождествлен с IOA и RF с IOB.
ЦАП
ЦАП устройства имеет логарифмическую шкалу 0 - 1В, т. е. фактически регулирует громкость звука, что обеспечивает широкий динамический диапазон выходного сигнала.
Параметр | Диапазон | Еденица измерения |
---|---|---|
Напряжение на выводах Диапазон рабочих температур Температура хранения |
-0,3 ~ +7,0 0 ~ 70 -50 ~ 125 |
Вольт °C °C |
Параметр | Символ обозначения | Мин. | Ср. | Макс. | Еденица измерения |
---|---|---|---|---|---|
Напряжение питания |
Vcc Vss |
4,75 0 |
5 0 |
5,25 0 |
Вольт Вольт |