Простой подавитель джиттера

Сегодня уже не секрет, что цифровая техника свободна от помех только теоретически. Реальные цифровые сигналы на самом деле аналоговые и имеют конечную крутизну фронтов импульсов, поэтому любая помеха приводит к временному «дрожанию» фронтов или т.н. джиттеру. Его появление может, например, «искорежить» строчную развертку, сделав волнистыми вертикальные линии, а в цифровых звуковых системах — привнести неприятные призвуки. Особенно чувствительными к джиттеру оказались современные устройства цифровой звукозаписи с многократной (х4 и выше) передискретизацией (оверсэмплингом), что вызвало появление весьма дорогостоящих устройств подавления джиттера («анти-джиттеров»), основанных чаще всего на следящей системе с ФАПЧ.

 

Предлагаемый Вашему вниманию джиттероподавитель не содержит фазовых детекторов и управляемых напряжением генераторов, а построен (рис. 1) на элементарных звеньях — входном и выходном ждущих мультивибраторах (Input/Output monostable), цепочки устранения постоянной составляющей (DC removal), интегратора (Integrator) и компаратора (Comparator). Работа схемы основана на том, что при неизменном пороге срабатывания компаратора устранение постоянной составляющей импульсной последовательности, подаваемой на интегратор, приводит к усреднению временного расстояния между импульсами, т.е. к подавлению джиттера (рис.1).

Практическая схема джиттероподавителя, работающая вплоть до частот 10 МГц, показана на рис. 2. Первые четыре логических элемента формируют входной мультивибратор, конденсатор 82 пФ отрезает постоянную составляющую, полевой транзистор и конденсатор 220 пФ образуют интегратор, следующий логический элемент компаратор, ну и далее — выходной мультивибратор с выходным буфером.

DSP процессор на ADAU1701. Часть 7 — подключение внешнего ЦАПа для увеличения количества выходных каналов.

Два аналоговых входа и четыре выхода DSP процессора для построения аудиосистемы в авто достаточно лишь для поканальной двухполоски с сабом. Мой план — три полосы (без пассивных фильтров) + саб . Соответственно, необходимо, как минимум, 6 независимых каналов. Техническая документация процессора ADAU1701 говорит о возможности загнать в него цифру и её же (цифру) из него вытащить. По входу всё очень не просто (как я понял по крайне скупой информации из инета). А вот выход по I2S теоретически не представлял сложностей… Но, как перефразировал одного древнего мыслителя Борис Борисович Гребенщиков, — «Теория суха, а древо жизни зеленеет в листах».


Заказал на Али ЦАП на 5102. Подключил к 1701 — не работает. Крутил и так и так — не получается. Смотрю осциллографом — сигналы на входе как в описании протокола, но на выходе тишина.


Заказал транспорт USB-I2S для проверки. ЦАП не работает.


Случайно на одном украинском сайте торгующем электроникой прочитал о возможной ошибке в разводке платы — когда на 20-ю ногу микросхемы приходит земля вместо питания. Это правильный вариант.


Как у меня. Ни при каких обстоятельствах такая плата работать не будет. Я пытался перерезать дорожку и повесить +3,3в как положено, но дорожки очень мелкие и земля выходит и из под микросхемы.


Заказал второй цап. Попробуйте их отличить. Надписи не признак работоспособности — на страничке с рабочим ЦАПом фото в описании не такое.


После проверки работоспособность нового цифро-аналогового преобразователя собрал всё воедино. Так как ЦАПу нужно питание от 5 до 12в, пришлось добавить dc-dc модуль на 2596. Выставил его на 7,5в.


Набросал простейшую конфигурацию для проверки работоспособности. Если выходов более 4-х, то они становятся цифровыми. Загрузил в процессор — на аналоговых выходах процессора есть сигнал, на выходе ЦАПа нет.


Цифровые выходы с процессора необходимо сконфигурировать — в IC-1-170x\140x Register Control выбрать что выводится на GPIO и поставить галку по стрелке №2. После этих манипуляций всё будет прекрасно работать.

DSP процессор на ADAU1701. Часть 6 — программирование процессора в реальном времени с помощью китайского Cypress CY7C68013A с AliExpress


На Али был куплен анализатор, аналогичный ЧипДиповскому, стоимостью в 3 раза дешевле.


С ним всё тоже прекрасно работает. И нет необходимости паять провод. Соединения: sda-sda, scl-scl, gdr-grd, +3.3v-vcc, на adau1701 не подписанный разъём, левый контакт(сброс)-pb0.

DSP процессор на ADAU1701. Часть 5 — программирование процессора в реальном времени с помощью Cypress CY7C68013A


Самый удобный способ программирования Adau 1701 из всех испробованных — с помощью Киприота Cypress CY7C68013A. Практически так-же управляет 1701 фирменная плата USBi от AnalogDevices. Различие в одной лишней операции и стоимости устройств — Чиповская плата стоит 15 баксов, AD раз в 6 дороже.


Эту плату можно превратить в различные контроллеры с помощью программы и драйверов от Cypress. В том числе и в USBi для Сигма Студии.


Первым делом подключаем плату к компьютеру и ставим драйвер от Cypress. Вместо EZ-USB появляется такое.


Открываем Cypress USB Console и видим тоже самое.


