Как сделать самый "интересный" узел 1х DAC
Часть II-ая. И не последняя :)))
Итак в первой части я рассмотрел как "привязать" мультибитные ЦАПы с последовательной загрузкой данных к популярному ресиверу CS8412\14 посредством прерывания тактовой частоты загрузки данных в регистр ЦАПа.
К сожалению не все м\с ЦАП допускают использование такого способа. Да и не всем хорош такой способ. Например, отказались работать с прерыванием тактовой такие прекрасные м\с, как PCM1704. Слишком уж требовательны оказались они к временным соотношениям сигналов на своих входах. Поэтому я публикую самый правильный способ соединения:
Способ второй: "сдвиговый регистр".
Пусть имеем: приемник цифрового потока CS8412(14) и пару м\с цап PCM56. У 8412(14) имеем три "ноги" SCK, FSYNC, SDATA. У PCM56 три "ноги": BCK, LE, DATA.
Начинаем с м\с ЦАП - данные отсчета (DATA) загружаются во внутренний регистр ЦАП по тактам BCK, после того как данные будут загружены в этот регистр, перепад уровня на "ноге" управления обновлением ЦАП (LE) заставит ЦАП выдать ток на аналоговом выходе, соотвествующий цифровому отсчету и удерживать его до следующего обновления.
Ниже приведена диаграмма выходных сигналов ресивера CS8412 в режиме "5":
Первым следуют данные левого канала, затем правого. В каждом полупериоде сигнала FSYNC умещается 32 периода сигнала SCK. Данные смещены к правой части полупериодов FSYNC (Right-Justified).
Мы знаем (из даташита) что данные грузятся в регистр м\с цап по положительному перепаду сигнала CLK (он же SCK). Также мы видим, что обновление (Latch) м\с цап мы должны производить перепадом от высокого уровня к низкому ("отрицательный" перепад) сигнала LE (Latch Enable) после загрузки данных левого и правого каналов.
Исходя из вышеперечисленного формулируем задачу:
Решение:
Выбираем регистр сдвига, тонкости.
Первое, о чем надо помнить, это то, что данные должны загружаться и выгружаться из регистра по положительному перепаду сигнала SCK, также как и у внутреннего регистра цап. Второе - быстродействие регистра должно быть не ниже 64Fs, а лучше больше раза в три-четыре.
Готового на 32-разряда я не нашел. Чаще всего под рукой оказываются 8-разрядные сдвиговые регистры. У меня, например, были 74HC595, работающие вплоть до частот 100Мгц, хотя можно сделать и на 299-х регистрах. Надобно таких регистров 4 шт. (4х8=32).
В качестве буферных элементов применена м\с 74HC86. Ее назначение - "разгрузить"выходы ресивера, а также при необходимости легко заставить ее инвертировать проходящий сигнал.
Ну вот и собственно сама схема:
Сигналы обозначены так, как они обычно обозначаются на готовых схемах цап с циф. фильтрами. Вот собственно и все. Творите!
А в третьей части я расскажу как сделать этот узел цап без цифрового фильтра если источником цифровых сигналов выступает шина I2S. Но не пугайтесь! 30-40 корпусов логики или какой-нибудь заказной ИС там не будет. Все гораздо проще :)))