SQ Система в CS55 Plus. Проект DSP в SigmaStudio для ADAU1701

АВТОЗВУК 7 февр. 2024 г.

Для управления и настройки DSP ADAU1701 используется программное обеспечение SigmaStudio. В данном приложении можно создавать проекты и цепочки обработки сигнала для всех чипов DSP, АЦП/ЦАП и цифровых УНЧ от Analog Devices.

Данный программный пакет достаточно известный. На форумах Analog Devices «ADI EngineerZone» (ez.analog.com/dsp/) очень активное обсуждение примеров различных решений, помогают с решением проблем, детально разъясняют как выполнить те, или иные действия. В настоящий момент доступ возможен только под VPN.

Скачать дистрибутив SigmaStudio можно на сайте Analog Devices, либо во ссылке ниже:

ADI SigmaStuion 4.7 (x64).exe

Для подключения, настройки в реальном времени через программный комплекс Sigmastudio и заливки программы в EEPROM модуля DSP ADAU1701 используется модуль USBi от AD.
Но это дорогое и редкое устройство, поэтому все успешно используют для данных целей плату на чипе CY7C68013A, которых много в свободной продаже на Ali

EZ-USB FX2LP CY7C68013A USB logic analyzer core board

Фото в бортжурнале Changan CS55 Plus (2G)

Плата на базе микросхемы CY7C68013A от Cypress Semiconductor умеет «прикидываться» стандартным интерфейсом USBi от AD для подключения к DSP по USB, c возможностью внесение изменений в on-line режиме и записи проекта в EEPROM, для последующей загрузки при запуске DSP.

Как я реализовал оформление данной платы и её подключение к готовому DIY процессору представлено в предыдущем посте SQ Система в CS55 Plus. Часть 6: DIY процессор (DSP)

Для использования данной платы необходимо поставить драйвер и пакет утилит от Cypress. Необходимый архив с драйверами и пакет утилит разместил по ссылке ниже:

Drivers CY7C68013A
CySuiteUSB 3.4.7_B204.exe

При первом подключении плата определяется как неизвестное устройство:

Фото в бортжурнале Changan CS55 Plus (2G)

Скармливаем драйвер «неизвестному устройству» и оно стало определяться как «Cypress FX2LP No EEPROM Device», именно так как и нужно.

Фото в бортжурнале Changan CS55 Plus (2G)
Фото в бортжурнале Changan CS55 Plus (2G)

Далее, из пакета программного обеспечения для платы Cypress, необходимо запустить утилиту «CyConsole»

Фото в бортжурнале Changan CS55 Plus (2G)

В Cypress USB Console мы видим наше устройство.

Фото в бортжурнале Changan CS55 Plus (2G)

Теперь в данной программе необходимо нашему устройству скормить скрипт, который размещен по пути C://Program Files/Analog Devices/SigmaStudio 4.2/USB drivers/x64/ADI_USBi.spt и нажав кнопку «Play script» запустить скрипт.

Фото в бортжурнале Changan CS55 Plus (2G)

В системе пропадет наше устройство, и появится новое, под названием «Analog Devices USBi (programmed)»

Фото в бортжурнале Changan CS55 Plus (2G)

Подключение платы CY7C68013A и DSP ADAU1701:

Обе платы будут общаться по шине I2C, и обращение и запись в EEPROM платы DSP также осуществляется по I2C.
Подключается всё это следующим образом (используем пины SDA, SCL, GND):

Фото в бортжурнале Changan CS55 Plus (2G)

При подключении платы CY7C68013A к ПК, запускаем снова скрипт в Cypress USB Console, и видим статус подключения интерфейса USBi в программе и SigmaStudio, блок USB Interface загорелся зеленным цветом, значит связь есть.

Фото в бортжурнале Changan CS55 Plus (2G)
Фото в бортжурнале Changan CS55 Plus (2G)

Также в сети есть статья, описывающая разные способы запуска данный платы в качестве интерфейса USBi, одним из которых является установка модифицированного драйвера, который сразу позволит определить плату как устройство USBi без манипуляций с Cypress USB Console и подгрузкой скрипта:

USB интерфейс для программирования DSP аудиопроцессоров Analog Devices в среде Sigma Studio

— модифицированный драйвер USBiDriver.zip

Данный драйвер не имеет цифровой подписи, поэтому при установки надо дать соответствующее разрешение на установку без подписи.

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

Проект в SigmaStudio:

