
Продолжаем разбираться с принципами конструирования ЦАП. После первого материала были вопросы, какой именно ресивер выбрать, почему и тд. Я постараюсь на эти вопросы немного ответить и двинемся дальше.
Рассмотрим структуру самого ЦАП, имеется ввиду законченное изделие, а не чип.
ЦАП глобально состоит из 3 частей, а локально из 5.
Глобальное строение – это 3 секции.
- Блок ресивера.
- ЦАП
- “Выхлоп”
А локально: из схемы подключения внешних источников (1), из ресивера (2), из цап (3), из “выхлопа” – усилительный каскад + ФНЧ (4), и из блока питания (5).
Рассмотрим первый пункт.
Блок ресивера/трансивера.
Ранее мы уже составили схемку подключения к ресиверу CS8412 по коаксиалу. Но почему мы не могли сразу подключить этот SPDIF вход в непосредственно сам ЦАП TDA1543? Зачем нам нужен какой то ресивер CS8412?
Как видите вопросов может возникнуть много.
Микросхема ЦАП делает что?
Получает цифру (набор нулей и единиц) и преобразует ее в аналог (ток/напряжение), об этом более подробно я рассказывал в материале Популярно о мультибитном ЦАП.
Дело в том, что сам чип ЦАП TDA1543 готов принять цифровые данные, но в случае c TDA1543, только если они будут в формате I2S.
Из этого вобщем то следует понять, что нам нужно узнать и что такое – эта самая шина I2S или ее производственная реинкарнация I2C. Но к шине I2S более подробно вернемся позже.
Нам нужно только знать, что TDA1543 хочет получать данные в формате I2S.
Как их получить в таком формате?
Для этого нужно подобрать чип-ресивер, который умеет получать цифровые данные по коаксиалу и выдавать их дальше в формате I2S.
Я сразу скажу, сегодня современные ресиверы (это специальная микросхема) умеют выдавать данные в очень многих форматах. ОЧЕНЬ МНОГИХ.
И вот мы завели по схемке из предыдущей статьи
цифровые данные через коаксиальное соединение в ресивер.
Замечательно. В теории какие то ноги ресивера должны отдавать данные в формате I2S. Но, напомню, так как современные ресиверы сегодня поддерживают очень много форматов, а не только I2S, то в ресиверах есть несколько управляющих ног, на которые нужно подать определенную комбинацию нулей и единиц (какую именно – написано в даташит к ресиверу и для каждого формата своя комбинация). На одну ногу например ноль, на другую один, и на третью ноль (для I2S-режима ресивера CS8412).
И тогда ресивер начнет отдавать данные именно в нужном формате I2S.
Немножко подробнее про CS8412 и I2S. В ресивере есть несколько управляющих пинов. Главный пин M3 может иметь значение НОЛЬ и тогда активны несколько режимов, если же М3=1, то добавляются еще 8 режимов. I2S режим есть при М0=0.
Соответствие пинов M ногам микросхемы:
M3 – 17 нога
M0 – 23 нога
M1 – 24 нога
M2 – 18 нога
Следовательно для I2S нужно M3 задать 0.
Теперь смотрим по табличке выше, что при M3 (нога 17)=0 для выбора режима работы в формате выхода I2S нужно установить:
M0 (нога 23)=0
M1 (нога 24)=1
M2 (нога 18)=0
Т.е. подаем 5 вольт на ноги 24.
А ноги 17, 18 и 23 заземляем (или оставляем в воздухе?).
Другими словами каждому ресиверу нужно определенным (у каждого по своему) образом задать режим I2S. Если у вас цап не TDA1543, то может быть нужен другой формат (не I2S). В целом ничего в этом сложного нет – это как рубильники – вы какие то рубильники включили и ресивер стал работать так, как вам нужно.
Остался вопрос, как именно включить эти рубильники. Включить мы можем подав 1 или 0, на определенные ножки ресивера. Но вы прекрасно понимаете, что у нас нет никаких 1 и 0. У нас есть напряжение от источника/ов питания и не более.
Здесь настало время познакомится с понятием TTL.
TTL – это Транзисторно-Транзисторная-Логика. Не вдаваясь в глубину этих логических элементов (пока) я расскажу главное, что нам нужно знать здесь и сейчас.
В теории логические элементы питаются от 5 вольт и логично предположить, что если подать на такой элемент (а в качестве него у нас выступает ножка ресивера) максимальное напряжение 5 вольт, то это и будет 1. А если ничего не подавать (ноль вольт), то это и будет нужный ноль. Но вы действительно можете гарантировать, что подадите именно 5 вольт для единицы, а не 4,99999? И как поведет себя в таком случае логика?
Поэтому были обозначены уровни TTL.
0 – напряжение от 0 до 0,5 вольт
1 – напряжение от 2,7 до 5 вольт.
Если ваше напряжение от 0 до 0,5 вольт, то это низкое напряжение и оно интерпретируется, как НОЛЬ. Если подается напряжение от 2,7 вольт до 5, то это высокое напряжение и оно интерпретируется, как ЕДИНИЦА.
Это стандартные значения от производителей, более широкий диапазон неофициально допускается 0-0,8 вольт для нуля и 2,5-5 для единицы.
Эти значения называются TTL-уровнями. Еще можно встретить такое понятие, что цап требует CMOS-уровни. Вобщем то это почти тоже самое, только высокое напряжение (единица) считается от 3,5 вольта до 5, а низкое от 0 до 1,5 вольта.
Зная это мы теперь можем запрограммировать наш ресивер CS8412 подав на нужные ноги 1 или 0, а точнее 5 вольт или землю.
Теперь вернемся к вопросу какой ресивер выбрать. Ресиверов на самом деле очень много, которые поддерживают I2S, и соответственно подходят для наших целей.
Например нам подходят:
CS8412, CS8414, CS8416
AK4118
DIR9001
Wolfson wm8805
Так как их выбрать и почему.
Начнем с начала статьи – “современные ресиверы сегодня поддерживают очень много форматов”. А это значит, что чем новее ресивер, то тем он сложнее и замороченней с выставлением “рубильников”, чтобы перевести его в режим I2S. Кроме того, современные ресиверы-микросхемы настолько мелкие, что если у вас нет опыта пайки SMD-компонентов под лупой – вам это покажется очень сложным.
Старые микросхемы-ресиверы, такие как CS8412 имеют большого размера корпус, следовательно ее легко припаять. Кроме того, она поддерживает помимо нужного нам I2S мало других форматов, поэтому переключить ее в этот режим проще простого.
Кроме того, смотрите в предыдущей статье схему и как мы смело припаяли коаксиал к двум ногам ресивера CS8412. А теперь посмотрим на выводы, например ресивера wm8805 (который более муторный по выставлению “рубильников” для перевода в I2S) и… оба на! А нога то 1 всего. И к этой ноге (единственной) вам как то надо прилепить коаксиал, а может и оптику, а может и усб.
В WM8805 SPDIF-вход – это XIN
Но этот момент я расскажу подробнее позже, там нужно будет разделить сигналы логической микросхемой 74HC00 (для чего, почему, и как сделать, чтобы ее не использовать я тоже расскажу).
Другими словами в момент проектирования вы руководствуетесь не только характеристиками, но тем, насколько удобно будет вам в разработке. Согласитесь, если цап и ресивер питаются от одного напряжения – это проще, чем разводить разное питание под цап, под логические TTL-уровни и под ресивер.
Кроме того – посмотрим по параметрам наших ресиверов.
Список изначально возглавлял CS8412 за его простоту и были вопросы, а что насчет следующих моделей CS8414 и CS8416.
CS8412
Разница такая. Первая модель CS8412 в отличии от своего предшественника CS8411 наконец перестала требовать для своей работы отдельный микроконтроллер, который и задавал бы параметры вместо “рубильников”. Это самая старая микросхема, она большая, ее удобно паять, но она самая плохая по джиттеру – значение джиттера 200 пикосекунд. Конечно это много, но у вас в компьютере с встроенным аудио джиттер 1400-2400 пикосекунд как бы бывает. Поэтому 200 пикосекунд – это неплохо. Не хорошо однозначно, но и неплохо.
Следующие чипы CS8414 и CS8416 более мелкие, тот же 8416 уже сложновато запаять (понадобиться или паяльник с жалом типа микроволна (можно изготовить самому) либо паяльной станцией) и режим в них задается посложнее.
Но! CS8414 уже имеет джитер 160. А CS8416 и вовсе обладает джиттером в районе 130. Т.е. CS8416 по джиттеру (главному параметру) превосходит старичка CS8412 почти в 2 раза (8416 лучше).
Следующий претендент – DIR9001. Вобщем то предыдущие поколение DIR-ов (1703) имело конкретный глюк, было снято с производства и предано анафеме. А вот расшибив лоб на предыдущей модели следующая DIR9001 явила себя образчиком ресивера с прекрасными показателями.
DIR9001 имеет показатель джиттера всего 50 пикосекунд. Ресивер поддерживает частоту семплирования до 96000 Гц!
DIR9001
Да, можно возразить, что не 192К, как у Wolfson wm8805. Но во первых – записи в 44.1 кГц покрывают все мыслимые желания по качеству звука для большинства людей с хорошей аппаратурой. Во вторых, напомню, что мы конструируем ЦАП на микросхеме TDA1543 в режиме NOS (без оверсемплинга), а это стандартные 44,1 кГц. И поэтому параметр 96К в Dir9001 наши потребности глубоко превосходит.
wm8805
Но я упомянул, что Wolfson wm8805 изначально поддерживает 192К. Но есть одно “но”. 192К у 8805 реально в софтверном режиме. А софтверный режим мы активируем с помощью подачи определенных инструкций через микроконтроллер. Вы готовы городить этот огород из за ненужных 192К для TDA1543?
В принципе все варианты ресиверов, и CS8412-16, и DIR9001, и wm8805 очень похожие и не очень принципиально, что именно из них выбрать (ну кроме параметров конечно), все будет работать и подключается очень похоже имея небольшие отличия. Wolfson wm8805 задает режимы посложнее, Dir9001 проще, а CS8412 просто элементарно. Но вы тут выбираете по уровню устраивающего вас джиттера.
С самой простой в монтаже и настройке CS8412 будет и самый большой джиттер 200 пикосекунд. В принципе мне видится золотой серединой DIR9001, но в продолжении я расскажу про каждый из этих рессиверов, как их подключить и настроить.
Относительно 3х блоков цап, мы пока начали рассматривать первую секцию – ресивер. Оставшиеся две – это сам ЦАП и “выхлоп” с которыми мы начнем разбираться после ресивера.
Пока лишь кратко скажу, что ясно что делает сам цап – преобразует цифру в аналоговый сигнал (звук). А под словом “выхлоп” подразумевается сразу два элемента:
- усилитель, который поднимет уровень напряжения до 1-2 вольт стандартно требуемых для входа внешнего интегрального усилителя.
- ФНЧ-фильтр – фильтр, который обрежет все ненужные частоты, оставив воспроизводимый например диапазон только до 35000 Гц.
Но давайте углубимся в исследование работы ресиверов и попутно познакомимся с основами логических операций.
(ПРОДОЛЖЕНИЕ СЛЕДУЕТ)
С удовольствием прочитал и давно ждал! Спасибо!