8-битный стереозвук ЦАП R-2R, это правильный способ сделать это?


8

Я новичок в электротехнике, и первый проект, который я хотел бы сделать, - это сделать цифро-аналоговый аудиопреобразователь. Я обнаружил, что хороший способ сделать это - использовать структуру R-2R для преобразования.

Я хотел бы бросить вызов себе и начать с нуля с цифровой части схемы, кроме того факта, что я не могу действительно найти какие-либо решения в сети, чтобы помочь построить его. У меня есть программа симуляции цепи, и я начал проектировать, когда искал в Интернете все виды электроники, которые вы могли бы использовать для нее.

Теперь я думаю, что могу быть где-то рядом с понятием принципа ЦАП, но было бы полезно, если бы кто-то опытный мог помочь мне проверить, действительно ли я его получу. Это правильное место, чтобы попросить об этом?

Если так, вот схема, которую я разработал: 8-битный стереозвук ЦАП R-2R

Я использовал сдвиговый регистр с выходной защелкой для каждого канала и связывал Q7S от одного к другому для подачи данных. Правильно ли, что аудиофайлы чередуются по левому и правому каналам или наоборот в блоках? например, в 8-битном файле: 0010 0111 для левого, 0010 0110 для правого?

Сдвиговые регистры, которые я здесь использовал, - 74HC595. Когда сдвигающиеся биты, ни один из выводов не будет (на мгновение) активным. При срабатывании защелки [вывод STCP] биты передаются из регистра сдвига в регистр хранения, где они напрямую выводят свое значение на соответствующие выводы и остаются активными до тех пор, пока не будут допущены следующие 16 бит.

Затем есть кристалл, для которого я использовал прямоугольный сигнал для имитации сигнала с правильной частотой колебаний: 24 576 МГц. Он подает счетчик, в котором частота делится, для вывода частот, которые нужны моему ЦАП. В этом случае частота выборки должна составлять 192 000 кГц, и поэтому частота, на которой сдвигаются данные, должна составлять 3,02 МГц (192 000 x 16 бит). Тактовая частота 192.000 кГц используется для запуска STCP.

Следующее, что я хочу сделать, - это выяснить, как загрузить данные из источника (например, Raspberry) через I2C в буфер в ЦАП и оттуда синхронизировать биты в схеме, которую вы видите здесь.

Если вы думаете, что я или я не на правильном пути, было бы очень полезно, дайте мне знать.

Спасибо! Рогир

Кстати, я забыл упомянуть, что ЦАП, который я хотел бы построить, по крайней мере 24-битный на канал на 96 кГц. Это просто занимает много места для этой угрозы и не должно быть сложным добавить их потом. Это тот же принцип.


2
Хороший, сложный проект. Я не изучил все ваши математические навыки, но 8-битный звук не будет звучать слишком хорошо. Вы будете вынуждены смещаться к половинному запасу, что оставляет вас с 7-битными с каждой стороны. Вы можете избежать неприятностей с сжатой речью, когда динамический диапазон сильно ограничен, но тихие пассажи речи или музыки будут иметь ужасные искажения из-за грубого размера шага и логарифмической реакции уха. По памяти качество CD 14-битное.
Транзистор

1
@transistor, хотя он и не подходит, обладает высокой точностью, 8-битный звук может быть удивительно прослушиваемым, если все сделано правильно, особенно если частота дискретизации находится за пределами слышимого диапазона, что, как кажется, в этом случае (с достаточно высокой частотой дискретизации оценить, вы даже можете сойти с 1-битного вывода ...). Более серьезная проблема заключается в том, являются ли предлагаемые регистры сдвига «двойной буферизацией», или если биты на мгновение будут отображаться на неправильных выходах во время сдвига, что может вызвать существенные искажения.
Крис Страттон

4
Что касается вашего комментария о 24 битах на канал - забудьте об этом, забудьте об этом сейчас, и не тратьте больше времени на размышления об этом. Я не собираюсь вдаваться в математику для этого в этом комментарии, но я уверен, что он появился здесь некоторое время назад. Если нет, то вот что говорит Википедия: en.wikipedia.org/wiki/…
труба

2
Используя резисторы 1%, вы можете получить точное 6-битное разрешение (LSB = MSB / 64, поэтому ошибка 1% <значение LSB / MSB), но при этом вам придется сократить возможную ошибку на резистор пополам для каждого дополнительного бит (0,25% для 8-битного) также не допускает ошибки резистора от возможного превышения вашего младшего значащего бита.
Robherc KV5ROB

2
2-23это ужасно небольшое число как 1 более 8 миллионов. Вы не сможете создать ЦАП с какой-либо приличной скоростью преобразования, который будет иметь такой же точный результат, как и эта спецификация. честное число битов является динамический диапазон в дБ (который представляет собой отношение сигнал / шум в дБ добавили к числу дБ запаса) , деленное на 6,02 дБ / бит. это даст вам количество честных битов. лучшее, что я видел в отрасли, по-прежнему составляет около 20 бит (или около 120 дБ динамического диапазона).
Роберт Бристоу-Джонсон

Ответы:


7
  • Да, это именно то место, где можно задать свой вопрос.
  • Да, топография R-2R - это самый простой (и я думаю, лучший) способ сделать ЦАП, созданный в домашних условиях (без использования ШИМ).
  • Что касается того, чтобы бросить вызов себе, для меня это звучит так, будто вы можете быть таким же мазохистом, как и я (спасибо за то, что у меня хватило смелости!). Это действительно сложный проект для начинающих.
  • Ваши резисторы R-2R (и, возможно, подключенные операционные усилители) на самом деле являются вашими 8-битными ЦАПами

