Продолжаем рассказывать о новинке Мастер Кит – модуле звукового процессора BM2114dsp. В первой части нашего обзора мы познакомились с модулем и его компонентами, рассмотрели типичные схемы включения устройства в тракт воспроизведения звука.
Как уже говорилось, программирование примененного в модуле процессора обработки звукового сигнала ADAU1701 осуществляется при помощи программы SigmaStudio. Программу можно скачать с сайта Analog Devices по следующей ссылке:
Также эту программу можно скачать по ссылке с сайта Мастер Кит:
https://yadi.sk/d/6IdrP4QD3J5his
Программа распространяется бесплатно, имеет 32 и 64-битные версии. Установка затруднений не вызывает, при этом драйвер для связи с компьютером по USB устанавливается автоматически. Следует сначала установить программу, а затем подключить модуль. При подключении модуля он определяется в секции Контроллеры USB Диспетчера устройств Windows как Analog Devices USBi (programmed).
Руководство по работе с программой (на английском языке):
https://wiki.analog.com/resources/tools-software/sigmastudio
На момент написания этого материала последней версией SigmaStudio была версия 3.14. Все проекты в статье созданы в этой версии.
SigmaStudio позволяет управлять различными типами DSP процессоров производства фирмы AnalogDevices и имеет свободно конфигурируемый тракт прохождения сигнала. Это означает, что имеется возможность создать произвольный тракт обработки, который удовлетворяет предъявляемым к нему требованиям, включая разнообразные фильтры (в том числе и FIR-фильтры), кроссоверы, блоки динамической обработки сигнала, а также блоки сложных алгоритмов (динамический бас, синтезаторы субгармоник и т.п.). Все алгоритмы обработки сигнала представлены в виде схемных блоков, которые можно соединять в произвольном порядке.
Рассмотрим в качестве примера двухполосную стерео аудиосистему, построенную по следующей схеме:
Для разделения частотных каналов необходим кроссовер, зададим для него частоту раздела 1000 Гц. Также для точной настройки неплохо иметь параметрический эквалайзер в каждом канале. Например, 3-х полосный в низкочастотном канале и 5-ти полосный в высокочастотном. Также, для компенсации возможной разницы в расстояниях от динамиков до слушателя, введем в каждый канал возможность регулировать задержку сигнала. Все эти требования реализуются в DSP ADAU1701 модуля BM2114dsp до усилителей.
Запустим программу SigmaStudio и создадим новый проект: Ctrl+N или File->New Project.
В процессе создания этого проекта мы изучим основные элементы управления и приемы работы в программе.
Вначале необходимо сконфигурировать аппаратные средства – это как раз открывшаяся вкладка Hardware Configuration. На эту вкладку надо перетащить из левой части окна программы (Tree Toolbox) три элемента: процессор, память и интерфейс между компьютером и модулем.
Заголовок интерфейса подсвечен красным, поскольку модуль не подсоединен. Синие точки на модулях – это выходы, зеленые – входы. Соединим выходы с входами нажимая и удерживая левую кнопку мыши и ведя указатель мыши от одной точки до другой.
Адреса шины I2C будут назначены автоматически. На этом конфигурирование аппаратной части завершено и следует перейти на вкладку Schematic для создания тракта обработки сигнала.
В секции Tree Toolbox мы видим уже другие блоки, они и предназначены для создания схемы обработки сигнала. Нам нужны кроссовер, эквалайзер, устройство задержки и также входы и выходы. Кроссовер и эквалайзер находятся в подменю Filters, устройство задержки – в подменю Basic DSP, входы и выходы – в подменю IO. Пойдем слева направо, как обычно принято следовать направлению прохождения сигнала.
Начнем с входов, их два, затем двухканальный кроссовер.
Поскольку по умолчанию ставится двухканальный монофонический кроссовер, мы должны удвоить алгоритм преобразования. Это делается следующим образом: щелчком по правой кнопке мыши на элементе (контроле) вызывается меню действий с этим элементом, далее наводим указатель мыши на пункт Add Algorithm, наводим указатель на единственный пункт IC1 и далее правой кнопкой выбираем пункт 2-way Crossover filter – Single Precision.
В результате получится двухканальный стерео кроссовер. Соединим выходы блока входов с входами кроссовера.
Теперь необходимо настроить частоту разделения каналов. Щелчком по правой кнопке мыши на синей пиктограмме вверху контрола кроссовера вызываем меню настройки.
Перетаскиванием и совмещением маркеров границ в виде зеленых точек устанавливаем частоту раздела 1000 Гц и закрываем окно.
Движемся дальше по ходу обработки сигнала. Вставим блок задержек. По умолчанию опять вставляется одноканальный блок, увеличиваем число каналов до 4 аналогичным предыдущему случаю образом. Задержки выставляются в сэмплах, один сэмпл соответствует 7 мм расстояния. Следует выставить максимальные значения задержек в сэмплах для каждого канала, они влияют на размер буфера памяти DSP, выделяемого для реализации задержек. Не следует делать буфер излишнего размера.
Далее для каждого из четырех каналов реализуем параметрический графический эквалайзер с заданным числом полос. Перетаскиваем опять-таки одноканальный Medium Size Eq на рабочее поле и правым щелчком на нем открываем свойства. Нам нужен пункт Grow Algorithm, так как необходимо увеличить не число каналов, а число алгоритмов в канале. Выбираем цифру 2, увеличивающую число алгоритмов на 2.
По аналогии настраиваем эквалайзеры для остальных каналов и выставляем частоты для каждого канала каждого эквалайзера.
И наконец, перетаскиваем из подменю IO четыре выхода – выходные цифро-аналоговые преобразователи DAC, и соединяем их с выходами эквалайзеров. Порядок соединения DAC с выходами эквалайзеров может быть изменен с помощью выпадающих меня на соответствующих контролах.
Наш собственный уникальный тракт обработки сигнала готов. Если модуль еще не подключен, его следует подключить (при этом на вкладке Hardware фон заголовка USB interface станет зеленым) и загрузить программу обработки выбрав в меню окна программы SigmaStudio пункт Action->Link Compile Download или нажать функциональную клавишу F7. При этом код программы будет записан в энергонезависимую память модуля, и будет сохраняться в ней после выключения питания, а также автоматически загружаться и выполняться после включения питания модуля. Настраиваемые параметры элементов схемы можно изменять (движками эквалайзеров, изменением числовых значений в соответствующих окнах контролов и т.п.), они будут передаваться в модуль, и отрабатываться им, но для сохранения новых параметров следует снова скомпилировать и загрузить новый код, нажав F7.
Подключив к входам модуля источник звукового стереосигнала, а к выходам – усилители и акустические системы мы получим вполне работоспособную систему звукоусиления, которую можно настроить под реальную среду прослушивания, например салон автомобиля или автобуса.
Параметры звукового тракта можно менять не только с помощью изменения параметров элементов схемы на экране программы SigmaStudio, но и с помощью внешних элементов управления (кнопки, переменные резисторы, энкодеры и т.п.). Также у модуля есть другие интересные возможности, который мы рассмотрим в следующих материалах.