eng Page in english

BL-CTRL V1.1

BL-Ctrl11_unten1

{i} Info für den vorbestückten Motorregler gibt es hier: BL-Ctrl_V1_1

Brushless Ctrl (Allgemein)

Die Antriebe des MikroKopter sind Bürstenlose Gleichstrommotoren; sog. Brushless-Motoren. Sie sind von der Technik mit Synchron- oder Schrittmotoren zu vergleichen.

{i} Eine ausführliche Anleitung zur Inbetriebnahme findet man unter BL-Ctrl Anleitung...

Die Vorteile dieser Motoren sind:

Zwar gibt es auf dem Markt bereits diverse BL-Regler aber leider kann keiner dieser Regler unsere speziellen Anforderungen erfüllen.

So haben wir einfach einen eigenen preisgünstigen Selbstbau Brushless Regler entwickelt

BL-Regler

Die unbestückte Leiterkarte bzw. SMD-vorbestückte Platine ist in unserem Shop erhältlich.

Zur Programmierung wird ein ISP-Adapter benötigt - z.B. SerCon.

Wir betreiben diesen Regler z.B. zusammen mit ROBBE ROXXY 2815 oder ROBBE ROXXY 2824-34.

Technische Daten

Als Schnittstellen sind möglich:

Funktionsweise

Die Ansteuerung erfolgt dreiphasig in Impulsgruppen mit überlagerter PWM. Die PWM bestimmt die Höhe der Phasenspannung (genauer: der Arithmetische Mittelwert der Spannung).

Die Phasenspannung am Motor (also die PWM) ist eine Stellgröße für die Drehzahl, weil: Ein Motor erzeugt durch seine Drehung eine Gegenspannung (wie ein Generator), die der angelegten Spannung entgegenwirkt.

Es stellt sich eine Drehzahl ein, bei der die Differenz von angelegter Spannung und Gegenspannung einen Strom erzeugt, der dem abgenommen Drehmoment entspricht.

Es sind immer 2 der sechs MOSFETSs in Betrieb, um die Motorwicklungen zu bestromen. Der Zeitpunkt der Kommutierung (heißt: es muss auf die nächste Phase geschaltet werden), wird durch Spannungsmessung (genauer: Vergleich) an der nicht-bestromten Phase bestimmt.

Dazu wird der im Atmega8 vorhandene Analogkomperator verwendet. Der Strom wird über den Spannungsabfall an einer definierten Leiterbahn bestimmt.

Das Verfahren ist für eine Überstromabschaltung genau genug.

Mosfet Endstufen

Mosfets

Die Leistungsstufe besteht aus einem N-Kanal und einem P-Kanal MosFet pro Phase.

Der P-Kanal Mosfet benötigt einen vorgeschalteten Transistor, um das Gatepotential über einen Controllerportpin schalten zu können.

Die 10A-MOSFETs aus dem Shop benötigen selbst im geschlossenen Raum (27°C) nach einigen Minuten Volllast keine besondere Kühlung, eine vollflächige und saubere Verlötung vorausgesetzt:

links der NMOS, rechts der PMOS

Rotorlageerkennung

Kommutierung

Dieser Schaltungsteil wirkt unscheinbar, hat es aber in sich.

Hier wird aus den Spannungen der Motorphasen ein virtueller Sternpunkt gebildet (Mittel) Der Controller vergleicht nun die gefilterten Spannungen der Phasen (NULL_x) mit dem Mittelpunkt und bestimmt anhand dessen den Zeitpunkt für die Kommutierung. Unter "Kommutierung" versteht man das Umschalten der Leistungsendstufe auf die nächste Phase.

Strommessung (Shunt)

shunt

Auf der Leiterkarte befindet sich eine Masseleiterbahn (Shunt), die absichtlich etwas verlängert wurde.

