siehe auch: FlightCtrlAnleitung

Selbstbauregler für Brushless-Motoren BL_CTRL_V1.0/V1.1 Schaltplan, Bestückung und Inbetriebnahme

{i} Zusatz-Info für den BL-Ctrl V1.1/2 gibt es hier: BL-Ctrl_V1_1 und BL-Ctrl_V1.2

Anleitung BL-Ctrl

BL-Ctrl

Die Platine BL_Ctrl ist ein sensorloser Treiber für bürstenlose Gleichstrom-Motoren.

Sie wurde speziell für den Einsatz in Quadrokoptern entwickelt, wo schnelle Sollwertänderungen notwendig sind. Sie kann jedoch auch in anderen Applikation problemlos Verwendung finden.

Features

Als Schnittstellen sind möglich:

(Bild: BL-Ctrl V1.1)

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 durch seine Drehung eine Gegenspannung (wie ein Generator) erzeugt, die der angelegten Spannung entgegenwirkt. Es stellt sich eine Drehzahl ein, bei der die Differenz von angelegter Spannung und Gegenspannung einen Strom fließen lässt, der dem abgenommen Drehmoment entspricht. Es sind immer 2 der sechs MOSFETs 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 Analogkomparator verwendet. Der Strom wird über den Spannungsabfall an einer definierten Leiterbahn bestimmt.

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

Allgemeine Sicherheitshinweise

Wir garantieren nicht für fehlerfreies Verhalten des Reglers. Sobald der Regler mit Spannung versorgt ist, kann der am Regler angeschlossene Motor z.B. durch Fehler o.ä. jederzeit unerwartet anlaufen oder sich erhitzen. Trotz sorgfältiger Erstellung und Überprüfung übernehmen wir keinerlei Garantie oder Haftung (direkter oder indirekter Art) für die Fehlerfreiheit der Software, der Hardware oder von Informationen. Sie benutzen den Regler auf eigene Gefahr (dies gilt auch für dazugehörige PC-Programme). Weiterhin übernehmen wir keinerlei Haftung für Folgeschäden an Sachwerten oder Personen, die durch Anwendung des Reglers entstehen. Es liegt in ihrer Verantwortung, einen vollständigen Systemtest durchzuführen. Die Spannungsversorgung darf nicht verpolt werden.

Inbetriebnahme

Schritt 1: Anschluss und Kontrolle der Betriebsspannung

Um sicher zu gehen, dass man keine ungewollten Lötbrücken beim Bestücken in die Versorgung eingebaut hat, prüft man mit einem Durchgangsprüfer die 5V gegen GND (es gibt Lötpads, die mit "5V" und "GND" beschriftet sind).

Man sollte auch gleich die 12V-Versorgung auf Kurzschluss prüfen (direkt zw. den Anschlüssen für die Batteriespannung).

Bei diesen Durchgangsmessungen muss ein Widerstand deutlich über 0 Ohm gemessen werden bzw. der Durchgangsprüfer darf nicht 'piepen'.

Sollte sich doch ein Kurzschluss eingeschlichen haben, sind häufig Lötbrücken an den 100nF-Kondensatoren die Ursache. Bei Verwendung von Lötpaste gilt: weniger ist mehr.

Die Betriebsspannung wird an den Anschlüssen BAT+ und BAT- angelegt. Es wird dringend empfohlen, ein strombegrenztes Netzteil zu verwenden, bis man weiß, dass alles richtig funktioniert. Ein Steckernetzteil mit Gleichspannungsausgang von ca.9-12V tut hier gute Dienste. Nach Anschluss der Betriebsspannung wird die +5V-Versorgung überprüft. Dazu misst man am Anschluss „+5V“ gegen Masse. Die Spannung sollte zwischen 4,8 und 5,2 V liegen.

Schritt 2: Einspielen des Programms

Dies wird weiter unten genau beschrieben.

Schritt 3: Test der Hardware

