Проект SigmaStudio для зонного DSP усилителя. Установка стека A2B в SigmaStudio

В этой статье опишу процесс создания проекта в SigmaStudio для зонного DSP усилителя.

1. Установка SigmaStudio и стека A2B

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

Далее, для поддержки в SigmaStudio устройств шины A2B необходимо скачать и установить стек для поддержки устройств A2B. По умолчанию ПО ставится на диск C — C:\Analog Devices\ADI_A2B_Software-Rel19.3.1\. После установки стека A2B переходим в каталог c:\Analog Devices\ADI_A2B_Software-Rel19.3.1\GUI\x86_x64\ и копируем два dll файла A2B.dll и A2BStack.dll в корень каталога установки  SigmaStudio (C:\Program Files\Analog Devices\SigmaStudio 4.6\).

После копирования файлов запускаем SigmaStudio, идем в пункт меню ToolsAdd-Ins-Browser и проверяем, что в списке есть файл A2B.dll и на нем установлен чекбокс. 

Добавление стека A2B в SigmaStudio
Добавление стека A2B в SigmaStudio

Если файл в списке не появился автоматом, то в этом же окне нажимаем кнопку «Add DLL» и выбираем скопированный на предыдущем этапе файл  A2B.dll из каталога C:\Program Files\Analog Devices\SigmaStudio 4.6\. После добавления файла не забываем нажать кнопку сохранить в окне AddIns. 

Добавление файла A2B.dll
Добавление файла A2B.dll

Теперь SigmaStudio поддерживает устройства A2B. Для проверки можно создать новый проект и в окне «Tree ToolBox» в секции «Communication Channels» должны быть видны две записи — A2B-Aardvark и A2B-USBi.

Поддержка A2B в SigmaStudio
Поддержка A2B в SigmaStudio

2. Проект SigmaStudio для усилителя

Далее рассмотрим тестовый проект, который можно скачать на странице проекта GitHub. В каталоге находятся два проекта, основной для ADAU1452 — test_project_main.dspproj и для конфигурации шины A2B — test_project_a2b.dspproj. Рассмотрим каждый из них отдельно. 

Конфигурация модулей тестового проекта  следующая:

2.1. Проект DSP ADAU1452

На вкладке «Hardware Configuration» добавляем USBi интерфейс, DSP процессор ADAU1452 с I2C адресом 0x70 и EEPROM память, которая располагается на шине SPI.

Конфигурация USBi проекта.
Конфигурация USBi проекта.

Далее необходимо настроить регистры ADAU1452, для этого переходим на вкладку сверху «Hardware Configuration» и снизу на вкладку «IC 1 — ADAU145x Register Control«, и на вкладке «CLOCK_CONTROL» выставляем  конфигурацию тактовых генераторов и PLL.

Настройка тактовых генераторов и PLL ADAU1452
Настройка тактовых генераторов и PLL ADAU1452

На вкладке «SERIAL_PORTS» конфигурируем аудио порты для входов и выходов.

На входах SDATA_IN0 и SDATA_IN1 у нас подключена мастер нода шины A2B, сюда поступают все восходящие аудиопотоки от нод на шине A2B (например от модуля аналоговых входов). На вход SDATA_IN2 подключен аудио выход I2S от ESP32, который используется для приема аудио по Bluetooth. На вход SDATA_IN3 подключена USB аудиокарта на микросхеме PCM2706.

Выходы SDATA_OUT0 и «SDATA_OUT1 подключены на мастер ноду шины A2B, сюда идет звук на нисходящие каналы нод (например выходы на усилитель мощности или модуль линейных выходов). Выходы SDATA_OUT2 и SDATA_OUT3 не используются.

Настройка аудио портов ADAU1452
Настройка аудио портов ADAU1452

Описание блоков тестового проекта ADAU1452.

Описание блоков тестового проекта DSP усилителя

Проект блока для физического регулятора громкости находится на второй странице проекта ADC_VOL. Он читает сигнал на 0 входе АЦП ADA1452.

Регулятор громкости от внешнего входа АЦП ADAU1452
Регулятор громкости от внешнего входа АЦП ADAU1452

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

