Cirrus Logic CS42426-CQZ ist ein Audio-CODEC, den ich in einer benutzerdefinierten USB-Soundkarte verwenden möchte. Dort können Sie das Datenblatt herunterladen.
Auf Seite 61 enthält das Datenblatt eine empfohlene Schaltung für jeden A / D- und D / A-Kanal, aber ich verstehe den Zweck dieser Komplexität nicht. Sicher, sie konvertieren zwischen Differential und Single-Ended, aber es gibt auch einfachere Möglichkeiten, dies zu tun.
Ich habe ihren Schaltplan in eine Open-Source-Simulationssoftware ( http://qucs.sourceforge.net/ ) kopiert und der Frequenzgang entspricht nicht einmal dem angegebenen Zweck. Aber am wenigsten ist die hörbare Reaktion etwas flach:
ADC In: (Okay, sie verlassen sich also auf das CMRR des ADC selbst als Teil des Anti-Aliasing-Filters. Diese Idee gefällt ihnen nicht.)
DAC-Ausgang:
Ich gehe davon aus, dass es ihnen ernst ist, diese Schaltkreise in einer realen Anwendung zu verwenden, aber etwas scheint nicht in Ordnung zu sein. Wie ich bereits sagte, ist die akustische Reaktion ziemlich flach, sodass sie ohne Mobiltelefone oder andere Funkfrequenzen wahrscheinlich in Ordnung klingt, aber ich denke, ich kann mit den alten Klassikern von OpAmps 101 besser umgehen.
Gibt es wirklich einen guten Grund für einen Anstieg des Audio-ADC von der nominalen Verstärkung bei 20 kHz auf eine Spitze bei 300 kHz? Oder damit der DAC dasselbe von 20 Hz bis etwa 0,5 Hz macht?
Der Vollständigkeit halber hier die Simulationsdateien. Kopieren Sie sie in reine Textdateien, ändern Sie die Erweiterung in .sch, wenn es Ihr System interessiert, und öffnen Sie sie in Qucs:
ADC In:
<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>
DAC-Ausgang:
<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>
quelle
Antworten:
Ich mag diese Frage. Es ist ein so gutes Beispiel dafür, wie großartig Datenblattschemata sind, um Konzepte zu zeigen, aber nicht nur so, wie sie sind.
Betrachtet man die Beschreibung des Filters, so scheinen die Hauptkonzepte folgende zu sein: Flaches Ansprechen im Audio-Durchlassbereich, niedrige Quellenimpedanz an den ADC-Eingängen, Betrieb mit einem VQ von 2,7 V und eine Dämpfung von 20 dB sind für Anti-Aliasing ausreichend .
Die 2700pF-Kappe impliziert, dass der ADC als Kondensatoreingang ohne Puffer geschaltet ist. Bei 6MHz sind das etwa 10 Ohm Filterausgangsimpedanz. Während es einfach wäre, so etwas wie einen verlustbehafteten Integrator zu verwenden, um die Dämpfung und Zentrierung um VQ herum zu erhalten, wäre die Ausgangsimpedanz höher.
Die Verstärkeranordnung, die manchmal als "In-the-Loop-Load-Compensation" bezeichnet wird, soll die kapazitive Belastung der OpAmps bewältigen. Eine solche Kompensation hat ein einstellbares Q, so dass der Übergang zum Abrollen viel schärfer sein kann als bei einer einfachen RC. Oft ist eine gewisse Abstimmung erforderlich, um die gewünschte Ebenheit zu erzielen. In diesem Fall scheint es jedoch einen Fehler im Schaltplan zu geben, der zu einem Peaking mit den Teilewerten geführt hat.
Hier ist ein Schema mit Referenzbezeichnungen:
Sie können sehen, wo ich denke, das Schema geht schief, mit dem Anschluss von R4. Aber bevor wir darauf eingehen, wollen wir uns noch einmal ansehen, wie die Schaltung funktionieren sollte.
Bei kapazitiver Belastung verliert ein OpAmp die Phasenreserve. Ein guter OpAmp hat normalerweise einen Phasenabstand von etwa 60 Grad. Aber selbst eine Last von 100 pF kann dazu führen, dass die Phasenreserve auf 40 oder 45 Grad abfällt, was zu einer Spitzenreaktion führt. Das Hinzufügen von R2, C2 und R3 ermöglicht es dem Verstärker, die Phasenreserve mit der Last aufrechtzuerhalten. C2 verringert die Bandbreite und erhöht die Phasenspanne. R3 hilft, den Phasenrandverlust durch Zugabe von C4 zu minimieren. R2 bietet Niederfrequenz-Feedback, um alle von R3 verursachten Durchlassbandfehler zu korrigieren.
Das Schaltungsverhalten kann durch Einstellen des Wertes von C2 eingestellt werden. Wenn Sie C2 vergrößern, wird der Q-Wert des Filters verringert. Bei niedrigen Frequenzen dominiert die Schleife von R2, aber die C2-Schleife dominiert bei höheren Frequenzen, bei denen die C2-Impedanz niedriger als R2 + R3 ist. Dann wird der Abfall über R3 nicht kompensiert und das Signal wird durch R3 C4 und eventuelles Abfallen des Verstärkers gedämpft.
Betrachten Sie nur den nicht invertierenden Abschnitt mit dem idealen Verstärker. Die Übertragungsfunktion ohne die Null von C1 R1 wäre:
Da ein idealer Verstärker verwendet wurde, um die Dinge handhabbar zu machen, geht Q auf unendlich, während C2 auf null geht. Dies ist kein Problem, da nur Frequenzen unterhalb der Verstärkerbandbreite berücksichtigt werden. Bei einem echten Verstärker würde Q mit der Verstärkung des Verstärkers abfallen. Durch Einfügen von Werten für R2, R3 und C4 können wir Q als Funktion von C2 darstellen.
Q nimmt ab, wenn der Wert von C2 zunimmt. Wenn der Verstärker zu laut ist, erhöhen Sie einfach C2, um die Reaktion zu verflachen.
Betrachtet man nun die Kurve, sieht es so aus, als hätte C2 von 470pF ein Q von ~ 0,8. Das wäre eine ziemlich flache Antwort. Was ist passiert?
Im Datenblatt zeigt der Schaltplan R4 den an U1 angeschlossenen Ausgang. Das macht 2 schlechte Dinge. Nachdem Sie sich einige Mühe gegeben haben, die Niederfrequenzeffekte von R3 und R6 zu kompensieren, fügt der Anschluss von R4 an U1 out R3 hinzu. Wenn Sie sich die Ausgangsimpedanz des Filters ansehen, werden Sie sehen, dass dies zutrifft. Zweitens tritt ein Peaking bei C2 und C3 von 470 pF auf (der Peak von Q liegt bei 300 pF, also mehr oder weniger als derjenige, bei dem Q abnimmt). Wenn R4 mit R2, R3 und C4 an den Knoten angeschlossen ist, verhält sich Q wie erwartet. Außerdem bleibt die Filter-Ausgangsimpedanz über das Audio-Durchlassband bis zum Abfallen sehr niedrig und folgt dann der C4-Impedanz.
quelle
Cirrus hat tatsächlich eine Anwendungsnotiz, die die Absicht der Schaltkreise beschreibt: http://www.cirrus.com/en/pubs/appNote/an241-1.pdf
Aus den Beschreibungen in diesem Dokument geht hervor, dass die Peaks nicht vorhanden sein sollten.
Im Allgemeinen kann das Modell an zwei Stellen falsch sein:
Die ADC-Eingangs- und DAC-Ausgangseigenschaften werden nicht modelliert. Die Stromkreise können eine bestimmte Quelle / Last erwarten.
Das verwendete Operationsverstärkermodell ist für diese Schaltung möglicherweise nicht ausreichend. Ich habe festgestellt, dass einige Schaltungen, die über 1 MHz hinausgehen, ein BW-Produkt mit höherer Verstärkung benötigen als die typischen generischen Modelle. Die Dokumentation der Evaluierungskarte für diesen ADC zeigt, dass diese Schaltung mit einem 2068-Operationsverstärker verwendet wird, der ein 27-MHz-BW-Verstärkungsprodukt aufweist.
BEARBEITEN: Nach genauerem Hinsehen werden die genauen Werte auf der Evaluierungskarte für diesen Teil verwendet. Daher empfehle ich, zuerst das Modell mit dem gleichen Teil zu modellieren, das sie verwenden, das 2068. Dies sollte hoffentlich den korrekten Betrieb anzeigen.
EDIT2: Ich habe die ADC-Schaltung über QUCS weitergeleitet, und sie haben keine geeigneten Gewürzmodelle für echte Operationsverstärker. LT Spice von Linear Technology ist ein sehr guter Gewürzsimulator. Wenn man die Strecke dort durchläuft, ergibt sich wie vorhergesagt eine schöne flache Reaktion. (Wenn Sie dieses Bild in einem neuen Tab öffnen, wird es vergrößert, sodass Sie die Details sehen können.)
quelle