Wenn der Controller erfolgreich programmiert werden kann, können die Motorleitungen angelötet werden. Die I²C Leitungen dürfen erst angelötet werden, nachdem das endgültige Programm eingespielt wurde, da diese Leitungen Teil der Programmierschnittstelle sind. Wenn mehrere BL-Regler oder die Flight-Ctrl über den I²C Bus verbunden sind, ist eine Programmierung nicht mehr möglich! In den Controller wird das Testprogramm „Test_Schub_BrushLess-Ctrl_V0_xx.hex“ eingespielt (zu finden im SVN bei den Hexfiles der Hardwareversion 1.0). Wenn er einwandfrei funktioniert, sollte der Motor sauber anlaufen. Folgendes Video zeigt einen Testlauf:

Nach dem Einschalten leuchten die LEDs kurz auf. Sollte der Motor nicht richtig anlaufen, kann das unterschiedliche Gründe haben:

  1. Die MOSFET-Brücke (oder deren Ansteuerung) arbeitet nicht richtig.
  2. Der Kommutierungszeitpunkt wird nicht richtig bestimmt. In dem Fall sollte man das File: „Test_Manuell_BrushLess-Ctrl_V0_XX.hex“ einspielen. Damit wird der Motor ohne Kommutierungszeitpunkt-Bestimmung manuell angesteuert.

Läuft der Motor nicht oder unruhig, liegt vermutlich Fehler 1 vor. Wenn der Motor damit richtig anläuft, liegt vermutlich Fehler 2 vor. Die Drehrichtung des Motors dreht man übrigens, indem zwei beliebige Motorphasen getauscht werden. Dies wird auch bei Inbetriebname des MikroKopters notwendig, da alle Regler dasselbe Drehfeld aufbauen und somit bei gleichartigem Anschluss aller vier Motoren alle Propeller auch in dieselbe Richtung drehen. Im Zusammenhang mit je zwei Propellern für Recht-/Linkslauf ergibt sich dann folgendes Problem: Zweimal Auftrieb + zweimal Abtrieb = MikroKopter fliegt nicht, sondern fängt höchstens an stark zu schwingen.

In diesem Fall einfach die Drehrichtung beim Ein-/Ausschalten beobachten (Vorne/Hinten: rechtsherum, Links/Rechts: linksherum) und ggf. einfach zwei Anschlußkabel an den betreffenden Motoren vertauschen.

Schritt 4: Anschluss eines Sollwertgebers

Es kann nun z.B. das Programm: „BrushLess-Ctrl_16kHz_V0_XX.hex“ eingespielt werden. Dies Programm nimmt den PPM-Anschluss des Empfängers als Sollwert. Wenn andere Schnittstellen verwendet werden (z.B. Seriell oder I2C-Bus), muss das natürlich auf den jeweiligen Sollwertgeber abgestimmt werden. Es gibt da keinen Standard.

Einspielen der Software in den Regler

Es gibt verschiedene Möglichkeiten/Programme, um die Software in den Regler zu flashen.

Am einfachsten geht es per SerCon und MikroKopterTool. Sollte dies allerdings nicht klappen, so kann man alternativ z.B. auch PonyProg nutzen...

Der Bootloader muss nur einmalig per ISP in den AVR programmiert werden. Das MikroKopterTool setzt die Fusebits dabei automatisch korrekt.

Danach können die Updates der Firmware seriell einfach durchgeführt werden.

WICHTIG: Für das Flashen des Bootloaders ist eine echte serielle Schnittstelle erforderlich.

Wenn man keinen Bootloader verwenden will oder kann, so lässt sich die Firmware auch direkt per ISP flashen. (ist aber nicht empfohlen)

Den Bootloader und die BLCtrl Software gibt es hier: http://mikrocontroller.cco-ev.de/mikrosvn/BL-Ctrl/

Bootloader flashen

Alternativ: Programmieren des Bootlaoders über AVR-Studio. Die Fuses müssen so eingestellt werden:

Firmware einspielen

Einspielen des Bootloaders mit PonyProg

{i} Sollte es Probleme mit dem MikroKopter-Tool (avrdude) geben, kann alternativ PonyProg zum Einspielen des Bootloader genutzt werden.

Stückliste & Bestückung

