
|
Für den TD125MKII wurde eine neue Motorsteuerung entwickelt. Diese ist jedoch nicht nur für den Thorens, sondern prinzipiell für fast alle Niederspannungs-Synchronmotoren zu gebrauchen. Sie bietet folgende Leistungsmerkmale
Prinzipiell sind noch andere Features denkbar, die hier genannten sind bereits fertiggestellt. Sinus/Cosinus-ErzeugungFür die Erzeugung des Sinus/Cosinus-Signals werden die PWM-Ports von Timer1 benutzt. Mit Hilfe des Timers wird ein PWM-Signal mit der Frequenz fclk/512 (hier ca. 29kHz) erzeugt. Durch einen nachgeschalteten Hochpass (f=2Hz) wird der Gleichspanungsanteil entfernt und in einem Tiefpass (f=160Hz) die PWM-Frequenz ausgefiltert. Zur Erzeugung des eigentlichen Signals wird Timer0 benutzt. Dieser läuft mit vollem CPU-Takt und erzeugt somit alle 256 Takte einen Overflow-Interrupt. In der ISR dieses Interrupts wird nun ein 32-bit Counter erhöht und aus einer Tabelle im Flash (1024 Werte) ein neuer Wert für die PWM-Generatoren von Timer1 erzeugt. Durch die Benutzung von 32-bit-Werten erreicht man eine sehr hohe Granularität der Frequenz (mit 16-bit-Werten wäre die Granularität mit ca. 0.25Hz recht grob gewesen). Allerdings hat dies auch seine Schattenseiten: ca. 50% der gesamten CPU-Leitung wird hier benutzt. Da aber keine anderen zeitkritischen Berechnungen benötigt werden, ist das kein Problem. MotortreiberFür den TD125 wurde zuerst ein sehr einfacher Motortreiber aus einem OPV mitnachgeschalteter Transistor-Treiberstufe eingesetzt. Dies ist für den schwachen Motor des TD125 eine brauchbare Lösung. Um die Steuerung allerdings universeller einsetzen zu können, wurden 2 andere Endstufen entwickelt. Beide basieren auf gängigen NF-Verstärkerchips und sind damit auch vollwertige NF-Endstufen. Die kleinere Variante SinCos Power mit dem TD2050 kann für Motoren bis etwa 14V Spannung benutzt werden, die grössere LM3886-basierte SinCos Megapower kann auch 24V-Motoren ansteuern. Prinzipiell ist es möglich, auch Hochvolt-Endstufen einzusetzen, die Spannungen bis zu 220V bereitstellen, um Netzspannungsmotoren zu betreiben. Hier bewegt man sich dann aber im Spannungsbereich >42V, von dem man als Amateur möglichst die Finger lassen sollte. Experimente mit Netzspannung können tödlich ausgehen! Daher werde ich auch keine Tips für mögliche Hochvolt-Endstufen geben. Wer selbst so etwas entwickelt, weiss hoffentlich, womit er es zu tun hat und welche Sicherheitsvorschriften einzuhalten sind. SpannungsumschaltungWerden statt LED3 der Transistor und das Relais bestückt, besteht die Möglichkeit, 2 verschiedene Spannungen am Ausgang zu wählen. Hierfür ist für LED3 die Funktion "Anlauf" zu wählen. In diesem Fall wird während der ersten 10 Sekunden nach Start bzw. nach Geschwindigkeitsänderungen (Umschlatung 33/45) die volle Spannung am Ausgang bereitgestellt und danach eine reduzierte Spannung. Die reduzierte Spannung wird über die beiden rechten Trimmer eingestellt. Dieses Feature macht bei drehmomentstarken Motoren Sinn. Man kann in diesem Falle den Motor mit voller Leistung laufen lassen und dann die Spannung soweit reduzieren, dass der Motor gerade noch sauber läuft. Gerade bei drehmomentstarken und leistungsstarken Motoren macht das Sinn, da damit die Leistungsaufnahme reduziert wird, was zu einer geringeren Wärmeentwicklung führt und die Kühlung des Motors erleichtern. Weiterhin werden durch eine reduzierte Betriebsspannung u.U. auch die Vibrationen des Motors geringer. DrehzahlmessungFür die Drehzahlmessung kommt eine Reflexlichtschranke zur Anwendung. Im Prinzip ist die Schaltung aber für beliebige andere Sensoren ausgelegt. Einzige Anforderung: Betriebsspannung von 5V und eine Ausgangsspannung zwischen 0V und 5V. Zwischen den Stroboskopmarkierungen "hell" und "dunkel" sollte ein Spannungshub von minimal 0.3V vorhanden sein. Mehr ist natürlich auch gut, je geringer die Spannungsdifferenz zwischen den beiden Extremwerten ist, desto grösser ist das Risiko, dass es zu Problemen kommt. Ich selbst benutze hierfür eine SFH9202, deren Vorteil die Verfügbarkeit beim grossen "C" ist (und billig ist sie auch noch). Die Spannungsdiferenz zwischen "schwarz" und "weiss" beträgt hier ca. 0.7V. Das reicht für eine saubere Erkennung problemlos aus, da die AD-Wandlung eine Auflösung von 10 bit nutzt. Aufbereitung des Signals der LichtschrankeZuerst hatte ich die Idee, das von der Lichtschranke gelieferte Signal direkt an den Comperator-Port des ATMega zu schalten. Da das Signal aber doch gewissen Störsignale enthält, lässt sich so keine saubere Frequenzmessung erreichen. Das Signal muss also noch weiter aufbereitet werden, wofür es verschiedene Varianten gibt:
Letztendlich fiel die Wahl auf Variante 4. Nun wird nicht (wie ursprünglich geplant) der Comperator-Port benutzt, sondern der AD-Wandler. Mit ca. 100 Wandlungen pro Sekunde ist der Overhead für die Datenaufbereitung so klein, dass der Prozessor nicht stark damit belastet ist und sich dennoch um seine anderen Tätigkeiten kümmern kann. Die Nutzung des AD-Wandlers hat noch einen anderen Vorteil: man kann das Ganze komplett selbstjustierend gestalten. Es wird einfach die minimale und maximale Spannung gespeichert und die Schwellwerte für den Schmitt-Trigger anhand dieser Schwellwerte automatisch mittels vorgegebener Schaltpunkte (z.B. 50% und 70%) berechnet. Damit kann die Installation komplett ohne Messgerät erfolgen. Serielle SchnittstelleZusätzlich ist eine serielle Schnittstelle vorgesehen. Diese kann einerseits genutzt werden, um die Steuerung einzustellen. In diesem Falle werden keine zusätzlichen Bedienelemente am Gerät benötigt. Weiterhin kann die Schnittstelle genutzt werden, um Daten an einen angeschlossenen Computer auszugeben. So ist es z.B. möglich, Messwerte der Drehzahlmessung auszugeben um am Computer nachträglich den Gleichlauf zu analysieren. Weiterhin bietet sich diese Schnittstelle an, um Software-Updates auf den Mikrocontroller zu spielen. Im Vergleich zu den meisten ISP-Programmiergeräten geht der Update über die serielle Schnittstelle nicht nur rasend schnell (ca. 4 Sekunden für die vollständige Programmierung eines ATMega8), sondern erfordert auch kein zusätzliches Programmierkabel. Für die Erstprogrammierung des Chips mit dem entsprechenden Bootloader ist jedoch immer noch ein ISP-Adapter erforderlich. Eine Alternative ist die Programmierung des Bootloaders in einem externen Programmieradapter (z.B. dem STK500 von Atmel). Als Schnittstellentreiber kommt die Standardschaltung mit MAX232 zum Einsatz. Weitere Infos und DownloadsÄhnliche Projekte, weitere Informationen
|