≡ Передовица » Hardware » МУАРМ » Ячейка звукового синтеза 5/2
Ячейка звукового синтеза 5/2Версия 5/2 занимает начальный уровень в линейке звуковых карт для АГАТа. Этот вариант имеет 5 тональных и 2 ударных канала. Псевдостерео выход, подключение фортепианной клавиатуры. ДЕМОНСТРАЦИЯ (музыка и видео), от Новосибирской компьютерной лаборатории. Такое исполнение (5/2), в основном, предназначено для использования в учебном процессе. Однако, неожиданно нашло применение среди начинающих музыкантов тех времён - например первый альбом группы e-gens. Интересно что и в наши дни ЯЗС не обделена вниманием. В 2022 году, Tronix сделал ЯЗС для IBM PC по мотивам оригинала, а небезызвестный shiru8bit создал трекер для данного формата. Подробности ТУТ. * * *КонструкцияТак как работу этого устройства объяснить без примеров неинтересно, мы записали видео о конструкции этой ячейки, где вы увидите: рассказ об архитектуре устройства и пример работы небольшой программки, в которой по отдельности показана работа каналов ячейки. ЯЗС Состоит из следующих блоков:
* * *ВозможностиБлок параллельного вводаПозволяет считывать 8 бит с заднего разъёма. К разъему подключалась специализированная музыкальная клавиатура. Блок таймеров/счётчиковкр580ви53 тактируется двумя источниками: с частотой 1.021 МГц (для тональных каналов) и 7980 Гц (для счётчика/таймера IRQ). Разрешение счёта для всех счётчиков одновременно может быть выдано или отозвано программно. Выход счётчиков/таймеров тональных каналов поступают на блок коммутации тональных каналов, выход счётчика/таймера IRQ - на блок управления IRQ. Чтение регистров счётчиков невозможно. Блоки тональных и ударных каналовОбрабатывают сигналы, поступающий с таймеров/счётчиков и генератора шума и, таким образом, формируют выходной звуковой сигнал. Блоки управляются программно, однако программно можно лишь менять их состояние, считывать состояние нельзя. Блок прерыванийПозволяет программно запрещать и разрешать прерывания от счётчика/таймера и от внешних устройств (по сигналу, приходящему через задний разъём). Также позволяет программно читать состояние флагов, указывающих на источник прерывания. Сброс флагов IRQ программный ! (обработчик прерываний должен сам очистить флаги до своего завершения). Блок усилителя-микшераФормирует три вида выходных звуковых сигналов: "линейный выход" - 0.25 в, выход наушников (предположительно) - 0.10 в (повышенной мощности) и прямой выход (назначение неизвестно) - 0.10 в. Есть вероятность, что "линейный" выход имеет небольшой фазовый сдвиг, различающийся для разных частот. В этом случае, совместно с прямым выходом, они образуют два квази-стерео канала. * * *Адреса регистровn - номер слота + 8, по умолчанию первый (многие программы не проверяют номер слота, полагая его первым): Чтение:
Ещё раз: разрешили прерывания, источник (таймер или внешнее устройство) пискнуло - флаг взвёлся. Можно его сбросить программно после обработки события. Если не сбрасывать, а просто запретить прерывания, флаг останется взведённым. Но если источник сработает теперь вновь - флаг сбросится. Запись:
Управление блоками коммутации тональных каналов (частотные диапазоны приведены приблизительно, по уровню 0.5):
Генератор ударных, канал 6:
Длительность (D3) меняет время звучания удара (примерно 0.5 секунды при D3 = 0 и 1.0 секунда при D3 = 1). Переключение бита D4 из 0 в 1 вызывает генерацию звука, атака резкая, спад постепенный. Если во время звучания сбросить бит - звук прекратится. Чтобы сгенерировать звук вновь, нужно сбросить D4 и подождать около секунды (вероятно даже меньше). Однако если предыдущее включение было кратковременным, то и время в нулевом состоянии можно сократить. Генератор ударных, канал 7:
Управление блоком прерываний:
Остальные биты во всех регистрах ни на что не влияют. * * *Распиновка заднего разъёма
* * *Принципиальные схемы
На сайте "Проект создания реплик ПЭВМ Агат" выложен проект платы ЯЗС 5/2.
Шинный интерфейс и блок управления прерываниямиЛегенда: Фиолетовый - контакты шинного интерфейса ПЭВМ (сверху номер ламели, снизу - обозначение сигнала). Обратите внимание, что !RD (на рисунке отсутствует) таймеров/счётчиков всегда подключены на 1, таким образом читать их регистры невозможно. d8 включена довольно странно: сигнал, который нужно выдать на шину, подаётся на вход управления буфером, а на входе данных буфера висит !A2. Таким образом получается, что если какой-то из флагов IRQ взведён, буфер всегда выдаёт на шину значение !A2. При чтении регистра флагов это ещё логично: на входе данных буферов будет 0, при сброшенном флаге буфер включится и 0 попадёт на внутреннюю шину данных, при выключенном - группа резисторов подтянет шину к 1. Но при чтении внешнего параллельного порта получится, что при сброшенных флагах прерываний соответствующие буфера будут включены, на их входе данных будет 1 и эта единица будет конфликтовать с выходными сигналами d28. Вероятно, это схемотехническая ошибка. Однако она требует, чтобы чтение параллельного порта происходило до сброса флагов прерывания, иначе возможно искажение двух старших бит. Блок SRAMЛегенда: Зелёный - внутренняя 8-битная шина данных ячейки. Тут всё просто: когда d17 дрыгает одной из лап (во время выполнения процессором операции "запись" по адресам ячейки) одна из групп триггеров запоминает несколько младших бит шины данных. В дальнейшем эти биты заводятся в генераторы. Возникает вопрос: почему не были использованы вв55 или ещё куча разных регистров-защёлок с большей плотностью хранения ? Ну вот хотя бы тм9 ? Генератор тактовых частотЛегенда: Фиолетовый - контакты шинного интерфейса ПЭВМ (сверху номер ламели, снизу - обозначение сигнала). Точные значения частот, выдаваемые этими делителями, следующие: Кварц на материнке даёт 14.3 МГц, делим на 7, таким образом на вход делителей приходит 2.04 МГц Первая секция делит эту частоту на 2, таким образом тактирование счётчиков тональных каналов составляет 1.02 МГц Вторая секция делит эту частоту на 8, третья на 2, таким образом генератор шума получает 63.8 КГц Делим ещё на 8 и получаем 7.98 КГц на счётчике IRQ. Генератор шумаЛегенда: Фиолетовый - контакты шинного интерфейса ПЭВМ (сверху номер ламели, снизу - обозначение сигнала). Блок коммутации тонального каналаЛегенда: Красный - входы управления (сигналы от блока SRAM), выход от таймера/счетчика и выходы на полосовые фильтры. На ячейке пять таких блоков. Входы "ви53" соединяются с соответствующими выходами таймеров/счётчиков. Выходы на полосовые фильтры всех пяти ячеек соединены параллельно. Входы управления I.n подключаются к соответствующим выходам блока SRAM Gx.n, где x - номер канала. В качестве коммутаторов используются микросхемы к561кт3 (по одной на канал). В схеме изображены только их ключи с обозначениями номеров выводов (проверены только для одного из каналов). Один из резисторов в одном из генераторов отличался от других. Возможно, это следствие ремонта ячейки, а может так и задумано. Это отличие слегка влияет на поведение канала при изменении бита D4 в регистре управления. Полосовой фильтрЛегенда: Красный - выходы блоков коммутации тональных каналов (сигналы со всех пяти блоков подключаются параллельно), а также вход финального усилителя-микшера. Как видно, фильтр доволно простой, так что полосы имеют не очень четкие границы. Я пробовал оценить границы полос спектроанализатором по уровню 1/2, но не уверен, что эта оценка достаточно точная. Для фильтра ВЧ верх полосы указан как 4 КГц, однако по схеме видно, что сам по себе фильтр не ограничивает сигнал сверху: эта цифра, вероятно, получается из-за ограничений финального усилителя-микшера. Однако и его АЧХ не резко ограниченная, поэтому сигналы от генераторов шума на выходе ячейки вполне могут простираться до 10 КГц и выше. Генератор ударных, канал 6Легенда: Красный - выход генератора шума, блока SRAM, а также вход финального усилителя-микшера. Обратите внимание: к561кт3 и некоторые другие аналоговые части схемы питаются от слегка фильтрованного напряжения +5в: именно на этой части схемы изображены резистор и конденсатор соответствующего фильтра. Также внезапно: инверторы здесь - КМОП (к561лн2). Также и в канале 7. Можно послушать примеры звучания этого генератора. Генератор ударных, канал 7Легенда: Красный - выход генератора шума, блока SRAM, а также вход финального усилителя-микшера. Можно послушать примеры звучания этого генератора. Усилитель-микшерЛегенда: Красный - выход генераторов ударных и полосового фильтра тональных каналов. Основан на сдвоенном операционном усилителе к157уд2. На входе получает сигнал от полосового фильтра и генераторов ударных (всё соединяется в одну точку без каких-либо делителей или согласователей), на выходе же имеется три версии сигнала: A7 - 0.1в, A5 - 0.1в (повышенной мощности), A9 - 0.25в. В 80-е была такая модная тема - "псевдостерео". Монофонический сигнал подавался в один канал необработанным, а во второй канал - через фазовращатель. Получался эффект пространственного звука. Вот здесь то же самое. D6.2 - это фазовращатель. * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |