Hallo ihr,
ich bin gerade dabei, einen DCDC-StepUp wandler zu bauen, leider sind
meine Programmierkünste echt nicht die besten.
Zur Problematik: Anbei sind zwei Bilder die den Schaltplan des StepUp
Wandlers zeigen. Um den Ausgangsstrom zu messen, habe ich mich dazu
entschieden den Spannungsabfall über den N-Mosfet(TK56E12N1) zu messen,
was jedoch nur möglich ist wenn der Mosfet durchgeschaltet ist. Da ich
den Mosfet mit 100kHz schalte muss also mein ADC um einiges schneller
sein, was ich, soviel wie ich verstanden habe auf die gleiche Frequenz
wie der MC eingestellt habe(32MHz)... soweit so gut.
jedoch schaffe ich es nicht eine geeignete schleife zu entwickeln die
nur dann misst wenn der Mosfet durchgeschaltet ist. Heißt also, wenn ich
einen duty cycle von 50% bei 100kHz habe also der Mfet für 5us
durchgeschaltet ist kann ich nur in dieser zeit messen.
ich benutze den MC Pic16f1828 (C in mplab)
der Condensator in zweiten bild muss raus da er sich zu langsam aufläd
schonmal vielen Dank im Voraus,
Jonathan
Jonathan schrieb:> der Condensator in zweiten bild muss raus da er sich zu langsam aufläd
Ach.
Was ist bitte DC_P1 ?
Der RDSon deines MOSFETs ändert sich von 6 auf 12mOhm wenn er sich von
Einschalttemperatur bis Betriebstemperatzur aufwärmt.
Was willst du da messen ?
Jonathan schrieb:> jedoch schaffe ich es nicht eine geeignete schleife zu entwickeln die> nur dann misst wenn der Mosfet durchgeschaltet ist. Heißt also, wenn ich> einen duty cycle von 50% bei 100kHz habe also der Mfet für 5us> durchgeschaltet ist kann ich nur in dieser zeit messen.
Ja nun, es hat ja niemand behauptet, daß es so einfach geht.
Immerhin tastet ein ADC nur zu Beginn der Messung ab. Du kannst also
deinen MOSFET einschalten, warten bis es durchschaltet (hast du je
exztra über R17 D4 auf unbekannte Zeit verzögert, und dann den ADC
anstossen damit er eine Messung macht. Wenn man R14 weglässt, kommt
vielleicht sogar was bei raus.
Daß diese Messung erst später vorliegt, als der MOSFET schon wieder
abgeschaltet wurde, muss das Programm halt berücksichtigen, der ADC
eigent sich jedenfalls nicht zur Überstrom-Notabschaltung damit der
MOSFET bei gesättigter Spule nicht platzt.
Daher verwenden andere Leute richtige Schaltregler-ICs. Die sind auch
nicht grösser als dein DC_P1.
Die Messung zu Beginn der Rampe nützt dir wenig, wenn du einen current
mode Regler bauen willst. Der Strom steigt ja im diskontinuierlichen
Betrieb von 0 an und ist erst am Ende des Impulses auf Nennwert. Im
kontinuierlichen Betrieb ist der Strom schon zu Beginn hoch, steigt aber
noch weiter. Korrekterweise müsstest du mehrere Wandlungen pro Impusl
machen, viele Wandlungen pro Impuls, mehr als 1 Wandlung pro
Mikrosekunde.
Das kann dein uC nicht, der ADC dort braucht mindestens 12us für eine
Wandlung, und in C würedet du die Auswertung sowieso nicht so schnell
programmiert bekommen.
Ausserdem beachte 15.3 A/D Acquisition Requirements im Datenblatt, 4.5us
muss er die Analogquelle mindestens stabil haben bevor er wandlen kann.
Michael B. schrieb:> Ausserdem beachte 15.3 A/D Acquisition Requirements im Datenblatt, 4.5us> muss er die Analogquelle mindestens stabil haben bevor er wandlen kann.
Jain - dieses Requirement ergibt sich durch eine Rechnung mit gewissen
Annahmen, u.a. zum Widerstand der Quelle und zur gewünschten
Messgenauigkeit. Wenn die Quelle recht niederohmig ist (mit R14 = 100k
wird das natürlich nix), man ggf. ein paar Abstriche bei der
Messgenauigkeit macht und der ADC-Eingang auch keine großen
Spannungssprünge sieht (mit der Messung am "heißen Ende" des FETs wird
das diesbezgl. aber auch nix), kann die Acquisition-Time auch deutlich
kürzer ausfallen.
Die Messung des Stroms über den RDSon des FETs dürfte aus den genannten
Gründen mit dem PIC-ADC wohl kaum ordentlich machbar sein. Ein geeignet
dimensionierter Shunt zwischen Source und GND ist deutlich besser
geeignet zur Strommessung mit dem ADC. Mit dem Shunt könnte man in
Verbindung mit dem Comparator im PIC auch eine schnelle
Shutdown-Funktion beim Überschreiten eines gewissen Stroms in Hardware
realisieren (Enhanced PWM -> Auto Shutdown). So ist auch "Cycle-by-Cycle
Current Limit" möglich.
Den ADC kann man dann zusätzlich zur Überwachung des "normalen" Stroms
nutzen, das geht auch bei 100 kHz, aber dann nicht mit einer Schleife,
sondern per Timer-Interrupt, in dem der ADC zur korrekten Zeit, synchron
mit der PWM, gestartet wird, und natürlich kann der nicht jeden
PWM-Zyklus messen, sondern immer nur alle paar Zyklem eine Messung
durchführen. Genau sowas habe ich zufälligerweise gerade auf meinem
kleinen PWM-Board zur Motor-Steuerung implementiert (PIC12F1840). Da
geht es bis 125 kHz PWM.
Dabei wird TMR2 für PWM und der TMR0-Interrupt zum Start der AD-Wandlung
verwendet. In der ISR wird TMR0 auch wieder geladen, so daß nach ca.
50µs eine neue Ad-Wandlung exakt am Ende des PWM-Impulses gestartet
wird. Diese 50 µs sind willkürlich gewählt, man könnte bei 100kHz
vielleicht auch jeden 2. Zyklus samplen (alle 20µs) - da wird's mit der
Laufzeit der ISRs aber vielleicht schon knapp.
Ralf schrieb:> Der Strom durch den Fet hat nichts mit deinem Ausgangsstrom zu tun.
Naja, "nichts" ist auch nicht ganz richtig - ein gewisser Zusammenhang
des FET-Stroms mit dem Ausgangsstrom besteht schon.
Thomas E. schrieb:> Naja, "nichts" ist auch nicht ganz richtig - ein gewisser Zusammenhang> des FET-Stroms mit dem Ausgangsstrom besteht schon.
Ist aber auch sehr stark von anderen Parametern abhänig (z.B. L und Vin)