• {i} Diese Seite als PDF-Dokument? Einfach auf das Symbol rechts klicken und etwas warten...

siehe auch: FlightCtrlAnleitung

BL-Ctrl.jpg

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

  • Abmessungen 20 * 43mm
  • Bestückt mit sechs 30A MosFets

  • Dauerbelastung ca. 5A (bei schlechter Kühlung) (mit alternativen MosFets höhere Leistung möglich)

  • Controller: ATMEGA8 von Atmel
  • Strommessung und -begrenzung auf der Gleichstromseite
  • zwei LEDs (z.B. Okay und Error)
  • Batteriespannungsmessung mit Unterspannungserkennung
  • Die Software liegt komplett in C vor (Lizenzvereinbarung beachten!)
  • diverse Schnittstellen zur Sollwerteingabe
  • Ein Empfänger kann von den 5V versorgt werden (max. 50mA)

Als Schnittstellen sind möglich:

  • Asynchrone Serielle Schnittstelle (zum Ansteuern oder Debuggen)
  • I2C (zur schnellen Sollwertvorgabe)
  • PPM-Signal (als Standard-Eingang vom Empfänger)

BL-Ctrl_11_unbest.jpg

(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 abgenommenen 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

!!! Diese Schritte sind nur für selbstbestückte BL-Ctrl (grüne Leiterkarte), nicht für bereits vorbestückte Regler (rote oder schwarze Leiterkarte !!!)

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 (oder notfalls 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. Seit Platinenversion 1.2 und Softwareversion 0.34 gibt die rote LED einen Blinkcode aus, je nachdem, welcher MOSFET die Strommessung zu Beginn nicht bestanden hat. Dabei ist: A=A+ (1) B=B+ (2) C=C+ (3) a=A- (4) b=B- (5) c=C- (6) (in Klammern der Blinkcode).
  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 wechselt man übrigens, indem zwei beliebige Motorphasen (bzw. deren Anschlusskabel) 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 würden. 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 Anschlusskabel 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.

  • {i} Auf den SMD-vorbestückten Platinen sind bereits Bootloader und Firmware installiert.

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://mikrokopter.de/mikrosvn/BL-Ctrl/

Hier gibt es eine komprimierte Kurzübersicht zum Thema Flashen und Updaten

Bootloader flashen

  • Die BL-Ctrl muss über das 10-polige kombinierte ISP-/seriell-Kabel (ISP1) an den SerCon angeschlossen sein.

  • Die BL-Ctrl muss mit Spannung versorgt werden.
  • Es dürfen keine Daten über den I2C-Bus kommen, d.h. entweder ablöten oder während des Programmierens Flight-Ctrl ausschalten/resetten.

Mit dem MikroKopter Tool

  • 'Controller flashen & Terminal' auswählen

  • Jumper des SerCon setzen

  • Dann auf 'FLASH' klicken und das Bootloader-Hexfile auswählen.
    • … jetzt wird der Bootloader programmiert – das dauert etwas …
  • nach erfolreichem Programmieren meldet sich der Bootloader mit einer Kennung:
    • Vx.y:MKBL
    • Vx.y = Version

    • MKBL für MikroKopter-BootLoader

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

Mit AVR-Studio

  • Beim Programmieren des Bootlaoders über AVR-Studio müssen die Fuses so eingestellt werden:
  • . BL-CTRL_Fuses_Studio.png

Mit avrdude unter Linux

  • avrdude -p m8 -F -c ponyser -P /dev/ttyS0 -v -U flash:w:BootLoader_MEGA8_8MHZ_VX_X.hex  -u -U lfuse:w:0x84:m -U hfuse:w:0xda:m
  • /!\ X_X durch die version des Bootloaders ersetzen ; ggf /dev/ttyS0 durch eine andere Schnittstelle ersetzen

Firmware einspielen

  • Die BL-Ctrl muss wieder über das 10-polige kombinierte ISP-/seriell-Kabel (ISP1) an den SerCon angeschlossen sein.

  • Jumper des SerCon entfernen.

  • Die BL-Ctrl muss mit Spannung versorgt werden.
  • Die I2C-Bus-Verbindung sollte getrennt werden, wenn das Update über ISP eingespielt wird.
  • für BL-Ctrl V1.0: Jeder Motor-Regler benötigt eine eigene Adresse (unterschiedliche Hex-Files).
  • für BL-Ctrl V1.1: Jeder Motor-Regler benötigt eine eigene Adresse, die per Lötjumper auf der Platine eingestellt wird (gleiche Hex-Files).

  • Motoradressierung: 1=Vorn 2=Hinten 3=Rechts 4=Links

Mit dem MikroKopter Tool

  • auf 'Update' klicken und aktuelles Hex-File der BL-Ctrl auswählen.
  • jetzt wird programmiert - evtl. muss manuell resettet werden (BL-Ctrl einfach aus- und einschalten).
  • wenn alles geklappt hat, meldet sich der BL-Regler mit seiner aktuellen Version.

Mit avrdude unter Linux

  • avrdude  -p m8 -P /dev/ttyS0 -c butterfly -b 57600 -U flash:w:BrushLess-Ctrl_MEGA8_VX_X_YA.hex
  • /!\ X_X durch die version des der Firmware ersetzen ; Y durch die je nach Bestückten FET's 6 oder 10 ; ggf /dev/ttyS0 durch eine andere Schnittstelle ersetzen

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

1

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

Festspannungsregler

IC2 (Conrad: 144711 - 62)

1

SMD-LED 0805 GN

Richtung beachten

SMD-Leuchtdiode

LED1

1

SMD-LED 0805 RT

Richtung beachten

SMD-Leuchtdiode

LED2

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: 100 Ohm

Transistor

T1, T2, T3 (Version 1.2)

3

IRFR1205

alternativ auch IPD03N03LB, IRLR7843

MOSFET

NA-, NB-, NC-

3

IRFR5305

alternativ auch FDD6637

MOSFET

NA+, NB+, NC+

1

4k7 SMD 1/4W

Widerstand (größer als SMD-0805)

R26

1

10R SMD 1/4W

Widerstand (größer als SMD-0805)

R32

3

SMD-0805 470 oder 680R SMD-0805

Widerstand

R2, R5, R8

11 oder 14

SMD-0805 4K7

Je nach Wahl von T1-T3 kriegen R3, R6 und R9 4,7k oder 100 Ohm

Widerstand

R1, R4, R7, R11, R12, R13, R18, R20, R21, R22, R15, (R3, R6, R9)

2

SMD-0805 1K

Widerstand

R27, R33

5

SMD-0805 18k

Widerstand

R10, R14, R16, R23, R24

3 oder 6

SMD-0805 100R

Je nach Wahl von T1-T3 kriegen R3, R6 und R9 4,7k oder 100 Ohm

Widerstand

R17, R19, R25, (R3, R6, R9)

15

X7R-G0805 100nF

Kondensator

C1, C2, C4, C5, C6, C7, C8, C10, C13, C3, C15, C16, C17, C18, C11 (Version 1.0)

18

X7R-G0805 100nF

Kondensator

C1, C2, C4, C5, C6, C7, C8, C10, C13, C3, C15, C16, C17, C18, C11, C14, C19, C20 (Version 1.1 und 1.2)

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 und 1.2)

1

RAD330/16

Polung beachten und von der Seite anlöten

Elko

C9

Sonstiges

  • 1 Stecker EC10 - Programmierstecker
  • 1 D-SUB ST 25 - Sub-D Stecker für Parallelport-Programmierkabel
  • 0,5m 10poliges Flachbandkabel
  • 1m Anschlussleitungen

Hilfsmittel

  • CR44 Zinnhaltiges SMD-Flussmittel
  • Entlötlitze AA Entlötlitze 1,5mm
  • Lötzinn AG 0,507 Lötzinn 0,5mm
  • Bedrahteter Spannungsregler, falls in SMD nicht verfügbar

Spannungsregler.jpg


Alternative MosFets zur Leistungssteigerung

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

  • IRFR1205 (NA-, NB-, NC-) wird ausgewechselt mit: IRLR7843 oder IPD03N03LB (Infineon)

  • IRFR5305 (NA+, NB+, NC+) wird ausgewechselt mit: FDD6637 oder SPD50P03L (Infineon)

  • Die beiden Infineon MosFets haben zur Zeit die besten Werte, bei dem SPD50P03L müssen allerdings die Beinchen etwas gebogen werden.

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

  • Die aktuelleste Software findet man im SVN: Link

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


Anschluss

/!\ Das Bild gilt NUR für 1.0 Version
anschluss1.gif

/!\ Das Bild gilt NUR für 1.0 Version
anschluss2.gif

Schaltplan

attachment:BL-Ctrl_Schaltplan.gif

(Klicken für hohe Auflösung)

WICHTIG

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

  • man kann einen Schrumpfschlauch oder Isolierspray (Plastikspray, "Plastik 70") verwenden, um die Regler zu schützen. (dies gilt eigentlich nur Regler < V1.2)

  • Vorsicht beim Einsatz vom Plastikspray, da dies eine evtl. Reparatur später schwer bis unmöglich macht !

Um die Regler unempfindlicher 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.