Этому проекту уже более 7 лет. Есть обстоятельства, когда требуется иметь внешнюю звуковую карту. Иногда это отсутствие встроенной, иногда поломка встроенной, иногда не качественная встроенная, а порой требуется специфический буфер на выходе с возможностью сделать сигнал +-7В, иногда питание компьютера ухудшает параметры встроенной карточки и так далее и тому подобное…
Этот проект мне заказали ребята, занимающиеся звукотехникой в одной из аудио фирм. Всех уже требований не вспомню, но точно было отдельное питание выходного буфера и получение данных с USB. Потом так же обсудили Sampling rate, размах выходного сигнала, какая будет нагрузка «И проч., проч.» (с)
После утряски всего была нарисована блок-схема:
И приступил к поиску вариантов решения задачи. Кстати, конечное устройство отличается от блок-схемы благодаря отличному кодеку, который питался сразу от USB.
По-изучав рынок тех лет с радостью открыл для себя PCM2912A (Ссылка).
Это Codec - от coder/decoder или шифратор/дешифратор или кодировщик/декодировщик или compressor/decompressor. Тут уж как только не именовались подобные штуки. Почему тогда статья называется «…ЦАП»? А потому, что ЦАП, он же DAC – это и есть преобразователь - устройство для преобразования цифрового кода в аналоговый сигнал.
Для начала немного про параметры вообще:
1) В названии этого кодека есть "PCM". И это не спроста. В аудио PCM - pulse-code modulation, импульсно-кодовая модуляция.
2) Из даташита: 16-Bit Delta-Sigma ADC and DAC. Разрядность - это количество бит информации в каждой выборке. То есть некое разрешение на сэмпл. Вообще разрядность влияет на уровень шума из-за ошибки квантования и на SNR (соотношение сигнал/шум) соответственно и на динамический диапазон.
Про SNR немного. В хорошем ЦАП, где ошибка квантования равномерно распределена между младшим значащим битом (LSB), SNR будет считаться так:
Что для 16 бит, данного, ЦАП равняется 98,09 дБ. Про сравнение 23bit и 16bit DAC на слух здесь кто-то писал короткую но классную заметку... Если в двух словах, то отличить на слух не реально.
3) Из даташита: Sampling Rate: 8, 11.025, 16, 22.05, 32, 44.1, or 48 kHz
(голос из зала: а по-русски можно?).
Частота дискретизации или частота семплирования - sample rate. Тут всем заинтересовавшимся стоит прочитать про теорему Котельникова, ну или как на западе: Найквиста — Шеннона. Для преобразования из «цифры» в аналог - частота дискретизации должна равняться как минимум удвоенной верхней граничной частоте этого сигнала.
Так что же говорят эти числа через запятую из даташита?
Если взять звуковой диапазон, который слышит человек, то его верхняя граница будет около 22кГц (это общепринято, лично я считаю что меньше). Далее, по теореме, что бы оцифровать или восстановить сигнал нужно иметь частоту дискретизации минимум в 2 раза больше. То есть 22*2=44кГц. Откуда 100Гц, ведь 44.1кГц в даташите? Но на самом деле это в Sony выбрали так для совместимости с стандартом PAL.
Немного информации по остальным частотам:
8 000 Гц - используется в телефонах. Считается достаточным для передачи речи.
11 025 Гц - это четверть Audio CD, тоже считается достаточным для передачи речи.
22 050 Гц - половина Audio CD, достаточно для передачи качества как на радио.
44 100 Гц - используется в Audio CD.
48 000 Гц - это уже уважаемый DVD.
4) Из даташита: THD+N 0.01%. Это полное гармоническое искажение плюс шумы (total harmonic distortion plus noise). Хотелось бы сказать что это КНИ, но тогда пришлось бы слукавить. Это, скорее, обратное SINAD соотношение сигнал шум + искажения. Если совсем просто, то КНИ + шумы, которые учитывают и шумы линии передачи, и шумы при измерениях, и полосу частот при измерениях.
5) Из даташита: SNR 92 dB. Но как же так, я же честно считал его выше для 16 бит и было лучше! Но тут нужно сказать, что я считал для идеального DAC, который шумит последним битом, тут же честный производитель указал реальное соотношение.
6) Из даташита: Dynamic Range: 90 dB. Это диапазон между самым тихим и самым громким звуком. Человеческое ухо воспринимает от супер тихого звука, у кого-то это лучше, до супер громких, вызывающих боль, звуков. Так вот отношение максимального значения сигнала на его выходе к значению шума квантования , измеренному в полосе от 0 Гц до частоты Котельникова и есть динамический диапазон для ЦАП.
Там дальше ещё есть параметры, но грузить уже ими не стану, и так много написал того, что мало кто будет читать. И они не такие интересные и популярные, как перечисленные выше.
И так. Мне эта штука настолько понравилась, что решил делать на ней. И что не могло ни радовать – даже ПО писать не придётся, кодек имеет драйвер USB. Хочу показать её внутренности, а то не все же пойдут по ссылке в даташит…
Особенно понравилось наличие выходов непосредственно с DAC, выходы после PGA и выходы Vcom (я их не использовал, но порой классно получить средний уровень напряжения выходного буфера).
Так как после внимательного прочтения документации на кодек, я был уверен, что он мне подходит, оставалось дело за выходным буфером и питанием.
Подбор выходного буфера тоже не занял много времени. На тот момент были найдены классные операционные усилители LME49710HA (Ссыль). Большая полоса (что даёт возможность разогнать усиление без потери в аудио полосе), отличный КНИ (по заявленным в даташите параметрам), не большое напряжение смещения, и этот усилитель имеет в названии «High-Performance, High-Fidelity Audio Operational Amplifier», что как ни что другое порадует аудиофила 😊 (разве с такой припиской нужны кому-то теоремы Котельникова...). Кстати, на сегодняшний день его не производят, но есть достойнейшие замены (на мой взгляд намного лучшие).
С питанием пришлось немного повозиться, так как выходной уровень мог быть до +-7В (даже не спрашивайте зачем, не знаю), это было решено настроить после сборки под нужные приборы.
Выбрал трансформатор для питания. Нужно было найти совершенно простой, миниатюрный с двумя вторичками. Такой быстро нашёлся. Нарисовал простенький выпрямитель и добавил место для подключения светодиода – индикатора наличия выходного напряжения с трансформатора.
Так как после выпрямителя напряжение не стабилизированное, добавил стабилизатор по питанию.
Схема ЦАП (на самом деле ещё и АЦП, его не просили, но в микросхеме он есть и как не вывести?!) приведена ниже. Совершенно нечего о ней рассказывать, так как она просто из даташита. Просто подобрал имеющийся со склада разъём USB, кварцевый резонатор и остальную пассивную комплектацию.
Следом пойдёт входной каскад для микрофона. Так как это была исключительно моя выдумка и о ней не просили, а не паять что-то всегда проще чем переделывать потом под новую хотелку, добавил вход электретного микрофона.
Ну и осталось сделать выходной усилитель. Тут вы увидите много элементов, которые были заложены на плату, как и в случае с микрофоном. Так как всегда лучше иметь возможность потом что-то допаять…
Выходной уровень сигнала, а именно - усиление выходного каскада, настраивается резисторами R34, R35, R30 и R31 (см. операционные усилители).
Элементы C30, C26, R23, R20, C33, C34 – частотнозависимые, C32, C31, R21, R22 – не устанавливались. Были заложены на всякий случай, вдруг что-то придётся корректировать.
На выходе должен был быть установлен коннектор для TRS 1/4 дюйма. Кстати говоря, мало кто его так называет. Почему-то чаще их называют Jack 6,35 мм. Хотя на самом деле это Tip Ring Sleeve.
Далее плата печатная.
Так как это был далёкий… хм, не помню даже какой год то был… ну тот, в котором ОУ со схемы ещё производились TI, то устройство делалось под готовый пластиковый корпус. Никаких 3D принтеров у меня и на работе не было. Был выбран пластиковый корпус, который понравился мне по габаритам и по его чертежу нарисован контур платы. Далее
очень просто все элементы были расставлены (то, что называется компоновкой) и
произведена трассировка.
К сожалению, не могу найти фото готовых плат, процесса монтажа и копусирования. Сами платы заказывал, кажется, в Резонит, что бы потом серию делать просто по повторному производству, экономя на его подготовке.
Нашлось фото проверки одной из плат. Видно, что кварцевый резонатор ещё поставил первый попавшийся под руку, а пин для подключения земли я забыл заложить на плату.
Что рассказать про корпус? Тут могу описать разве что только то, что светодиод индикации расположил над USB разъёмом и он просто паялся в плату и загибался так, чтобы попадал в высверленное отверстие в корпусе. Переключатель включения питания и ввод провода реализовывал не я. Доработками корпуса занимался не я, но конструктор, который был так же, как и я найден той фирмой. Кстати, оглядываясь назад, не так уж и плохо всё вышло. Сейчас, конечно, можно было бы распечатывать и отливать вообще футуристические корпуса, но для того времени было ровно то, чего хотел заказчик.
Сомневаюсь, что кому-то будет интересно повторение именно такого блока, но уверен, что кто-нибудь с удовольствием сделает себе просто ЦАП. Возможно, кто-то реализует не применённые мною его функции, такие как «mmute», «play», «rec» … тем более что цена данного чипа сейчас совсем не велика.
P.S. Оглядываясь назад, понимаю, что сейчас многое реализовал бы по-другому (да и как иначе то? Например, тот же ОУ уже не купить…), но тогда было сделано так и оно полностью отвечало требованиям заказчика. Кстати, даже производилось не большими партиями без каких-либо переделок платы.
Автор:
RV3EFE