Для начала работы с DSP в SigmaStudio надо подготовить проект.
Проект в SigmaStudio имеет блочную структуру, необходимые блоки как для организации аппаратной части, так схемы обработки сигналов выбираются из дерева блоков «Tree Toolbox», и соединяются связями в рабочем поле блоков.

Для начала работы с платой DSP ADAU1701, на вкладке «Hardware configuration» рабочей области необходимо добавить блоки USB Interface, IC1 ADAU1701, и блок IC2 E2PROM, для последующей записи нашего проекта в EEPROM на плате.

Фото в бортжурнале Changan CS55 Plus (2G)

На вкладке «Schematic» уже непосредственно размещаем блоки «ввода» (АЦП) Input 1, и «вывода» Output 1 (DAC1), Output 2 (DAC2) и так далее. А уже между блоками ввода и вывода размещаются блоки с различными алгоритмами обработки.

Фото в бортжурнале Changan CS55 Plus (2G)

Для того, чтобы у нас заработал внешний DAC PCM5102 по шине I2S, в SigmaStudio на вкладке «Hardware Configuration» и нижней вкладке «IC 1-170x\140x Register Control» необходимо выставить и проверить следующие пункты как на скриншоте ниже:

— в блоке «Serial Output 1 (channels 0-7)» поставить галочку на Master Mode, и проверить LRCLK polarity и BCLK polarity
— в блоке «GPIO» выставить:
MP6 — Output Sdata_out0;
MP10 — In Lrclk_out;
MP11 — In Bclk_out

Фото в бортжурнале Changan CS55 Plus (2G)

В ходе настройки систем на разных своих автомобилях я пришел следующему проекту:

Фото в бортжурнале Changan CS55 Plus (2G)

У каждого динамика есть свой отдельный параметрический эквалайзер, регулятор уровня, переключатель MUTE, а также есть дополнительный побортный переключатель MUTE (левая/правая сторона, для удобства замеров и настройки), а также блоки задержки сигнала.

Файл проекта у меня получился в двух вариантах, и различается они только способом задания задержки сигнала для канала сабвуфера.

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

В случае, когда сабвуфер является самым дальним излучателем, или когда он расположен в багажнике, или направлен в сторону двери/крышки багажника, необходимо задать большую задержку. И чтобы в ходе настройки и процесса «вытягивания» сабвуфера из багажника не требовалось бы постоянно корректировать задержку всех остальных динамиков, то мы ставим блок задержки сабвуфера до всех остальных каналов. Значением задержки сабвуфера у нас станет разница расстояния между сабвуфером и правым мидом, а задержку остальных динамиков мы уже выставляем относительно правого мида.
Получается, что мы можем выставить задержку правого/левого твитера и левого мида относительно правого мида, зафиксировать данный результат, и уже впоследствии корректировать задержку сабвуфера для точного согласования саба и мидбасов.

В связи с этим, у меня получилось две версии проекта:
— для ближнего размещения сабвуфера (car_dsp_v3_sub_close.dspproj);

Фото в бортжурнале Changan CS55 Plus (2G)

— для дальнего размещения сабвуфера (car_dsp_v3_sub_far.dspproj);

Фото в бортжурнале Changan CS55 Plus (2G)

Задержки в SigmaStudio задаются сэмплами, поэтому я подготовил таблицу для перевода расстояния до динамиков из точки прослушивания в сэмплы, которые вносятся в соответствующие блоки для каждого излучателя. В таблице сделал соответствующие комментарии по выбору проектов.

Расчет временных задержек (Time alignment) .XLS

Фото в бортжурнале Changan CS55 Plus (2G)

Немного информации по используемым блокам в проекте:

Основные блоки:
— Уровень сигнала на входе (IN_GAIN): с помощью этого блока можно повысить уровень входного сигнала в случае необходимости;
— Общий параметрический эквалайзер на входе (INPUT_EQ): в данном блоке можно задать отдельный фильтр (разных типов) с указанием частоты, уровня, добротности и отклонение общего гейна. Всего в данном блоке можно добавить 15 отдельных фильтров, если требуется больше, то добавляем последовательно еще один такой блок, и добавляем там новые фильтры;

Фото в бортжурнале Changan CS55 Plus (2G)

— Блоки разделительных фильтров/кроссоверов (SubCrossover и FrontCrossover): здесь задаём частоты раздела полос и порядок фильтров, доступны порядки в плоть до 48дб/окт (Linkwitz-Riley);

Фото в бортжурнале Changan CS55 Plus (2G)

