Как следует из многочисленных публикаций, проблема джиттера признается многими, и многие борются с ней различными способами. Особенно остро она проявляется в двухблочных CD проигрывателях. При традиционном для домашнего комплекса построении, когда транспорт соединен с внешним ЦАПом SPDIF интерфейсом, начинает сказываться влияние всего тракта - транспорта, цифровых кабелей (вызывая смех у профессионалов), стоек, питания и т.д. и т.п. А проблема ведь решаема в принципе, особенно при использовании CD в качестве единственного цифрового источника сигнала.
Данные заметки посвящены решению проблемы джиттера при использовании внешнего самодельного ЦАП и улучшению (upgrade) бюджетных проигрывателей.
Как известно, временная стабильность цифровых данных важна только непосредственно на входе микросхемы ЦАП. Опуская критику традиционного построения тракта (транспорт-SPDIF-ЦАП), перейду к предлагаемому варианту построения системы. На мой взгляд, наиболее естественно расположить тактовый генератор в непосредственной близи от ЦАП, тактируя все составляющие цифрового тракта (сервоконтроллер в транспорте, приемник SPDIF, цифровой фильтр и собственно ЦАП) от единого источника. Проблема т.н. джиттера решается полностью. Все зависит только от качества генератора и организации тактирования ЦАП (данные на входе ЦАП желательно "перепривязать" сигналом генератора).
Вроде бы ничего нового в таком предложении нет. Но, почему-то большинство предпочитают либо перебирать варианты транспорт-кабель-приемник-ЦАП, либо городить синхронный интерфейс I2S, либо использовать преобразователи частоты дискретизации (типа AD1890, используя локальный генератор в ЦАПе). Можно еще использовать дополнительный перестраиваемый генератор (ГУН), охваченный узкополосной системой ФАП и настроенный на одну из стандартных частот дискретизации (скажем 256*44.1кГц). Но, построить хороший ГУН, задача не из простых.
Не использование общего генератора в бытовой аппаратуре связано со сложностью (и дороговизной) генератора, работающего на всех стандартных частотах дискретизации. В профессиональной технике часто используется отдельный блок мастер-генератора, тактирующий все компоненты цифровой студии (АЦП, процессор:.). Для самодельщиков же, логично было бы встроить тактовый генератор в ЦАП и синхронизировать транспорт (проигрыватель) от ЦАП.
Сделать вход синхронизации в проигрывателе не составляет труда. Приведенная ниже схема представляет собой простейший тактовый генератор - приемник внешнего синхросигнала.
В качестве инвертора может быть использован практически любой небуферизированный CMOS инвертор. Компаратор - быстродействующий с внутренним гистерезисом.
Когда подключен внешний тактовый генератор (его выходное сопротивление должно быть - 50...75 Ом), генератор на инверторе блокируется (т.к. не способен работать на низкоомную нагрузку), и компаратор выдает тактовый сигнал уже с частотой внешнего синхросигнала. Питание подается с основной платы (цифровое). Естественно, лучше добавить локальный стабилизатор. Необходимое замечание: конечно, честнее было бы сделать приемник с входным импедансом 50:75 Ом, определять наличие внешнего сигнала и переключать сигналы от внешнего\внутреннего генератора. Но, при использовании синхросигнала синусоидальной формы, вопрос о несогласованности нагрузки не будет иметь принципиального значения. Так значительно проще.
Основываясь на рекомендациях LC-Audio (www.lcaudio.com) , выпаиваем кварц и конденсаторы сервоконтроллера, на отдельной плате собираем предлагаемую схему, подключаем выход вынесенного генератора к сервоконтроллеру, устанавливаем отдельный разъем для внешней синхронизации и: слушаем. Даже без внешнего ЦАП, а только за счет вынесения (простейшего) генератора на отдельную плату, улучшение звучания будет очень заметным. В дальнейшем, желающие собрать внешний ЦАП смогут использовать вход синхронизации и не задумываться о качестве соединительных цифровых кабелей. В отличие от варианта, предложенного LC-Audio, данный вариант оставляет проигрыватель CD работоспособным и без внешнего ЦАП.
Устройство было смонтировано на демонстрационной плате Texas Instruments для ОУ. Соединения осуществлялись проводом МГТФ.
При использовании приемника SPDIF СS8412, возможны два варианта синхронизации в блоке ЦАП. Первый предложен LC-Audio - типовое включение СS8412 (режим Мастер). Отсоединить выход приемника MCK, и подать на эту цепь сигнал с общего тактового генератора. От него же (через буфер естественно) подать сигнал на предлагаемый мной приемник синхросигнала. Возможно, придется добавить инвертор между генератором и буфером, для исключения попадания фронт-на-фронт в ЦАПе.
Второй вариант предполагает использование СS8412 в режиме Slave. Необходимо самим формировать все сетки частот (SCK, FSYNC, MCK). Приемник СS8412 имеет внутри буфер на два отсчета, что позволяет подавать сигналы SCK и FSYNC от внешнего источника, при условии равенства частот дискретизации передаваемых по SPDIF и FSYNC.
Важное замечание: В случае если сервоконтроллер в проигрывателе работает на частоте 256*Fs (11,2896МГц), проблем быть не должно. В случае частоты 384*Fs (16,9344МГц), я предпочел бы сделать простейший ГУН с ФАП (скажем на 74НС4046А) для формирования частоты 16,9344МГц, подаваемой на транспорт, а в ЦАПе использовать 256*Fs (или 512*Fs). Либо использовать приемник Yamaha YM3623, работающий на частоте 384*Fs. Для перепривязки данных на входе ЦАП необходима частота 512*Fs.
Естественно, добиться максимального устранения влияния временной нестабильности ЦАП возможно только при выполнении максимальных требований, предъявляемых к тактовому генератору, размещению элементов на плате и качеству радиокомпонентов. В этом случае о проблеме т.н. джиттера можно будет забыть, и сосредоточится на аналоговых каскадах и источниках питания, влияние которых огромно и, вероятно, неустранимо в принципе.
Смирнов Сергей, Февраль 2001.
Выбор был остановлен на SC8412 ( http://www.crystal.com ). Данная микросхема имеет режим SLAVE, при котором данные, выделенные из входного потока, записываются в буфер ( 2 отсчета по каждому каналу), а считывание происходит синхронно с сигналами SCK, FSYNC, работающими как входы и поступающими от отдельного генератора сеток. В случае если частоты дискретизации на входе (Rx) и выходе (SCK, FSYNC) не равны, происходит либо потеря, либо повторение отсчета, с соответствующей индикацией данной ошибки. В нашем случае, предполагается, что частоты равны вследствие использования единого тактового генератора.
Может быть использован любой цифровой фильтр (ЦФ) передискретизации (8Х), с соответствующей коррекцией схемы. Мною предполагается использовать фильтр PMD-100 (HDCD) фирмы Pacific Microsonics. http://www.hdcd.com Данный фильтр многими оценивается как один из самых лучших для формата CD, и, кроме того, обладает широким набором дополнительных функций, правда, доступных только через программное управление (регулировка громкости, семь уровней псевдошума (dither), режимы 2Х, 4Х).
Данный элемент необходим для "перепривязки" (пересинхронизации) данных, поступающих с ЦФ на ЦАП. Анализ документации на все ЦФ (SM5842, SM5843, PMD-100:) показывает, что время задержки выходных данных относительно системной тактовой частоты (MCLK=256*Fs) имеет разброс 15:50\60 нс, что в максимуме больше половины периода тактовой частоты (Ts=~88ns для MCLK= 44100 * 256). Такой громадный разброс наводит на мысль о том, что, несмотря на заверения разработчиков ЦФ, данный модуль является потенциальным источником джиттера. Для устранения возможных флуктуаций и используется триггеры "перепривязки".
В результате данные, поступившие с ЦФ и перепривязанные на отдельных триггерах (т.е. данные на входе ЦАП), будут иметь флуктуации фронтов определяемые флуктуациями тактового генератора (3..10 пс в самом лучшем случае) и непосредственно триггера (1..2 пс для серии HCT). Никакие временные флуктуации цифровых данных обусловленные транспортом, линией передачи (SPDIF интерфейс), приемником и ЦФ не будут иметь значения вследствие данного варианта синхронизации.
Все было бы хорошо, если бы не вставал вопрос о пересинхронизации пачки тактовых импульсов (BCKO). При таком разбросе в задержке ЦФ единственный способ сделать это, это сформировать строб, охватывающий биты данных, и сложить его с тактовой сеткой на элементе "И", получив обновленную пачку импульсов. Один из вариантов предложен на сайте http://members.chello.nl/%7Em.heijligers/DAChtml/dactop.htm
Предложенное мной схемное решение хотя и более громоздкое, но, на мой взгляд, более корректное. Как можно видеть, сигнал на входе U209:B устанавливается в 1 положительным фронтом сигнала BCKO, а сбрасывается в 0 - положительным фронтом сигнала MCLK. Задержка между этими фронтами - 15:38 нс (для PMD-100).
Честно говоря, можно было бы ограничиться пересинхронизацией только сигналов WCKO и DG, которые и определяют момент смены отсчета на выходе многобитовых ЦАП (WCKO для PCM63/1702, DG для D20400). Но, на мой взгляд, в аудио технике лучше не экономить. Кроме того, всегда лучше работать с сигналами, имеющими минимальные временные флуктуации.
Ниже приведены временные диаграммы схемы пересинхронизации.
Сигналы WCKO, BCKO, DATA - сигналы, поступающие с ЦФ.
Сигнал BCK_EN - строб, накрывающий биты данных, в дальнейшем складывается с SYS_CLK (сигналом, инверсным по отношению к MCLK и опережающим его на 5:7 нс) для получения пачки тактовых импульсов.
Сигнал BCKO показан для случая минимальной задержки (15нс, верхний рисунок) и максимальной задержки (50нс для PMD-100, нижний рисунок) относительно MCLK. Данные - все единицы. Нетрудно видеть, что все сигналы, поступающие с ЦФ, задерживаются на полтора периода системной частоты (MCLK) и освобождаются от всех временных флуктуаций.
Данная схема ориентирована на использование многобитовых ЦАП. Как альтернатива Ultra Analog D20400 могут быть использованы PCM63P-K, PCM1702P (http://www.burr-brown.com) и тп. Схема пост фильтрации и выходного буфера в данном случае не рассматривается, и может быть выбрана в зависимости от предпочтений и возможностей конкретного разработчика. В конце документа приведен список ссылок на сайты, где можно ознакомится с различными схемными решениями аналоговой части.
На приведенной схеме показан простейший тактовый генератор на цифровом элементе исключительно в качестве примера. Рекомендуется использовать либо покупной тактовый генератор с малым уровнем джиттера (http://www.lcaudio.com/, http://www.mfelectronics.com/slj_fixtri.htm , и тп), либо разработать малошумящий генератор на прецизионном кварцевом резонаторе (к примеру, http://www.wenzel.com/pdffiles/xtalosc.pdf). В любом случае, необходимо уделять особое внимание схеме питания генератора, его топологии и линии доставки тактового сигнала от генератора до ЦАП. Возможно, разумным будет использование отдельного трансформатора не отключаемого от сети. Наличие малошумящего линейного стабилизатора напряжения обязательно.
Данный блок предназначен для формирования синхросигнала частотой 384*Fs (16934400 Гц) в случае, если проигрыватель (транспорт) имеет такую тактовую частоту (Denon DCD-725/1015, Kenwood DP7060/7090, Marantz CD 63 SE, Teac VRDS-10 и другие). В противном случае, схему с ФАП и делители на два и три можно будет удалить, подав сигнал MCLK непосредственно на выходной резонансный усилитель\буфер и пересчитав значение емкости С307 в сторону увеличения.
На приведенной схеме источник питания не показан. Рекомендуется раздельное питание цифровой и аналоговой частей схемы вплоть до трансформаторов. Особое внимание необходимо уделить питанию аналоговой части. Примеры можно посмотреть в ссылках, но в любом случае, применение высококачественных (и, к сожалению, дорогих) конденсаторов необходимо. Black Gate, Elna, Nichicon, Wima - первые претенденты на использование. Среди первых трех выбор - дело вкуса. Все напряжения питания, за исключением +VA2, -VA2, равны +5В. Желательно использовать отдельные стабилизаторы на каждую группу питания (+VA1, +VD1:+VD6). Как наиболее простое решение - LM317. Но для питания схемы пересинхронизации и цифрового питания ЦАП (U201:U210), я бы применил высококачественные малошумящие стабилизаторы напряжения (MIC5205, TL431, ADP3303 и тп).
Схема приемника синхросигнала приведена в первой части статьи. В качестве компаратора можно попробовать использовать инвертор (из того же корпуса, что и для генератора), охватив его обратной связью по постоянному току.
Еще раз обращаю внимание, что на приведенной схеме отсутствуют элементы питания отдельных устройств, а так же вся аналоговая часть. Здесь хочу привести лишь отдельные рекомендации при разработке конструкции. Каждый вывод питания цифровых МС должен быть зашунтирован керамическим конденсатором 0,01:0,1 мкФ. Желательно использовать бескорпусные конденсаторы (в крайнем случае, максимально укоротить выводы), а так же танталовые SMD конденсаторы. Крайне желательно наличие хорошего (сплошного) слоя земли, охватывающей всю цифровую часть. Возможно, потребуется введение резисторов (50:200 Ом) последовательно в каждую цепь входных сигналов ЦАП (BCK_O, WCK_O, DATA_L/R, DG_O), если будет наблюдаться дребезг на фронтах.
Для того, что бы данный ЦАП мог работать с источником, необорудованным приемником синхросигнала (т.е. как обычный выносной ЦАП), необходимо подменить сигнал SYS_CLK сигналом MCKR (с выхода CS8412), отключив DAC Master Clock Generator. Это можно осуществить введением механического или электронного переключателя.
Основная идея данной схемы состоит не в том, как будет работать связка CS8412 - PMD-100 - PCM63PK(D20400, PCM1702) c указанными элементами и топологией, это и так работает (и примеров тому много), а в том, что бы показать схемную реализацию возможности избавиться от влияния всех частей на пути прохождения цифровых сигналов от транспортного механизма до ЦАП. Уверен, что данный подход позволит исключить один из основных факторов деградации звука при цифро-аналоговом преобразовании. Я имею в виду Jitter.
Смирнов Сергей, Май 2001.