(!) Tip: Es empfiehlt sich, beide Seiten der unbestückten Platine zunächst einzuscannen oder zu fotografieren. Das macht es später einfacher, ungewollte Lötbrücken und ähnliche Fehler aufzuspüren.


Die Bauteile sollten in der Reihenfolge eingebaut werden, wie sie in dieser Liste stehen, weil man es dann mit der Bestückung einfacher hat.

Kursiv dargestellte Teile befinden sich auf der Unterseite

Anz

Reichelt-Best.Nr.

Hinweis

Teil

Name

1

ATMEGA8-16TQ

Markierung beachten, Flussmittel verwenden!

Controller

IC1

3

BC817-16SMD

Transistor

T1, T2, T3 (Version 1.0 und 1.1)

3

PDTC143ET

Die Basisvorwiderstände R3, R6 und R9 müssen durch einen niederohmigen Widerstand ersetzt werden. Bsp: 100ohm

Transistor

T1, T2, T3 (Version 1.2)

1

4k7 SMD 1/4W

Widerstand

R26

1

10R SMD 1/4W

Widerstand

R32

2

4k7 SMD-0805

Widerstand

R6, R9

6

X7R-G0805 100nF

Kondensator

C3, C15, C16, C17, C18, C11

5

4k7 SMD-0805

Widerstand

R3, R20, R21, R22, R15

3

470R SMD-0805 oder 680R SMD-0805

Widerstand

R2, R5, R8

1

18k SMD-0805

Widerstand

R14

1

SMD-LED 0805 GR

Richtung beachten

CHIPLED

LED1

1

SMD-LED 0805 RT

Richtung beachten

CHIPLED

LED2

9

X7R-G0805 100nF

Kondensator

C1, C2, C4, C5, C6, C7, C8, C10, C13 (Version 1.0)

12

X7R-G0805 100nF

Kondensator

C1, C2, C4, C5, C6, C7, C8, C10, C13, C14, C19, C20 (Version 1.1)

7

4k7 SMD-0805

Widerstand

R1, R4, R7, R11, R12, R13, R18

2

1k SMD-0805

Widerstand

R27, R33

4

18k SMD-0805

Widerstand

R10, R16, R23, R24

3

100R SMD-0805

Widerstand

R17, R19, R25

3

IRFR1205

alternativ auch IPD03N03LB, IRLR7843

MOSFET

NA-, NB-, NC-

3

IRFR5305

alternativ auch FDD6637

MOSFET

NA+, NB+, NC+

2

SMD Elko 10/16

Markierung beachten

Elko

C12, C14 (Version 1.0)

1

SMD Elko 10/16

Markierung beachten

Elko

C12 (Version 1.1)

1

RAD330/16

Polung beachten und von der Seite anlöten

Elko

C9

1

besser TA78L05(SOT-89) oder µA78L05(TO92)

Festspannungsregler

IC2 (Conrad: 144711 - 62)

Sonstiges

Hilfsmittel


Alternative MosFets zur Leistungssteigerung

Mit besseren MosFets sind auch dauerhaft 10A und kurzzeitig 20A möglich. Der Änderung erfolgt entsprechend:

Nach dem Umbau sollten die Regler mit der 10A - Firmware bespielt werden. Zwar funktionieren die Regler ach mit der 6A-Version, jedoch verschenkt man damit Motorleistung.

Außer den Infineon MosFets, können bessere Fets im MK-Shop bestellt werden. Diese befinden sich auch auf den vorbestückten Reglerplatinen.


Anschluss

Schaltplan

/ucwiki/BL-Ctrl_Anleitung?action=AttachFile&do=get&target=BL-Ctrl_Schaltplan.gif

(Klicken für hohe Auflösung)

WICHTIG

/!\ Die Regler sind vor Feuchtigkeit zu schützen. (Zerstörung der Endstufe !)

Um die Regler umempfindlicher gegenüber Feuchtigkeit zu machen, können bei der Reglerversion 1.2 PDTC143ET Transistoren von NXP genutzt werden. Diese liegen dem MosFet Set im H&I Shop bei


MikroKopter: BL-Ctrl Anleitung (zuletzt geändert am 12.10.2008 18:48 durch martinchzh)