Вот что я думаю:
Исправленная Лестница

К сожалению, страница википедии о ЦАП R-2R неверна, когда в ней говорится, что в этом приложении релейная схема R-2R работает как делитель тока. В то время как R-2R лестница может быть использована в качестве текущего делителя, он фактически функционирует в качестве делителя напряжения здесь. Вот подробный анализ.

Рассмотрим только младший бит лестницы:

схематический

смоделировать эту схему - схема, созданная с использованием CircuitLab

Независимо от положения переключателя сопротивление Thevenin этого простого делителя напряжения равно R. Значение источника напряжения Thevenin составляет либо 0 В, либо 1/2 × Vref.

Теперь рассмотрим, что произойдет, когда вы добавите следующую ступень лестницы R-2R:

схематический

смоделировать эту схему

Вы можете видеть, что это тот же тип делителя напряжения, который был у нас в первом случае, за исключением того, что количество комбинаций напряжения увеличилось. Тем не менее, сопротивление Тевенина в этой цепи все еще равно R, а источник напряжения Тевенина теперь составляет 0/4, 1/4, 2/4 или 3/4 × Vref.

По индукции вы можете видеть, что вы можете добавить любое количество ступеней к лестнице, и единственный эффект состоит в том, что число вариантов для значения источника напряжения Thevenin умножается на 2 для каждой ступени. Сопротивление источника остается одинаковым для любого количества ступеней.

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


Обратите внимание, что в исходной схеме Роджера (рассматриваемой) операционные усилители находятся в инвертирующей конфигурации, что означает, что выход релейной схемы R-2R напрямую связан с виртуальным заземлением. Это означает, что выходное значение действительно является током, протекающим через Rth (который является просто R), и этот ток также протекает через резистор обратной связи операционного усилителя. Выходное напряжение от операционного усилителя является любым напряжением, которое требуется, чтобы сделать эти два тока равными, и составляет -Rfb / R × Vth. Поскольку он использует резистор обратной связи 2R, выходной сигнал в итоге равен -2 × Vth.


Похоже, существует некоторая путаница относительно того, используется ли лестница R-2R в качестве делителя напряжения или делителя тока, поэтому вот иллюстрация того, как последний может работать, чтобы показать ключевые различия между этим и схемой ОП.

схематический

смоделировать эту схему

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

Обратите внимание, что ключевое предположение здесь заключается в том, что все ветви привязаны к одному и тому же напряжению (в данном случае к нулю). Также интересно отметить, что напряжения на узлах соединения также являются бинарно-взвешенными.

Это можно использовать для создания ЦАП с токовым выходом следующим образом:

схематический

смоделировать эту схему

Токи в резисторах в этой цепи точно такие же, как на предыдущей схеме, потому что независимо от того, в каком положении находится каждый из переключателей, соответствующий резистор подключается либо к реальному заземлению на Iout¯ автобус или на виртуальную площадку на Ioutавтобус. Токи на двух шинах всегда составляют Iref. Операционный усилитель может преобразовывать выходной ток в напряжение, а диапазон напряжения просто -Iref × R7.


Честно говоря, я до сих пор не знаю, что делает операционный усилитель и зачем он мне нужен здесь. То, что он делает (в соответствии с программным обеспечением для моделирования), делает положительный сигнал, исходящий из лестницы R-2R, отрицательным с кратным двум: ~ 5 В на входе, -9,96 В на выходе. Зачем это нужно?
Rogier Reerink

1
Операционные усилители увеличивают разницу между 2 входными напряжениями. Поэтому программное обеспечение говорит, что ваш MSB подключен к инвертирующему входу (минусу) на операционном усилителе, в результате чего выходной сигнал будет отличаться от входного. Отношение напряжения выходного сигнала к входному напряжению контролируется резистором обратной связи (вы использовали 10K) с выхода ОУ на инвертирующий вход ОУ; чем выше сопротивление, тем больше усиление вы получаете (закорачивая через этот резистор, затем перемещая MSB-соединение к операционному усилителю + вход и LSB-соединение к земле, это нужно исправить.
Robherc KV5ROB

На самом деле, нет. На схеме ОП неинвертирующие входы операционных усилителей заземлены. Все, что вы делаете, это переключаетесь на конфигурацию с повторителем напряжения. Не забудьте включить резистор 5 кОм в цепи обратной связи каждого из них, чтобы сбалансировать смещения тока смещения. Кроме того, самый нижний резистор в каждой из ваших лестниц R-2R должен быть 10 кОм, а не 5 кОм. У ОП тоже было это право.
Дэйв Твид

Robherc, 1. я бы угробил конденсаторы связи. 2. если вы используете неинвертирующую схему повторителя напряжения, то вам нужно добавить резистор 10K от клеммы + операционного усилителя к земле. и резистор 5К внизу должен быть 10 кОм. Представьте себе суперпозицию и все биты выключены (или заземлены). когда вы сидите в каком-либо из этих узлов, он должен иметь сопротивление 10 К относительно земли во всех трех направлениях.
Роберт Бристоу-Джонсон

Схема обновлена ​​с исправленным заземлением. @ robertbristow-johnson Зачем вам избавляться от конденсаторов, которые блокируют постоянный ток, и центрировать ваш выход для защиты преобразователей в звуковой цепи?
Robherc KV5ROB
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.