NxM Mixer в конфигурации 10 входов, 8 выходов
NxM Mixer в конфигурации 10 входов, 8 выходов

2.2. Проект шины A2B

Шину A2B необходимо сконфигурировать со всеми слейвами и устройствами на шинах I2C слейвов. Далее сгенерированый файл проекта необходимо будет положить в каталог прошивки ESP32

На вкладке «Hardware Configuration» добавляем USBi интерфейс и трансивер серии AD24xx. Выставляем I2C адрес трансивера 0x68.

Настройка USBi для A2B
Настройка USBi для A2B

На изображении ниже описание блоков проекта A2B.

Описание блоков тестового проекта A2B
Описание блоков тестового проекта A2B

Нажимаем на блоке DSP ADAU1452 ПКМ, выбираем «Peripheral Properties» и указываем xml файл проекта DSP.

Выбор проекта ADAU1452
Выбор проекта ADAU1452

Настройки мастер ноды A2B. Включаем Upstream и Downstream потоки. Размерность слота ставим 24bit. Чем выше размерность тем меньше трансивер поддерживает одновременных потоков. 

Настройка Upstream и Downstream трансивера A2B AD2428
Настройка Upstream и Downstream трансивера A2B AD2428

На вкладке «Audio Config» выбираем формат TDM8 (для текущей конфигурации — один 8 канальный усилитель)»

Настройка параметров аудио данных трансивера A2B AD2428
Настройка формата аудио данных трансивера A2B AD2428

Настройка ноды усилителя. На вкладке «Slot Config» cтавим чекбокс «Enable Manual Slot Configuration«. Количество пропускаемых, через ноду , вверх слотов из порта B выставляем 2, это 2 входных канала от модуля аналоговых входов. В Downstream отмечаем номера слотов TDM8, они у нас первые 8.

Настройка слотов трансивера A2B AD2428
Настройка слотов трансивера A2B AD2428

Выбираем режим TDM8 с размерностью кадра 32bit.

Настройка аудио данных трансивера A2B AD2428
Настройка формата аудио данных трансивера A2B AD2428

Для блоков I2c с адресами 0X6A и 0X6B , это 2 микросхемы усилителей на шине I2C трансивера в усилителе (нода 1), выбираем файл с командами конфигурации микросхем, при загрузке проекта через SigmaStudio команды из этого файла выполняются, тем самым производя настройку микросхем усилителей (TAS6424). Эти команды так же сохраняются в заголовочный файл adi_a2b_i2c_commandlist.h при экспорте файлов проекта, из этого файла ESP32 будет инициализировать все ноды и устройства I2C на шинах нод при включении усилителя.

Выбор конфигурационного файла для I2C устройства
Выбор конфигурационного файла для I2C устройства

Указанный xml файл содержит следующие команды для записи в регистры TAS6424.

Команды инициализации TAS6424 через шину I2C
Команды инициализации TAS6424 через шину I2C

Настройка ноды аудио входов производится аналогично. Для теста я использовал 2 канала вместо поддерживаемых 4. Количество восходящих каналов 2.

Настройка слотов трансивера A2B AD2428
Настройка слотов трансивера A2B AD2428

Формат аудиоданных TDM2, размер фрейма 32bit.

Настройка формата аудио данных трансивера A2B AD2428
Настройка формата аудио данных трансивера A2B AD2428

Указываем файл с командами для I2C, настройка АЦП ADAU1978.

Выбор конфигурационного файла для I2C устройства
Выбор конфигурационного файла для I2C устройства
Команды инициализации АЦП ADAU1978 через шину I2C
Команды инициализации АЦП ADAU1978 через шину I2C

После настройки и тестирования проекта необходимо экспортировать файлы, заголовочный файл adi_a2b_i2c_commandlist.h используется при компиляции прошивки ESP32. Его необходимо скопировать в каталог configFromSigma проекта прошивки.

Экспорт файлов проекта SigmaStudio
Экспорт файлов проекта SigmaStudio
Подписаться
Уведомлять
guest

0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Поделиться своими мыслямиx