Hallo Forum,
dies ist meine erste OpAmp-Schaltung. Sie dient dazu, einen Ladestrom zu
begrenzen, indem die Feedback-Spannung des Schaltreglers erhöht wird,
wenn der gewünschte Strom erreicht ist. (Siehe Schaltplan.) Meine Frage
hier betrifft aber nur den Differenzverstärker.
OpAmp ist ein MCP6231. Da ich keine besonderen Anforderungen an den
OpAmp sehe, habe ich einfach einen im kleinen Gehäuse gewählt.
1. Gegenkopplung
Impedanz am negativen Eingang (Tiefpass mit integriertem
Spannungsteiler): 4,7kΩ (R13)
Gewünste Verstärkung: 250
-> Gegenkopplung: 1MΩ (R14)
Die beabsichtigte Ausgangsspannung Ua habe ich daneben gezeichnet, für
den Fall Ladestrom = 0,5A. Die 35mV sind die minimale Ausgangsspannung
des MCP6231. Ist so richtig, oder?
2. Eingangsstromkompensation am positiven Eingang
Wird oft empfohlen. Habe ich aber weggelassen, da R8 mit 0.02Ω eine
„niedrige“ Impedanz darstellt. In Ordnung, oder?
3. Stabilisierung der Ausgangsspannung
Der OpAmp geht bis 200kHz, der Schaltregler schaltet mit 1MHz. Damit der
Feedback-Spannungsteiler trotzdem stabil arbeiten kann, habe ich einen
100nF-Kerko vorgesehen. Ist das sinnvoll, oder provoziere ich evtl. den
OpAmp zum Schwingen, oder...?
Versorgungsspannung des OpAmp ist Akkuspannung (≈3,2V) oder extern (mit
78L05), mit Dioden zusammengeschaltet.
(Mir ist klar, dass R8 relativ klein ist, und evtl. weitere
Spannungsabfälle zwischen R8, Schaltregler-GND, OpAmp-GND, und
PWM-Tiefpass-GND entstehen können. Da muss ich beim Platinenlayout
sorgfältig sein.)
Tuxpilot schrieb:> habe ich einen> 100nF-Kerko vorgesehen. Ist das sinnvoll, oder provoziere ich evtl. den> OpAmp zum Schwingen, oder...?
Ja die 100nF direkt am OPV-Ausgang können dazu führen, dass er schwingt
(siehe Abschnitt 4.3 im Datenblatt deines OPV).
http://ww1.microchip.com/downloads/en/DeviceDoc/21881e.pdf
Noch übler in dieser Hinsicht ist C12 (47nF) direkt am invertierenden
Eingang des OPV. Der liegt in der Rückkoppelschleife und kostet dich
schon bei einigen kHz-Bereich viel Phasenreserve. Schau dir Abschnitt
4.7.2 im Datenblatt an, wo sich die Hersteller des OPVs schon wegen ein
paar pF am inv-Eingang Sorgen machen und Kompensationsmaßnahmen
vorschlagen.
-> C12 darf nicht direkt am invertierenden OPV-Eingang liegen.
Tuxpilot schrieb:> Da ich keine besonderen Anforderungen an den> OpAmp sehe
Du willst in Anbetracht deines sehr kleinen Messwiderstands erreichen,
dass der OPV am Eingang mit einer Genauigkeit von besser 1mV arbeitet,
oder? Aber der von dir gewählte OPV hat eine Offsetspannung irgendwo
ziwschen -5mV und +5mV.
Die Schaltung wird wohl so nicht funktionieren,
weil der OpAmp keine symetrische Spannungsversorgung hat.
Was liegt bei PWM-CHG für eine Spannung an, eine positive?
Der OpAmp ist nicht in der Lage eine negative Spannung
auszugeben wenn es keine negative Betriebsspannung gibt.
Messer, Gabel, Schere, Licht sind für kleine Kinder nicht.
Dasselbe gilt für totale Nullen im Power-Management.
Tipp: Fürs Laden eines LiPo-Akkus gibt es eigene Charger-ICs mit
Schaltregler.
Danke für die Hinweise.
Achim S. schrieb:> Ja die 100nF direkt am OPV-Ausgang können dazu führen, dass er schwingt> (siehe Abschnitt 4.3 im Datenblatt deines OPV).
Dann lasse ich sie weg. Ok, es wären nur 2μA Ripple, das schafft die
Ausgangsstufe des OpAmp sicher alleine, und ist im Schaltregler sowieso
intern kompensiert.
> Noch übler in dieser Hinsicht ist C12 (47nF) direkt am invertierenden> Eingang des OPV. Der liegt in der Rückkoppelschleife und kostet dich> schon bei einigen kHz-Bereich viel Phasenreserve. Schau dir Abschnitt> 4.7.2 im Datenblatt an, wo sich die Hersteller des OPVs schon wegen ein> paar pF am inv-Eingang Sorgen machen und Kompensationsmaßnahmen> vorschlagen.> -> C12 darf nicht direkt am invertierenden OPV-Eingang liegen.
Einige kHz würden am positiven Eingang wieder reinkommen, wenn der Strom
begrenzt wird. Der Tiefpass ist nicht so schnell. Reicht es, einen
1kΩ-Widerstand zwischen negativen Eingang und Tiefpass zu schalten?
> Du willst in Anbetracht deines sehr kleinen Messwiderstands erreichen,> dass der OPV am Eingang mit einer Genauigkeit von besser 1mV arbeitet,> oder? Aber der von dir gewählte OPV hat eine Offsetspannung irgendwo> ziwschen -5mV und +5mV.
Aber die Offsetspannung ist konstant, und so kann ich sie in Software
kompensieren. Richtig?
Günter Lenz schrieb:> Die Schaltung wird wohl so nicht funktionieren,> weil der OpAmp keine symetrische Spannungsversorgung hat.> Was liegt bei PWM-CHG für eine Spannung an, eine positive?> Der OpAmp ist nicht in der Lage eine negative Spannung> auszugeben wenn es keine negative Betriebsspannung gibt.
(Oh, habe ich verschwiegen.) PWM_CHG ist der PWM-Ausgang eines AVR.
10kHz PWM-Frequenz und Logikspannung von 3–5V High bzw. 0V Low. μC und
OpAmp haben dieselbe Versorgungsspannung.
Negative Ausgansspannung brauche ich nicht, im Diagramm habe ich ja 35mV
als niedrigste Ausgansspannung gezeichnet.
Jürgen Wissenwasser schrieb:> Tipp: Fürs Laden eines LiPo-Akkus gibt es eigene Charger-ICs mit> Schaltregler.
Ja, aber da ich Eingangsspannung 4,5–24V, Ausgangsspannung 3,6V,
Ausgangsstrom ≥2A, und Eingangsstrom begrenzbar möchte, fand ich den
TPS54332 letztendlich doch einfacher (bis jetzt). Kennst du einen
Laderegler, den ich bisher übersehen habe?
Ich glaube, ich verstehe jetzt das Problem wegen der asymmetrischen
Spannungsversorgung. Der OpAmp gibt bei U_d = 0 eine Spannung von
(VCC+GND)/2 aus. Das heißt, ich muss U- der Versorgungsspannung
entsprechend anpassen.
Tuxpilot schrieb:> dies ist meine erste OpAmp-Schaltung. Sie dient dazu, einen Ladestrom zu> begrenzen, indem die Feedback-Spannung des Schaltreglers erhöht wird,> wenn der gewünschte Strom erreicht ist. (Siehe Schaltplan.) Meine Frage> hier betrifft aber nur den Differenzverstärker.
Gut gemeinter Rat. Die Frage solltest Du LTspice stellen. Dafür ist das
Tool da.
mfg Klaus
Tuxpilot schrieb:> Der OpAmp gibt bei U_d = 0 eine Spannung von> (VCC+GND)/2 aus.
Nein, sorum läuft das nicht. Denk an die Rückkopplung des OPV. Würde der
Ausgang bei Ud=0 immer auf die halbe Versorgungsspannung gehen, dann
würde vom Ausgang über den Rückkoppelwiderstand ja wieder Strom auf den
Eingang fließen, der das Ud=0 aufhebt.
Solange der OPV stabil mit Rückkopplung arbeitet (nicht schwingt oder in
Sättigung geht) gibt er am Ausgang genau die Spannung aus die es
braucht, dass das Ud an seinen Eingägen gegen 0V geht. (Genauer: dass
das Ud am Eingang seiner Offsetspannung entspricht).
Du willst den OPV in Sättigung betreiben. Dann geht sein Ausgang nicht
auf die halbe Versorgung sondern so weit "nach unten" wie es der OPV
schafft. Du bräuchtest von daher eine negative Versorgung also nur dann,
wenn du auch negative Ausgangsspannungen erreichen wolltest oder wenn du
sehr nahe an die 0V herankommen willst.
Zu glauben, der OPV würde über einen großen Bereich der
Eingangsspannungen den Ausgang genau auf 35mV legen (wie du es für deine
Regelung ansetzt), ist aber auch illusorisch. Die 35mV sind ein Wert aus
dem Datenblatt, der für eine bestimmte Übersteuerung des Eingangs und
für eine bestimmte Last passt. Wenn du den OPV in Sättigung betreibst,
dann wird sich irgendeine Ausgangsspannung einstellen (die aber
zumindest die Größenordnung von 35mV hat). Einen genauen Wert für die
tatsächliche Spannung kannst du aber nicht vorhersagen.
J.W.:
> Tipp: Fürs Laden eines LiPo-Akkus gibt es eigene Charger-ICs mit> Schaltregler.
So
oder
"Aufgabentrennung": Vielleicht solltest Du den Spannungswert am Shunt
verstärken, auf einen ADC Deines µC geben und den DCDC via Deiner PWM
steuern. Habe das mal (nicht mit PWM sondern) mit DAC gemacht - geht.
oder
mit der PWM einen MOSFET/L/C/D-Kombi ansteuern... Gute App-Note bei
Atmel/Microchip. http://application-notes.digchip.com/015/15-16122.pdf
mfg
Die Spannung an R8 kann ich mit dem ADC im AVR direkt lesen, der hat ja
einen Verstärker integriert. Wenn ich schnell genug lese, kann ich VSNS
über PWM_CHG beeinflussen, indem ich den Tiefpass nicht an einen OpAmp
anschließe, sondern direkt an VSNS. (Ausgehend vom letzten Schaltplan.)
Das kann ich beides auf der gleichen Platine ausprobieren.
Das mit dem MOSFET klingt nach ATtiny861A mit PLL, negativ-Buck-Regler
mit N-FETs, mehr Software, und weniger Bauteile.
Ich werde es mit dem OpAmp ausprobieren, das erscheint mir am
einfachsten.
Ich habe es in LTspice ausprobiert, Schwingen habe ich aber nicht
erreichen können. (Ich habe wenig Vertrauen in meine Fähigkeiten,
Simulationen korrekt durchzuführen.)
Tuxpilot schrieb:> Ich habe es in LTspice ausprobiert, Schwingen habe ich aber nicht> erreichen können. (Ich habe wenig Vertrauen in meine Fähigkeiten,> Simulationen korrekt durchzuführen.)
Um die Stabilität/Schwingneigung zu bewerten nehme ich meist eins von
folgenden beiden Verfahren:
a) schau dir in der Transienten-Simulation das Verhalten bei einem
kleinen Spannungssprung an. Du kannst dafür auch gerne eine zusätzliche
Spannungsquelle einbauen, die nichts anderes macht, als den aktuellen
Arbeitspunkt nach einigen µs um z.B. 5mV zu verschieben. Stellt sich das
System schnell und gutmütig auf den neuen Arbeitspunkt ein? Oder
schwingt es über und schwingt lange nach, bis es den neuen Arbeitspunkt
erreicht? Im zweiten Fall ist es nicht ganz unwahrscheinlich, dass das
reale System schwingen würde.
b) mach eine AC-Simulation und schau, ob dein Verstärker ein starkes
"Peaking" hat (also Anstieg der Verstärkung in einem schmalen
Frequenzbereich kurz vor der Grenzfrequenz des Systems). Geht das
Peaking um mehr als 10 dB nach oben? In dem Fall ist es nicht ganz
unwahrscheinlich, dass das reale System schwingen wird.
Die Simulation wird dir nicht "exakt" zeigen, ob du die Grenze zur
Schwingneigung überschritten hast. Denn es gibt immer noch ein paar
reale parasitäre Effekt zusätzlich, die du in der Simu nicht abbildest.
Aber die Simu kann dir sagen, ob dein Verstärker deutliche
Schwingneigung hat oder nicht.
Als Illustration habe ich dir mal Ausschnitte aus deiner ursprünglichen
Schaltungsidee angehängt. Du siehst in der AC-Analyse ein starkes
Peaking bei ~10kHz, in der Transienten-Analyse ein starkes Überschwingen
und langes Nachschwingen mit ~10kHz. In der Simu (mit dem einfachsten
OpAmp-Modell) scheint die Schaltung als (grade noch) stabil. In der
Realität, mit weiteren parasitären Effekten, wäre sie aber sicher ein
Kandidat für eine Instabilität.
Auf die Art kannst du also überprüfen, ob der Differenzverstärker
alleine stabil ist oder nicht. Ob das Gesamtsystem dann auch stabil wäre
(bei dem du den OPV ja in die Rückkopplung deines Schaltreglers packst)
wäre nochmal eine andere Frage.
Ich dachte mir, jetzt wo ich LTspice zum Laufen bekommen habe, kann ich
ja ein wenig damit rumspielen.
Das mit den AC-Simulationen verstehe ich ehrlich gesagt nicht so genau.
Solche Peaks habe ich bisher nicht entdeckt.
(Ich habe den MCP6231 in LTspice plötzlich nicht mehr zum Laufen
bekommen, obwohl ich an der MCP6231.lib nichts geändert habe. Immer
„Timestep too small […]“. AD8613 soll ein Ersatz für die Simulation
sein.)
AD8613_PWM_1k.png:
Scheint nicht zu vielen Schwingungen zu neigen. Ich habe versucht, ein
paar Sprünge vor dem Tiefpass, nach dem Tiefpass, und an U+ zu erzeugen.
Andere Bilder:
Ich habe mit einem 700kHz Buck-Converter versucht, den TPS54332 ungefähr
nachzubilden, weil ich nicht weiß, was ich mit TIs PSPICE-Modell
anfangen kann. Ich habe Sprünge an V_out und U- erzeugt, und I_out wird
nachgeregelt.
20kHz_Vout_1k.png
Eine sehr seltsame Akkuspannung, aber I_out passt.
Das simulierte Verhalten entspricht meinen Vorstellungen. Mal sehen, wie
es in der Realität aussehen wird. (Und mal sehen, wie ich das messen
werde.)