Как сделать самый "интересный" узел 1х DAC
Очень часто читатели моего сайта задают один и тот же вопрос: "Как в DAC 1x соединить ресивер и ЦАПы, разделяя общий цифровой поток на правую и левую части?". При этом чаще всего добавляя, что в цифровой технике не сильны :))).
Чаще всего я отвечаю, что это просто, нужно лишь просто напросто _ВНИМАТЕЛЬНО_ прочитать даташиты от приемника цифрового сигнала и м\с ЦАП и совсем немножко подумать, а главное - разобраться как это все работает.
Существуют два способа это проделать.
Способ первый: "прерывание тактовой".
Приемник CS8412(14) и пара цап PCM56. У 8412(14) имеем три "ноги" SCK, FSYNC, SDATA. У PCM56 три "ноги": BCK, LE, DATA.
Начинаем с м\с ЦАП - данные отсчета (DATA) загружаются во внутренний регистр ЦАП по тактам BCK, после того как данные будут загружены в этот регистр, перепад уровня на "ноге" управления обновлением ЦАП (LE) заставит ЦАП выдать ток на аналоговом выходе, соотвествующий цифровому отсчету и удерживать его до следующего обновления.
Таким образом делаются два важных вывода:
Исходя из вышеописанного следует, что формат выходных данных ресивера должен быть таким, чтобы данные отсчетов правого и левого канала были смещены к правой части сигнала FSYNC. Т.е. Right-Justyfied Format.
Теперь смотрим как идут сигналы в этом формате от ресивера: при высоком уровне сигнала FSYNC идут "левые" отсчеты, при низком правые. Значит всего-то и нужно поставить два логических элемента, пропускающих тактовую SCK от 8412(14) на соответствующие ноги BCK ЦАП правого и левого каналов в зависимости от уровня FSYNC. Сам сигнал FSYNC будет служить сигналом обновления м\с ЦАП - LE, только его нужно проинвертировать, т.к. обновление ЦАП PCM56 наступает при перепаде от высокого уровня к низкому. И помня о последних 16 -битах загружающихся в регистр, можно сэкономить элемент, отключающий тактовую для ЦАП правого канала - данные и так будут последними.
Для ничего не понявших привожу "конкретную" схему на 74HC02:
В следующий раз я расскажу о регистрах сдвига и втором способе :)))