Anhand des Spannungsfalls über der Leiterbahn bestimmt der Controller den aufgenommenen Strom und drosselt den Regler etwas bei Überstrom. Es wird nicht plötzlich abgeschaltet, sondern der Strom wird langsam gesenkt. Dadurch fällt der Flieger nicht vom Himmel, wenn ein Regler an die Strombegrenzung kommt.

Lösung wenn der Shunt zerstört wurde

Falls der Shunt durch Überbelastung etc. zerstört wurde (Lack abgehoben/Kupferbahn zerplatzt), können anstelle dessen ein Stück Kupferdraht eingesetzt werden. Der Widerstandswert zwischen C13 und C14 (im Bild oben rot) liegt bei gemessenen 0,010 Ohm. Zwischen C13 und der Massefläche der Transistoren (zusätzlich blasses rot) beträgt er ca. 0,015 Ohm.

Wichtig ist, dass der Shunt vollständig ersetzt wird! Mit kann man die Länge des Drahtes berechnen, der als Ersatz dienen kann. Für Kupfer ergibt sich durch Umstellen (für 0,010 Ohm) ein konstanter Faktor, der mit dem quadrierten Drahtdurchmesser bzw. -radius (in mm) multipliziert wird. Als Ergebnis erhält man die Drahtlänge in mm:

bzw.

Beispiel: Kupferdraht mit 0,5mm Durchmesser und einer Drahtlänge von ca. 110mm ergibt den passenden Widerstandswert. Ebenfalls möglich ist Kupferlackdraht mit 0,3mm Duchmesser und 40mm Länge.

Der frühere Vorschlag mit 2x 0,22 Ohm Widerständen in Parallelschaltung kann zu Messfehlern mit der neuesten Brushless-Firmware führen, da der Widerstandswert zu hoch ist.

Wer es ganz genau wissen möchte, testet die Strombegrenzung. Dazu schaltet man ein Multimeter (Strombereich) in Reihe mit der + Leitung des Reglers. Die propellerlose Glocke sollte man mit einem Lappen oder Handschuh bremsen, damit Leistung aufgenommen wird. Nun gibt man Gas und bremst gleichzeitig den Motor ab. Dabei beobachtet man das Instrument. Bei ca. 10 A müsste die Begrenzung einsetzen, 11...12 A wären nicht schlimm. Erfolgt die Begrenzung schon früher, zum Beispiel bei 6...8 A, muss der Widerstand verringert werden.

WICHTIG: Wenn ein Shunt mit weniger Widerstand eingelötet wird (zu kurzer Draht oder zu grosser Querschnitt), setzt die Begrenzung zu spät ein. Das kann zur Zerstörung der Reglers oder des Motors führen.

Controller

ATMEGA8

Als Controller kommt ein Atmega8 von Atmel zum Einsatz.

Er besitzt ein für unsere Anwendung wichtiges Feature: Ein Analogcomperator mit Multiplexer

Der Atmel ist sehr preisgünstig (<2EUR), einfach zu programmieren, benötigt minimale Peripherie und ist für unsere Drehzahlbereiche schnell genug.

Debuggen

Man kann sich im laufenden Betrieb die wichtigsten Signale über die Serielle Schnittstelle ansehen:

Hier im Beispiel: Grün (unten Eckig): Solldrehzahl Blau (unten auf der Grünen): Istdrehzahl Gelb: PWM Rot: Strom Hier habe ich das Verhalten von Soll- und Istdrehzahl verglichen und dabei Strom und PWM betrachtet. Als Debugger-Software verwenden wir das Downloader und Debugger-Tool für unsere MicroSPS

Ggf. muss man sich in der Quelle der Software die Daten in nur in die DebugOut.Analog[x]-Variablen eintragen.

Motordaten simulieren

Mit diesem kleinen Programm kann man die Motordaten simulieren.

/!\ Ab Softwareversion 0.35 geht SimTxData.exe nicht mehr. Ab dieser Softwareversion direkt das Koptertool verwenden. Siehe auch in der FAQ /!\

