Этому проекту уже более 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 будет считаться так:

Здесь b - количество битов квантования.
Здесь b - количество битов квантования.

Что для 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. Оглядываясь назад, понимаю, что сейчас многое реализовал бы по-другому (да и как иначе то? Например, тот же ОУ уже не купить…), но тогда было сделано так и оно полностью отвечало требованиям заказчика. Кстати, даже производилось не большими партиями без каких-либо переделок платы.

Комментарии (41)


  1. alef13
    03.02.2023 20:20
    +22

    Простейшая звуковая плата это Covox :) славные были времена...


    1. Ivnika
      03.02.2023 20:25
      +3

      Сколько лет прошло, а как сейчас помню как резаки на лпт разъем припаивал..


    1. voidptr0
      04.02.2023 19:03

      Верните мне мой AWE32. Warcraft II и Awe32 - это надо было слышать в полночной тишине.


    1. Didimus
      04.02.2023 23:21

      1-битный DAC разве не проще?


    1. unclegluk
      05.02.2023 13:20


    1. tormozedison
      05.02.2023 21:56

      USB-ковокс теперь впору делать.


      1. Sun-ami
        06.02.2023 13:47

        Хорошая мысль, можно сделать программную сигма-дельта модуляцию, и выводить её результат через USB — получится USB-ковокс.


        1. tormozedison
          06.02.2023 16:34

          Можно проще: переходник USB-LPT, на него ковокс.


  1. sim2q
    03.02.2023 20:40
    +4

    C26R20 фильтр - не жидковат? мы активный ставили на выход


    1. RV3EFE Автор
      03.02.2023 22:15
      +1

      Вижу человека, кто имел дело ????

      Вообще хороший тон после ЦАП ставить хотя бы какой-то фильтр. Но реально активный и пассивный в данном случае будут отличаться только ослаблением. У меня же после него стоит усилитель, который это дело может компенсировать.


      1. zatim
        04.02.2023 12:42

        Может компенсировать, но, почему то не компенсирует. Добавить копеечные конденсаторы в цепь ОС - была бы еще одна ступень фильтрации.
        А так да, фильтрации считай что нет. Заказчики не жаловались на качество?


      1. sim2q
        04.02.2023 13:28
        +1

        Вижу человека, кто имел дело

        Скорее всего и дельта сигма внутри разных чипов может быть по разному реализовано.
        На ADAU1701 на аналоговом выходе были конкретные иголки. Сейчас написал и аж задумался, надо бы на других платах проверить. У нас и чипы и с AD и с Ali :)


        1. RV3EFE Автор
          04.02.2023 14:45

          О, я как-то использовал adau, не буду говорить какой, там вообще всё идеально было. Без любых фильтров. Всё зависит от конкретного чипа.

          Тут заказчик не жаловался. Да и я на выходе не наблюдал каких-либо внутренних переключений.


  1. Sun-ami
    03.02.2023 20:41
    +1

    Насколько я помню, в CD частота семплирования 44100 Гц позволяет воспроизводить звук с частотой до 20кГц, при этом разница 2100 Гц между теоретически предельной частотой 22050 Гц, и верхней границей рабочего диапазона частот нужна потому, что цифровой ФНЧ, используемый в кодеке для подавления зеркальных частот, имеет неидеальную характеристику. А вот частота семплирования 48000 Гц уже позволяет воспроизводить и 22кГц. Что до верхней границы чувствительности человеческого уха, то она индивидуальна, и понижается с возрастом. У взрослых мужчин она в районе 16 кГц, а у детей может быть и выше 22 кГц.


    1. le2
      03.02.2023 20:52
      +7

      нет, 44100 приняли но оказалось что ерунду приняли, потому что требуется ФНЧ восьмого или какого-то там страшного порядка. И 48000 - тупо дешевле отфильтровать.
      22кГц воспроизводить глупо, потому что нет таких фонограмм, студии звукозаписи такими глупостями не занимаются.
      В институте была лабораторка по определению АЧХ ушей студентов. У нас - 18-19 летних даже 16 кГц слышали единицы. Определяли это честно, испытуемому подсовывали также отсутствие всякого звука, чтобы он не мог заявить что слышит.


      1. VadimProfii
        04.02.2023 10:09
        -3

        Комрад, почему звук в моей системе улучшился после установки ленточных изодинамиков, если я не могу это услышать? Причем, улучшение уверенно фиксировалось и гостями и домашними)). С улицы на слепое сравнение зазывать уже не стал, простите....


        1. le2
          05.02.2023 00:43
          +1

          это у усилителей КДП может быть >95% и коэффициенты искажений 0,0001%, а акустических систем всё печально, там реальный КПД единицы процентов (превращение электричества в механические колебания воздуха) и искажения 5-7% (пишу по-памяти). Именно по этому при слепых тестах всегда можно отличить выступление живого скрипача от записанного звука.


      1. romanetz_omsk
        04.02.2023 15:35
        +2

        А потом решили, нафиг восьмой порядок, можно ж оверсэмплинг делать и ДСМ, ибо ценник на полке рулит спросом. Теперь "честные" цапы без оверсэмплинга только инструментальные и остались.


      1. firehacker
        05.02.2023 19:06
        -1

        А может это ваши излучатели не излучали выше 16 кГц?


    1. RV3EFE Автор
      03.02.2023 22:18

      Да, полностью согласен. Я точно не слышу 22 и 20 кГц уже не слышу... Но знаю случаи, когда и молодые не слышат выше 20кГц


    1. agalakhov
      03.02.2023 23:17
      +1

      Частота 44100 происходит от использования записи цифрового звука вместо видео на видеокассету и оттуда перекочевала в CD. Это компромисс, чтобы не делать специальный цифровой магнитофон. Частота 48000 использовалась в DAT-магнитофонах, где можно было сделать уже любую частоту, какую удобно.


      1. RV3EFE Автор
        04.02.2023 06:55

        В принципе, в статье о этом есть строка. Именно видео и создало этот, казалось бы не логичный по частоте, формат в 44100.


  1. aldmarinka
    03.02.2023 20:44
    +1

    Прикольное решение электронного дросселя. Не готовая микросхема, а на россыпи, которая выполняет те же функции, но дешевле.

    И прикольные ОУ!


    1. VT100
      03.02.2023 21:18
      +1

      А меня — как-то смущает. Чего бы не поставить ИМС и получить питание получше?


    1. Chaa
      04.02.2023 09:27

      Этот узел называется "параметрический стабилизатор напряжения", электронный дроссель это про другое (хотя чем-то похож, да).
      На микросхеме конечно проще, по цене скорее всего выйдет примерно так же, но точек пайки в несколько раз меньше.


      1. VT100
        04.02.2023 12:10
        +1

        C9, КМК, даёт право называтся и дросселем тоже.


        1. RV3EFE Автор
          04.02.2023 12:49

          Верно. Эту схему можно и так и так назвать. Микросхема или россыпь, тут пускай каждый для себя решает. Лично мне тогда это показалось правильнее. Сейчас вижу из плюсов возможность постройки как напряжения так и фильтра.


  1. vasyaa747
    03.02.2023 21:10
    +2

    Не открылась ссылка на кодек, поэтому спрошу: кварц на схеме точно на 6 МГц?

    Просто я работал с PCM 2900 и 2902, у них кварц на 12 МГц, в том числе и для совместимостью с тактами шины USB.


    1. VT100
      03.02.2023 21:12

      Вероятно — оно подстраивается само по пакетам SOF. Таким образом, при наличии ФАПЧ, конкретная частота кварца не так важна.


    1. RV3EFE Автор
      04.02.2023 06:58

      У меня открывается. Наверное проблема из-за блокировки этого сайта для некоторых стран. Да, кварц именно 6, на блок-схеме можно увидеть его умножение на 16 и дальнейшую раздачу по доменам.


  1. VT100
    03.02.2023 21:11
    +2

    7 В — это амплитуда или от пика до пика?


    1. Chaa
      04.02.2023 09:20
      +2

      Судя по питанию +/- 5 В это от пика до пика. Вообще, 2,5 В RMS вполне типичный выходной уровень звуковой карты.


    1. RV3EFE Автор
      04.02.2023 12:32

      Честно? Не помню. Да, на схеме в стабилизаторе указаны стабилитроны на 5.6В, ОУ не r-t-r, но есть большая вероятность, что напряжение потом менял и перестраивал.


  1. ion2
    03.02.2023 21:19
    +2

    ЦАП типичный для AC97, похоже ему продлили жизнь прикрутив USB.


  1. engine9
    04.02.2023 16:09
    +1

    А это устройство сгодится как простой блок для "рисования" на экране осциллографа? (Т.к. на выходе нет конденсаторов).


  1. Mike-M
    04.02.2023 16:21

    Что значит номинал «16х27» у электролитических конденсаторов С3 и С4 на схеме выпрямителя?


    1. RV3EFE Автор
      04.02.2023 16:24

      Это типоразмер. Я для себя обозначил на схеме посадочное место. А потом при пусконаладке выбрал подходящую ёмкость и в bom заказчику уже пошёл партномер.


  1. nikolz
    04.02.2023 19:20

    Пример того, как исполнитель навязывает заказчику более сложное и дорогое решение, чем нужно по заданию.

    Автор данной статьи в пылу творческого порыва поиска микросхемы кодека вместо микросхемы ЦАПа забыл почитать статьи на хабре.

    В статье более 10-ти летней давности https://habr.com/ru/post/138962/

    описано решение именно то, которое надо было реализовать.


  1. smoluks4096
    04.02.2023 20:43
    +1

    Круть, я тоже когда-то такое делал. Дальше рекомендую осваивать классику типа PCM1794 и гальваноразвязку с компом например на уровне I2S, ибо разные земли добавляют помех всё равно


    1. RV3EFE Автор
      05.02.2023 10:39

      Действительно похожая конструкция. Но чуть более навороченная. Фильтры по питанию. Насколько вижу, тут и spdif добавлен и регулятор логарифмический от Alps... Индикация всякая. Жду статью о вашей работе ;)


  1. firehacker
    05.02.2023 19:23
    -1

    теорему Котельникова, ну или как на западе: Найквиста — Шеннона. Для преобразования из «цифры» в аналог - частота дискретизации должна равняться как минимум удвоенной верхней граничной частоте этого сигнала.

    Тут нужно определение понятия граничной частоты именно в свете реконструкции исходного сигнала по его дискретным отсчётам в свете теоремы Котельникова. Это явно про граничную частоту с привязкой к –3/–6 dB.

    А то многие думают, что если для «достоверной» оцифровки 20 кГц синусоиды достаточно АЦП с частотой семплирования 40 кГц. В реальности все будет зависеть от фазы: если моменты семплирования попадут аккурат на моменты перехода синусоиды через 0, АЦП будет стабильно давать нулевые семплы на выходе, то есть от синусоиды в оцифрованных данных не останется и следа.