— Сабсоник фильтр сабвуфера (SubSonic): фильтрация инфранизких частот для снижения искажений на сабвуферном динамике;

Фото в бортжурнале Changan CS55 Plus (2G)

— Параметрический эквалайзер на каждый канал (HIGH RIGHT EQ, MID RIGHT EQ, HIGH LEFT EQ, MID LEFT EQ): фильтры для корректировки каждого отдельного динамика;

Фото в бортжурнале Changan CS55 Plus (2G)

— Блоки задержек каналов (SUB/FRONT DELAY и HIGH/MID DELAY): один из самых дальних динамиков ставим опорным (обычно правый мид) с задержкой в 1 сэмпл (0 нет принимается), значения для остальных каналов ставим из расчета семплов в таблице, описанной ранее. В блоке задержки два значения: MAX (максимальная задержка) и CUR (текущее требуемое значение задержки). Лучше значение MAX держать ближе к значению CUR, что бы не перерасходывать память ADAU1701;

Фото в бортжурнале Changan CS55 Plus (2G)

— Дальше идут блоки уровней каждого канала, с блоками MUTE, которые используются для сведения каналов системы по уровню, и смещению центрального образа;

Фото в бортжурнале Changan CS55 Plus (2G)

Дополнительные блоки:

— Компрессор для отключения входа при отсутствии полезного сигнала (HU noise compressor): использую, чтобы убрать цифровые шумы ГУ от Changan, которые присутствуют в сигнале. Во время воспроизведения их не слышно, а в тишине они напрягают. Их слышно, когда музыка выключена, или на паузе. Эти шумы наблюдались еще при работе ГУ со штатной акустикой, похоже косяки при проектировании или реализации ГУ. Я добавил данный блок компрессора, который полностью отключает вход, когда уровень полезного сигнала становится тише -70 дБ. После остановки воспроизведения или паузы всё замолкает;

Фото в бортжурнале Changan CS55 Plus (2G). Запчасти на фото: 3020100

— Регулируемый Low-Shelf фильтр для нижнего диапазона (Bass Low-Shelf filter): данный фильтр дает мне возможность регулировать уровень нижнего диапазона с помощью потенциометра 10 кОм, который подключается на GPIO ADAU1701. ADAU1701 подключать кнопки, потенциометры и энкодеры на GPIO, которые могут управлять многими блоками в реальном времени. Модуль такой регулировки опишу в другом посте, где я сделал пульт управления басом и отключением задержек для «совместного» прослушивания в автомобиле:

Фото в бортжурнале Changan CS55 Plus (2G)

После того как мы подготовили проект, жмем кнопку «Link Compile Connect» для проверки и компиляции нашего проекта, и в правом нижнем углу получим сообщение «Ready: Compiled», значит всё нормально.

Фото в бортжурнале Changan CS55 Plus (2G)
Фото в бортжурнале Changan CS55 Plus (2G)

Чтобы загрузить наш комплект в оперативную память чипа ADAU1701, нажимаем кнопку «Link Compile Download», получим подтверждение успеха в правом нижнем углу, и теперь у нас запустится наш проект на DSP и мы можем менять параметры, настройки блоков и наблюдать изменения в сигнале в реальном времени при настройке в автомобиле:

Фото в бортжурнале Changan CS55 Plus (2G)

После того как мы закончили настройку, необходимо записать проект и параметры в постоянную память (EEPROM) DSP ADAU1701. Для этого нам нужно перейти на вкладку “Hardware configuration”, щелкнуть правой кнопкой мыши по блоку «ADAU1701» и выбрать «Write latest compilation to E2PROM»:

Фото в бортжурнале Changan CS55 Plus (2G)

Затем в окне записи выбрать параметры объема памяти (будет зависеть от объема установленного чипа памяти), страницы записи, частоты, и выполнить запись в память (как на изображении):

Фото в бортжурнале Changan CS55 Plus (2G)

При следующем запуске DSP ADAU1701 считает записанный проект и параметры из EEPROM, и запустится с заданным проектом и настройками.

На рабочем DSP всегда можно опять подключиться с помощью CY7C68013A, в SigmaStudio в текущем проекте опять нажать «Link Compile Download», продолжить настройку/корректировку, новый результат опять записать в EEPROM.

В следующем посте опишу свой подход к настройке системы, используемые инструменты и программное обеспечение.

К данному посту я также собрал все используемые инструменты и фалы вместе и разместил по следующей ссылке:

Файлы для DSP ADAU1701

Теги