Die Daten werden auf der seriellen Schnittstelle im Format gesendet:

0xF5 aa bb cc dd (aa = Motor 1, bb = Motor 2, usw.)

Screenshot_SimData

Der Anschluss an den Motorregler ist einfach.

{i} Als Schnittstelle eignet sich hervorragend unser serieller Konverter (SerCon):

Falls der Regler bereits mit einer 2x5pol Stiftleiste ausgerüstet wurde, muss lediglich der Jumper vom SerCon abgezogen werden. Danach kann direkt mit dem Tool 'SimTxData.EXE' der Regler getestet werden.


Alternativ kann auch ein einfacher Transistor-Inverter verwendet werden:

Es werden dann lediglich 1 NPN-Transistor (z.B. BC337 o.ä.) und zwei 10k-Widerstände benötigt:

SIO

Schub über Strom-Kennlinie

LED Signale

Nach dem die Regler fertig gelötet sind und nach der Überprüfung, dass tatsächlich 5V zwischen z.B. "J8" und "gnd" anliegen leuchten die LEDs nicht. Erst nachdem sie das erste Mal programmiert worden sind wird auch den LEDs leben eingehaucht.

Beide LEDs leuchten nicht: Es liegt keine Spannung an den Reglern an. ...

Rot und grün leuchten: Empfänger nicht angeschlossen. Ist der Sender ausgeschaltet?

Grün leuchtet: Die Regler sind betriebsbereit.

Grün zeigt Impulsfolgen (Pumpen): Regler erhält Sollwert, aber kein Motor angeschlossen.

Während des Programmiervorgangs sind beide LEDs am jeweiligen Regler erloschen. Erst wenn der Programmiervorgang abgeschlossen ist initialisiert sich der Regler wieder. Beim programmieren eines Reglers leuchten dabei die Unbeteiligten mit beiden LEDs.

Ab der BL-Ctrl V0.35 ist ein Selbsttest implementiert.

Verschiedene Fehler werden beim Start überprüft. Falls ein Fehler vorliegt, blinkt die Rote LED nach dem Start.

Wenn die rote LED nicht blinkt, ist alles okay

Ausserdem Piepen die Motorwicklungen nach dem Einschalten beim Selbsttest.

Die Propeller drehen dabei evtl, allerdings ohne Kraft (Finger bleiben dran)

Nach dem Start kommt eine Tonfolge, bei der der Regler seine Endstufe testet.

Im Falle eines Fehlers, werden Buchstaben ausgegeben, die einen Hinweis auf den Fehlerhaften MosFet geben.

Um das zu sehen muss allerdings der Regler über ein Sercon angeschlossen werden. Die Fehlercodes sind:

(Nähere Infos zu den einzelnen Fehlern finden sich auf der SeiteBL-Ctrl_Fehlerbeseitigung)

Empfohlene Motoren

Folgende Motoren wurden bisher erfolgreich eingesetzt:

Dateien

Alle Dateien, Dokumente und Programme findet man hier: Downloads

Alternativen zu den Stiftleisten beim Flashen

Eine weitere Möglichkeit: Die drei Leitungen (Rx,Tx,Gnd) vorübergehend an die Regler anlöten, die Regler können dabei eingebaut bleiben. Der Sercon wird dann extern mit 5V gespeist (ansonsten muss man vier Leitungen am Regler anlöten). Vorher den Schrumpfschlauch der Regler an den Lötpunkten entfernen.
/!\ ACHTUNG: Dies ist nur was für fortgeschrittene Anwender!

Sonstiges

Da es sich bei der BL-CTRL ja doch um ein vollwertiges Microcontroller Board handelt lassen sich mit gegebenfalls etwas geänderter Bestückung auch diverse andere Dinge damit erledigen.

Weiterführende Links


MikroKopter: BrushlessCtrl (zuletzt geändert am 22.06.2008 19:06 durch Andreas Henne)