Cirrus Logic CS42426-CQZ - это аудиокодек, который я хочу использовать в настраиваемой звуковой карте USB. Вы можете скачать таблицу там.
На странице 61 таблица данных содержит рекомендуемые схемы для каждого A / D и D / A канала, но я не вижу цели такой сложности. Конечно, они конвертируют между дифференциальными и односторонними, но есть и более простые способы сделать это.
Я скопировал их схему в некоторое программное обеспечение для моделирования с открытым исходным кодом ( http://qucs.sourceforge.net/ ), и частотная характеристика даже не соответствует заявленной цели. Но, по крайней мере, слышимый ответ несколько плоский:
АЦП в: (Хорошо, поэтому они полагаются на CMRR самого АЦП как часть фильтра сглаживания. Не нравится эта идея.)
ЦАП Out:
Я предполагаю, что они на самом деле серьезно относятся к использованию этих схем в реальных приложениях, но что-то не так с этим. Как я уже сказал, звуковой отклик довольно ровный, поэтому, вероятно, он будет звучать нормально без сотовых телефонов или других радиочастот, но я думаю, что смогу добиться большего успеха со старой классикой из OpAmps 101. Ребята, вы согласны?
Действительно ли есть веская причина для повышения уровня АЦП от номинального усиления при 20 кГц до пика при 300 кГц? Или для ЦАП сделать то же самое с 20 Гц до 0,5 Гц?
Для полноты вот файлы симуляции. Скопируйте их в текстовые файлы, измените расширение на .sch, если ваша система заботится, и откройте их в Qucs:
АЦП в:
<Qucs Schematic 0.0.18>
<Properties>
<View=785,329,2079,1333,0.883466,0,0>
<Grid=10,10,1>
<DataSet=DiffAmpIn.dat>
<DataDisplay=DiffAmpIn.dpl>
<OpenDisplay=1>
<Script=DiffAmpIn.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<GND * 1 1120 480 0 0 0 0>
<VProbe In 1 1110 460 28 -31 0 0>
<GND * 1 940 640 0 0 0 0>
<C C4 5 1010 520 -26 17 0 0 "100 uF" 1 "" 0 "neutral" 0>
<GND * 1 1080 640 0 0 0 0>
<R R18 5 1080 590 16 -10 0 3 "10 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<.DC DC1 5 930 700 0 41 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<C C6 5 1230 420 -26 17 0 0 "470 pF" 1 "" 0 "neutral" 0>
<R R23 5 1310 380 -9 10 0 2 "634 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R22 5 1350 500 -9 10 0 2 "91 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<OpAmp OP3 5 1230 500 -26 -42 1 0 "1e6" 0 "15 V" 0>
<R R27 5 1300 570 16 -10 0 3 "634 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<C C8 5 1600 610 17 -26 0 1 "2700 pF" 1 "" 0 "neutral" 0>
<Vac V1 5 940 590 18 -26 0 1 "1 V" 1 "1 kHz" 1 "0" 0 "0" 0>
<C C7 5 1390 660 -26 17 0 0 "470 pF" 1 "" 0 "neutral" 0>
<R R24 5 1470 620 -9 10 0 2 "634 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R25 5 1510 740 -9 10 0 2 "91 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<OpAmp OP4 5 1390 740 -26 -42 1 0 "1e6" 0 "15 V" 0>
<GND * 1 1260 780 0 0 0 0>
<R R26 5 1310 760 -9 10 0 2 "332 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<.AC AC1 5 930 750 0 41 0 0 "log" 1 "0.1 Hz" 1 "100 MHz" 1 "901" 1 "no" 0>
<VProbe Diff 1 1820 610 -16 28 0 3>
<GND * 1 1760 740 0 0 0 0>
<VProbe Neg 1 1750 720 28 -31 0 0>
<GND * 1 1760 500 0 0 0 0>
<VProbe Pos 1 1750 480 28 -31 0 0>
</Components>
<Wires>
<1080 480 1100 480 "" 0 0 0 "">
<1080 480 1080 520 "" 0 0 0 "">
<1040 520 1080 520 "" 0 0 0 "">
<940 520 980 520 "" 0 0 0 "">
<940 520 940 560 "" 0 0 0 "">
<940 620 940 640 "" 0 0 0 "">
<1080 620 1080 640 "" 0 0 0 "">
<1080 520 1080 560 "" 0 0 0 "">
<1080 520 1200 520 "" 0 0 0 "">
<1300 420 1300 500 "" 0 0 0 "">
<1260 420 1300 420 "" 0 0 0 "">
<1180 420 1200 420 "" 0 0 0 "">
<1300 500 1320 500 "" 0 0 0 "">
<1380 500 1400 500 "" 0 0 0 "">
<1180 380 1180 420 "" 0 0 0 "">
<1180 380 1280 380 "" 0 0 0 "">
<1400 380 1400 500 "" 0 0 0 "">
<1340 380 1400 380 "" 0 0 0 "">
<1270 500 1300 500 "" 0 0 0 "">
<1180 420 1180 480 "" 0 0 0 "">
<1180 480 1200 480 "" 0 0 0 "">
<1300 500 1300 540 "" 0 0 0 "">
<1400 500 1600 500 "" 0 0 0 "">
<1600 500 1600 580 "" 0 0 0 "">
<1600 640 1600 740 "" 0 0 0 "">
<1300 600 1300 720 "" 0 0 0 "">
<1460 660 1460 740 "" 0 0 0 "">
<1420 660 1460 660 "" 0 0 0 "">
<1340 660 1360 660 "" 0 0 0 "">
<1460 740 1480 740 "" 0 0 0 "">
<1340 620 1340 660 "" 0 0 0 "">
<1340 620 1440 620 "" 0 0 0 "">
<1500 620 1560 620 "" 0 0 0 "">
<1540 740 1560 740 "" 0 0 0 "">
<1560 740 1600 740 "" 0 0 0 "">
<1560 620 1560 740 "" 0 0 0 "">
<1430 740 1460 740 "" 0 0 0 "">
<1340 660 1340 720 "" 0 0 0 "">
<1340 720 1360 720 "" 0 0 0 "">
<1260 760 1260 780 "" 0 0 0 "">
<1260 760 1280 760 "" 0 0 0 "">
<1340 760 1360 760 "" 0 0 0 "">
<1300 720 1340 720 "" 0 0 0 "">
<1600 740 1710 740 "" 0 0 0 "">
<1710 740 1740 740 "" 0 0 0 "">
<1710 620 1710 740 "" 0 0 0 "">
<1710 620 1800 620 "" 0 0 0 "">
<1600 500 1710 500 "" 0 0 0 "">
<1710 500 1740 500 "" 0 0 0 "">
<1710 500 1710 600 "" 0 0 0 "">
<1710 600 1800 600 "" 0 0 0 "">
</Wires>
<Diagrams>
<Rect 880 1239 498 359 3 #c0c0c0 1 10 1 0.1 1 1e+08 1 -0.540919 1 6 1 -1 0.5 1 315 0 225 "" "" "">
<"In.v" #0000ff 0 3 0 0 0>
<"Diff.v" #ff0000 0 3 0 0 0>
</Rect>
<Rect 1480 1239 498 359 3 #c0c0c0 1 10 1 0.1 1 1e+08 1 -1 0.5 1 1 -0.100118 1 4.34333 315 0 225 "" "" "">
<"Pos.v" #0000ff 0 3 0 0 0>
<"Neg.v" #ff0000 0 3 0 0 0>
</Rect>
</Diagrams>
<Paintings>
</Paintings>
ЦАП Out:
<Qucs Schematic 0.0.18>
<Properties>
<View=-56,169,1878,1394,0.909091,0,88>
<Grid=10,10,1>
<DataSet=DiffAmpOut.dat>
<DataDisplay=DiffAmpOut.dpl>
<OpenDisplay=1>
<Script=DiffAmpOut.m>
<RunScript=0>
<showFrame=0>
<FrameText0=Title>
<FrameText1=Drawn By:>
<FrameText2=Date:>
<FrameText3=Revision:>
</Properties>
<Symbol>
</Symbol>
<Components>
<GND * 1 40 660 0 0 0 0>
<IProbe Neg 1 370 500 -26 16 0 0>
<IProbe Pos 1 370 620 -26 16 0 0>
<R R16 5 250 620 -9 10 0 2 "0 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R17 5 250 500 -9 10 0 2 "0 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 460 560 0 0 0 0>
<R R19 5 550 680 -9 10 0 2 "1.65 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<C C2 5 550 620 -26 17 0 0 "5800 pF" 1 "" 0 "neutral" 0>
<R R21 5 730 680 -9 10 0 2 "1.87 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R23 5 730 620 -9 10 0 2 "887 Ohm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R18 5 550 440 -9 10 0 2 "5.49 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<C C1 5 550 500 -26 17 0 0 "1800 pF" 1 "" 0 "neutral" 0>
<R R20 5 730 440 -9 10 0 2 "6.19 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R22 5 730 500 -9 10 0 2 "2.94 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<C C5 5 890 680 -26 17 0 0 "22 uF" 1 "" 0 "neutral" 0>
<OpAmp OP1 5 870 560 -26 -42 1 0 "1e6" 0 "15 V" 0>
<C C3 5 890 620 -26 17 0 0 "1200 pF" 1 "" 0 "neutral" 0>
<C C4 5 890 500 -26 17 0 0 "390 pF" 1 "" 0 "neutral" 0>
<GND * 1 960 700 0 0 0 0>
<GND * 1 1320 560 0 0 0 0>
<VProbe Out 1 1310 540 28 -31 0 0>
<C C6 5 1090 560 -26 17 0 0 "22 uF" 1 "" 0 "neutral" 0>
<R R24 5 1170 560 -9 10 0 2 "1 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<R R25 5 1260 630 19 -8 0 3 "47.5 kOhm" 1 "26.85" 0 "0.0" 0 "0.0" 0 "26.85" 0 "US" 0>
<GND * 1 1260 680 0 0 0 0>
<GND * 1 1040 520 0 0 0 0>
<VProbe Amp 1 1030 500 28 -31 0 0>
<.DC DC1 5 30 730 0 39 0 0 "26.85" 0 "0.001" 0 "1 pA" 0 "1 uV" 0 "no" 0 "150" 0 "no" 0 "none" 0 "CroutLU" 0>
<.AC AC1 5 30 780 0 39 0 0 "log" 1 "0.1 Hz" 1 "10 MHz" 1 "801" 1 "no" 0>
<Vac V1 5 40 610 18 -26 0 1 "0 V" 1 "1 kHz" 1 "0" 0 "0" 0>
<Vac V3 5 190 620 -26 18 0 0 "1 V" 1 "1 kHz" 1 "0" 0 "0" 0>
<Vac V2 5 190 500 -26 -50 0 2 "1 V" 1 "1 kHz" 1 "0" 0 "0" 0>
</Components>
<Wires>
<280 620 340 620 "" 0 0 0 "">
<40 640 40 660 "" 0 0 0 "">
<40 560 40 580 "" 0 0 0 "">
<40 560 140 560 "" 0 0 0 "">
<140 500 160 500 "" 0 0 0 "">
<140 620 160 620 "" 0 0 0 "">
<140 500 140 560 "" 0 0 0 "">
<140 560 140 620 "" 0 0 0 "">
<280 500 340 500 "" 0 0 0 "">
<400 500 420 500 "" 0 0 0 "">
<400 620 420 620 "" 0 0 0 "">
<420 440 420 500 "" 0 0 0 "">
<420 440 520 440 "" 0 0 0 "">
<420 620 420 680 "" 0 0 0 "">
<420 680 520 680 "" 0 0 0 "">
<460 560 500 560 "" 0 0 0 "">
<500 560 500 620 "" 0 0 0 "">
<500 620 520 620 "" 0 0 0 "">
<580 620 660 620 "" 0 0 0 "">
<580 680 660 680 "" 0 0 0 "">
<660 680 700 680 "" 0 0 0 "">
<660 620 660 680 "" 0 0 0 "">
<660 620 700 620 "" 0 0 0 "">
<500 500 500 560 "" 0 0 0 "">
<500 500 520 500 "" 0 0 0 "">
<580 500 660 500 "" 0 0 0 "">
<580 440 660 440 "" 0 0 0 "">
<660 440 700 440 "" 0 0 0 "">
<660 440 660 500 "" 0 0 0 "">
<660 500 700 500 "" 0 0 0 "">
<760 680 860 680 "" 0 0 0 "">
<920 680 960 680 "" 0 0 0 "">
<760 440 960 440 "" 0 0 0 "">
<760 500 840 500 "" 0 0 0 "">
<760 620 840 620 "" 0 0 0 "">
<840 580 840 620 "" 0 0 0 "">
<840 500 840 540 "" 0 0 0 "">
<840 620 860 620 "" 0 0 0 "">
<840 500 860 500 "" 0 0 0 "">
<910 560 960 560 "" 0 0 0 "">
<960 500 960 560 "" 0 0 0 "">
<920 500 960 500 "" 0 0 0 "">
<960 440 960 500 "" 0 0 0 "">
<920 620 960 620 "" 0 0 0 "">
<960 620 960 680 "" 0 0 0 "">
<960 680 960 700 "" 0 0 0 "">
<1120 560 1140 560 "" 0 0 0 "">
<1200 560 1260 560 "" 0 0 0 "">
<1260 560 1300 560 "" 0 0 0 "">
<1260 560 1260 600 "" 0 0 0 "">
<1260 660 1260 680 "" 0 0 0 "">
<1000 520 1020 520 "" 0 0 0 "">
<960 560 1000 560 "" 0 0 0 "">
<1000 560 1060 560 "" 0 0 0 "">
<1000 520 1000 560 "" 0 0 0 "">
</Wires>
<Diagrams>
<Rect 300 1119 498 359 3 #c0c0c0 1 10 1 0.1 1 3e+06 1 -0.422698 1 4.66459 1 -1 0.5 1 315 0 225 "" "" "">
<"Pos.i" #0000ff 0 3 0 0 0>
<"Neg.i" #ff0000 0 3 0 0 0>
</Rect>
<Rect 880 1119 498 359 3 #c0c0c0 1 10 1 0.1 1 3e+06 1 -0.00012118 0.0002 0.00133304 1 -1 0.5 1 315 0 225 "" "" "">
<"Amp.v" #0000ff 0 3 0 0 0>
<"Out.v" #ff0000 0 3 0 0 0>
</Rect>
</Diagrams>
<Paintings>
</Paintings>
Ответы:
Мне нравится этот вопрос. Это такой хороший пример того, как схемы таблиц данных отлично подходят для демонстрации концепций, а не для того, чтобы их можно было использовать как есть.
Глядя на описание фильтра, кажется, что основными концепциями являются: плоский отклик в полосе пропускания звука, низкий импеданс источника на входах АЦП, работа с центром вокруг VQ 2,7 В и затухание 20 дБ достаточно для сглаживания ,
Ограничение 2700 пФ подразумевает, что на АЦП подключен конденсаторный вход без буфера. При 6 МГц это примерно 10 Ом выходного сопротивления фильтра. Хотя было бы легко использовать что-то вроде интегратора с потерями, чтобы получить затухание и сосредоточиться вокруг VQ, выходной импеданс был бы выше.
Устройство усилителя, иногда называемое «компенсацией нагрузки контура», должно справляться с емкостной нагрузкой на операционные усилители. Компенсация, подобная этой, имеет настраиваемое значение Q, так что переход к спаду может быть намного более резким, чем простой RC. Часто требуется некоторая настройка, чтобы получить желаемую плоскостность. В этом случае, однако, похоже, что в схеме произошла ошибка, вызвавшая пик со значениями детали.
Вот схема с условными обозначениями:
Вы можете видеть, где я думаю, что схема идет не так, с подключением R4. Но, прежде чем углубляться в это, давайте рассмотрим, как должна работать схема.
При емкостной нагрузке операционный усилитель потеряет запас по фазе. Хороший операционный усилитель обычно имеет фазовый запас около 60 градусов. Но даже нагрузка в 100 пФ может привести к снижению запаса по фазе до 40 или 45 градусов, что приведет к пиковой реакции. Добавление R2, C2 и R3 позволяет усилителю поддерживать запас по фазе в зависимости от нагрузки. C2 откатывает полосу пропускания назад, увеличивая запас по фазе. R3 помогает минимизировать потери запаса по фазе с добавлением C4. R2 обеспечивает низкочастотную обратную связь для исправления любой ошибки полосы пропускания, вызванной R3.
Отклик цепи можно настроить, отрегулировав значение C2. Увеличение C2 снизит Q фильтра. На низких частотах петля R2 доминирует, но петля C2 доминирует на более высоких частотах, где импеданс C2 ниже, чем R2 + R3. Тогда падение на R3 не компенсируется, и сигнал ослабляется с помощью R3 C4 и возможного спада усилителя.
Рассмотрим только неинвертирующий участок с идеальным усилителем. Передаточная функция без нуля C1 R1 будет:
Так как идеальный усилитель использовался, чтобы сделать вещи управляемыми, Q уходит в бесконечность, а C2 стремится к нулю. Это не будет проблемой, поскольку мы заботимся только о частотах ниже полосы пропускания усилителя. С реальным усилителем Q будет падать с усилением усилителя. Подставляя значения для R2, R3 и C4, мы можем построить график Q как функцию от C2.
Q уменьшается с увеличением значения C2. Если усилитель слишком пиковый, просто увеличьте C2, чтобы сгладить отклик.
Теперь, глядя на кривую, похоже, что C2 470pF будет иметь Q ~ 0,8. Это был бы довольно плоский ответ. Что произошло?
В техническом описании схематично показано R4, подключенное к выходу U1. Это делает 2 плохие вещи. Во-первых, после некоторых проблем с компенсацией низкочастотных эффектов R3 и R6, подключение R4 к U1 добавляет добавление R3 обратно. Если вы посмотрите на выходное сопротивление фильтра, вы увидите, что это правда. Во-вторых, это вызывает пиковое значение при C2 и C3 470 пФ (пик Q составляет около 300 пФ, больше или меньше, чем уменьшается Q). Если R4 подключен к узлу с R2 R3 и C4, Q действует как ожидалось. Кроме того, выходной импеданс фильтра будет оставаться очень низким в полосе пропускания звука до спада, а затем следовать импедансу C4.
источник
У Cirrus фактически есть примечание к приложению, описывающее назначение цепей: http://www.cirrus.com/en/pubs/appNote/an241-1.pdf
Из описаний в этом документе вы правы, что пиков не должно быть.
В общем, модель может быть неправильной в двух местах:
Характеристики входа и выхода АЦП не моделируются. Цепи могут ожидать определенного источника / нагрузки.
Используемая модель операционного усилителя может быть недостаточной для этой схемы. Я обнаружил, что некоторые схемы, выходящие за пределы 1 МГц, требуют продукта с более высоким коэффициентом усиления по сравнению с типичными типичными моделями. Документация оценочной платы для этого АЦП показывает, что они используют эту схему с операционным усилителем 2068, который имеет коэффициент усиления-27 Вт МГц.
РЕДАКТИРОВАТЬ: После более глубокого изучения точные значения используются на их оценочной доске для этой части. Поэтому я рекомендую сначала смоделировать его с той же деталью, которую они используют, 2068. Надеюсь, это должно показать правильную работу.
РЕДАКТИРОВАТЬ 2: Я управлял схемой АЦП через QUCS, и у них нет надлежащих моделей специй для реальных операционных усилителей. LT spice от Linear Technology - очень хороший бесплатный симулятор специй. Прогоняющая цепь дает хороший плоский ответ, как и предсказывалось. (Если вы откроете эту картинку в новой вкладке, она взорвется, чтобы вы могли видеть детали).
источник