Нажимаем Load script и в папках СигмаСтудии находим скрипт ADI usbi.


Загружаем — Play script и наша плата становится AnalogDevises USBi.


Загружаем СигмаСтудию, перетаскиваем USBi (с другими работать не будет), Adau1701 и епромку. Зелёный цвет говорит о соединении с процессором.


Создаём проект. Снизу справа статус. Для загрузки необходимо нажать кнопку над стрелкой 2.


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


Подключения модулей. Всё разъёмы на них подписаны.


Единственный неудобный момент — нужно один провод подпаять к 6-й ноге микросхемы памяти. Проще это сделать в этой точке.


Желтый джампер необходимо открыть и на ногу ближнюю к микросхеме подключить провод SDA. Кстати, светодиод в центре платы загорается после загрузки скрипта из Ципрус консоли.


Если устройство ещё не USBi светодиод не горит. Сброс (в моём случае синий провод) подключать как на фото — этот разъём, к сожалению, не маркирован.

DSP процессор на ADAU1701. Часть 4 — Запись файла с проектом в память с помощью Arduino.


Вторым из испробованных вариантов записи файла с проектом в память процессора — через Ардуино. В моём случае это китайская Uno.


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


Очень важный момент. Процессор работает с уровнем сигналов 3,3в. Ардуинка выдаёт 5. Для согласования использовал вот такой преобразователь.


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


Файл записывается бесплатной программой Tera Term. Hex файл из СигмаСтудии преобразовывать не нужно. Необходимо выбрать сом порт.


Если всё нормально, то появится такое окно.


Скетч настроен на скорость 19200.


Соответственно необходимо её выбрать.


Перезагружаем терминал и видим такую картинку.


Выбираем файл и записываем. Всё. Устройство готово к работе.

DSP процессор на ADAU1701. Часть 3 — Запись файла с проектом в память посредством программатора.


В используемом варианте устройства (а есть ещё версия RDC2-0027v2, она проще — нет источника питания и микросхема памяти впаяна в плату) память в корпусе dip8 может быть установлена в кроватку или в корпусе soic8 смонтирована на плату. Есть и третий вариант — монтаж в плату-переходник.


Я купил микросхему в корпусе dip8 чтобы попробовать записать файл с помощью простейшего программатора с Али. Требования к eeprom'ке такие — минимальный объём 32 килобита, организация страницы 32 байта.


Микросхема для впаивания в плату в корпусе soic8.


Переходник, с помощью которого память в корпусе soic8 можно сделать съёмной. Только вместо контактов пап на него необходимо впаять мамы.


Эксперимент проводился с простейшим программатором за 175р.


Первым делом hex файл из Сигма Студии необходимо преобразовать в бинарник специализированной программой. Она бесплатная и доступна для скачивания на сайте Чип и Дипа.


Затем записать получившийся файл с расширением bin в микросхему с помощью программы CH341A-Usb programmer. Она тоже бесплатная. Найдена в интернете.

В следующей части расскажу как записывать файл в память с помощью Arduino.

DSP процессор на ADAU1701. Часть 2 — Создание проекта в СигмаСтудио.


Чтобы заставить работать процессор как нам нужно необходимо создать проект аудиосистемы и записать его в память на плате. Для этих целей используется бесплатная программа SigmaStudio доступная для скачивания на официальном сайте Analog Devices. Для начала работы в ней создаём новый проект. Слева появится дерево доступных продуктов.


Перетаскиваем используемую микросхему на основной экран. При этом появляется вкладка schematic.


Аналогично поступаем с usbi audio и e2prom.


Соединяем модули.


Переходим к вкладке schematic. В дереве слева появляются модули обработки сигнала.


Начинаем с входов-выходов. Перетаскиваем входной и выходные модули.


Вот что получилось.


Потом пару кроссоверов и модуль задержки. У программы есть возможность не перетаскивать одинаковые модули, а расширить один. Для этого правой клавишей нажимаем на модуль, выбираем add algorithm/IC1/ и кликаем на вывалившеюся вкладку.


Получился 4-х канальный модуль задержки. Если разместить 4-ре отдельных то работать будет точно так же.


Добавил регуляторы уровня сигнала для каждого канала. На самом деле можно обойтись двумя в ВЧ каналах.


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


Возвращаемся в hardware configuration. Нажимаем link compile connection.


Теперь можно записать наш проект в файл. На adau1701 нажимаем правую кнопку и write latest compilation to e2prom. Всё.



В папке программы появился файл e2prom.hex

О способах записи файла в память процессора расскажу в следующей части.

DSP процессор на ADAU1701. Часть 1 — Знакомство.


Разработчик — группа лиц под громким названием Электронные войска, производитель и продавец — фирма по продаже электронных компонентов Чип и Дип. Основа — звуковой процессор фирмы Analog Device ADAU 1701 с обвязкой из специализации производителя и источник питания на MC34063, позволяющий питать устройство в широком диапазоне напряжений(от 5 до 35 в.). Розничная цена (вместе с памятью) 1200р.


Обратная сторона платы. Кто то из разработчиков явно питал страсть к одному британскому музыкальному коллективу.



Программируется процессор в фирменной бесплатной программе Sigma Studio, доступной на официальном сайте AD.

В следующих частях расскажу о создании конфигурации и загрузке её в память.