| Home | Stromkonstanter Home | uCcontrol (English) | µC Stromkonstanter Plus | Stromkonstanter |
by Martin Clausen (mc AT rotgradpsi DOT de)
Diese Schaltung stabilisiert Mikrocontroller gesteuert einen Strom von 0,000 bis zu 4,095 Ampere in 1 mA Schritten. Das Gerät ist via Drehencoder und Tasten oder RS232 steuerbar.
Das Mikrocontroller Programm ist auch für andere Steuerungsaufgaben verwendbar. Siehe uCcontrol (English).
Inhaltsverzeichnis:
Der Operationsverstärker (OP) bildet mit dem MOSFET und dem 0,05 Ohm-Widerstand eine Regelschleife (siehe Abb. 10). Geeignet ist hier z.B. der LT1006 von Linear Technology. Die Schaltung laut Schaltplan ist für 0 bis 4,096 A dimensioniert.
Die Genauigkeit der Schaltung ist für große Ströme beim Einsatz des LT1006 weitgehend vom Temperaturkoeffizienten des 0,05 Ohm-Widerstandes abhängig. Gut geeignet sind z.B. die Präzisionswiderstände in Vier-Leiter-Technik der PBV Serie (bei Conrad oder Bürklin) oder besser der A-H Serie (bei Bürklin), beide von Isabellenhütte. Für den Aufbau ist eine sternförmige Masseführung unerläßlich.
Der Sollwert wird vom Mikrocontroller über die Optokoppler an die Digital-Analog-Konverter (DAC) übergeben. Als DAC wird ein LTC1257 der Firma Linear Technology eingesetzt. Er verfügt zusätzlich zum 12 Bit breiten Wandler über eine eingebaute Referenzspannungsquelle und einen Ausgangsverstärker.
In Abhängigkeit vom erwarteten Spannungsabfall über Shunt und MOSFET ist der Kühlkörper zu dimensionieren. Dabei darf der Spannungsabfall über den MOSFET auch nicht zu gering gewählt werden, damit der Regelbereich der Schaltung nicht verlassen wird. Im allgemeinen sollte 1 Volt Reserve für den höchsten zu erwartenden Lastwiderstand ausreichen.
Wird der unten angegebene 450 VA / 4*15 V Transformator benutzt, so beträgt der minimale Lastwiderstand bei Benutzung von zwei Wicklungen in Reihenschaltung 5 Ohm, damit die Verlustleistung pro MOSFET nicht 80 Watt übersteigen kann. Daher ist ggf. eine Umschaltmöglichkeit zwischen den Wicklungen vorzusehen. Mit nur einer Wicklung sind dagegen beliebig niedrige Lastwiderstände möglich.
Kann der Benutzer die Last von der Stromquelle trennen, so ist in der Stromquelle eine Mindestlast vorzusehen (z.B. ein 10k-Ohm Widerstand), damit wird verhindert, daß die Ausgangsspannung unkontrolliert ansteigt. Man beachte den dadurch entstehenden Fehler in der Stromstärke.
Vor dem Trennen von Last und Stromquelle sollte die Stromstärke auf Null gestellt werden, sonst versucht die Stromquelle durch den offenen Ausgang den eingestellten Strom zu treiben. Damit würde der MOSFET voll durchgeschaltet. Bei Anschluß einer anderen
Last wird dann für kurze Zeit die volle Betriebsspannung ohne Strombegrenzung an der Last anliegen, bis die Regelschleife reagiert. Dabei können in Abhängigkeit vom Widerstand der Last sehr hohe Ströme fließen.
Für zwei Kanäle können die Leuchtdioden in den CNY17-3 für Clk- und Data-Leitung jeweils in Reihe geschaltet werden, dann wird nur noch ein Widerstand pro Leitung benötigt. Sollen mehr Kanäle genutzt werden, so müssen die Ausgänge z.B durch 74HC541 gepuffert werden, da sonst die Ausgänge des Mikrocontrollers für Clk und Data überlastet werden.
Im Schaltplan sind die Netzteile für die Hilfsspannungen nicht eingezeichnet.
Berechnung der Save Operating Area und Daten zu Drift und Rauschen in iconst.pdf.
Beim Einschalten der Stromversorgung wird das ALE Signal abgeschaltet, um die unnötige Aussendung von hochfrequenter Störstrahlung zu vermindern. Des weiteren wird der Stackpointer versetzt. Dann wird Timer 1 entsprechend der Jumperstellung der Baudrate initialisiert. Die zu den Jumperstellungen gehörigen Reloadwerte sind in einer Tabelle gespeichert. Schließlich wird das gesamte RAM mit demWert Null beschrieben. Dann wird das LCD initialisiert und die Startwerte werden ausgegeben. Zum Schluß wird noch der Interrupt für die serielle Schnittstelle freigegeben.
Die Hauptroutine der Software reagiert auf einen Tastendruck und führt die entsprechende Änderung des Wertes des aktuellen Kanals durch. Ein Überlauf von einer Stelle zur darüber oder darunter liegenden Stelle wird durch eine rekursive Abarbeitung der Stellen
realisiert. Nun wird der neue Wert auf seine Zulässigkeit geprüft. Ist der Wert zulässig, so wird er an den zugehörigen Ausgang gesendet. Bevor dies geschieht, muß ein Umsetzen aus dem Dezimalsystem in das Binärsystem erfolgen. Dann wird zunächst das höherwertige Byte in den Akkumulator geladen und durch Rotation in das Carrybit per Bitbanging über die Port-Pins ausgegeben. Danach wird das Display aufgefrischt.
Es wird nur auf den nächsten Tastendruck gewartet, wenn die vorige Taste nicht mehr gedrückt wird. So wird auch das Prellen der Tasten und des Drehenkoders verarbeitet.
Der über die serielle Schnittstelle einlaufende Datenstrom wird durch eine Interruptroutine verarbeitet. Die eingehenden Daten werden in einen Ringpuffer geschrieben. Dort wird auch geprüft, welche Adresse ein Befehl trägt. Ist das Befehlspaket komplett empfangen worden und stimmt die Adresse mit der des Mikrocontrollers überein, so folgt eine Überprüfung auf Zulässigkeit der empfangenen Daten. Sollte das Datenpaket zulässig sein, wird der Kanal dekodiert und die Daten in den zugehörigem Datenbereich gespeichert. Dann werden die Daten umgesetzt und ausgegeben, eben so, als sei ein Tastendruck erfolgt. Weiterhin wird auch der Status des Lese- und des Schreibezeigers überprüft, damit kein Pufferüberlauf unbemerkt auftritt. Sollte ein Überlauf auftreten, so wird der Mikrocontroller angehalten und eine Meldung auf dem Display ausgeben. Das Senden der eingegangen Daten wird durch periodischen Aufruf einer Routine im Hauptprogramm erledigt. Dabei muß der Aufruf ausreichend häufig erfolgen, damit kein Pufferüberlauf erfolgt. Die Abstimmung der beiden Routinen erfolgt über eine Art “handshake” und die Zeiger auf dem Ringpuffer.
Im allgemeinen besitzen die in einer Regelschleife eingesetzten OP und Stellglieder eine frequenzabhängige Verstärkung. Um ein Schwingen der Schaltung zu verhindern, muß also die Verstärkung unter eins gedrückt werden, bevor die Phasendrehung Pi überschreitet. Dazu werden frequenzabhängige Bauteile eingesetzt, also Kondensatoren und bei hohen Frequenzen auch Spulen. Bei den im Stromkonstanter auftretenden niedrigen Frequenzen werden nur Kondensatoren verwendet. Der kritische Punkt ist hier die Ansteuerung des Stellgliedes. Da der MOSFET eine Gatekapazität von einigen Nanofarad besitzt, kann der ihn ansteuernde OP bei direkter Ansteuerung leicht zum Schwingen angeregt werden. Der zwischen diesen Bauteilen eingesetzte Widerstand verhindert, daß der OP die Gatekapazität des MOSFET “sieht”. Dabei wird jedoch zwingender weise ein Tiefpaß in den Signalweg eingebaut. Dieser hat bei der angegebenen Dimensionierung eine Grenzfrequenz (-3 dB Punkt) von 40 kHz. Da der OP bei dieser Frequenz eine Verstärkung von deutlich über Eins hat, wird seine Grenzfrequenz durch die Beschaltung mit einem 47 nF Kondensator auf 3,4 kHz abgesenkt. Die große Sicherheitsmarge ist notwendig, da die anzusteuernden Spulen aufgrund ihrer Induktivität stark reaktiv wirken.
Da die Bandbreite der Regelschleife nun schon auf wenige Kilohertz begrenzt ist, ist es sinnvoll auch den Ausgang des DAC entsprechend zu filtern. Dadurch kann das Rauschen im oberen Frequenzbereich verringert werden. Durch die Bandbreitenbegrenzung tritt noch ein weiterer Effekt auf: Ändert sich das Ist-Signal sprungartig, so kann der OP nicht beliebig schnell nachregeln. Es ergibt sich eine exponentielle Annäherung an den Sollwert. Unter Umständen kann auch ein Overshot auftreten. Das kann mit einer PID-Regelung verbessert werden, diese müßte jedoch auf jede Last neu eingestellt werden, so daß von dieser Möglichkeit Abstand genommen wurde. Die zur Verfügung stehende Bandbreite reicht zur Ansteuerung der Spulen auf jeden Fall aus. Zur Vertiefung ist das Buch von W. Friauf empfohlen [W. Friauf, Feedback Loop Stability Analysis, McGraw-Hill New York (1998)].
Kondensatoren:
Widerstände:
Weiters:
Die Bauteilebeschriftung ist wie folgt zu lesen:
Bauteiltyp + Wert in exponential Form + Gehäusebezeichnung + Unternummer der Funktionseinheit
zum Beispiel: C1040805,1 ist ein Kondensator, 100nF, Gehäuse SMD 0805, erste Funktionseinheit im Gehäuse
Disclaimer: No warranty at all!
Copyright by Martin Clausen, Germany.
Kontakt zum Autor: mc AT rotgradpsi PUNKT de
Impressum