Forum: Mikrocontroller und Digitale Elektronik Brushless-Controller für Modellbaumotoren


von Martin M. (murmele)


Lesenswert?

Hi,

ich bin gerade dabei einen Brushless-Controller zu bauen : 
http://www.mikrocontroller.net/articles/Brushless-Controller_f%C3%BCr_Modellbaumotoren

wollte ihn nach diesem Prinzip bauen. Doch ich versteh das nicht genau: 
"Der Widerstand R20 ist dazu da, dass auf dem Treiber das PWM-Signal 
liegt, sobald die Leitung „IN_A“ in der Luft hängt (uC Pin als Eingang 
definiert)."

Ich versteh nicht wie ich den Zustand floating machen. wenn IN_A = 
eingang und PWM dann liegt am Treiber die PWM an. Wird statt eine PWM 0 
angelegt dann ist GND. Ist dann Floating wenn IN_A = ausgang ist und bei 
PWM egal welches signal.

Bitte dringend um Hilfe
MFG Murmele

von TestX .. (xaos)


Lesenswert?

Martin Marmsoler schrieb:
> Ich versteh nicht wie ich den Zustand floating machen. wenn IN_A =
> eingang und PWM dann liegt am Treiber die PWM an. Wird statt eine PWM 0
> angelegt dann ist GND. Ist dann Floating wenn IN_A = ausgang ist und bei
> PWM egal welches signal.

es gibt noch den /sd pin, hiermal die zustände:

/SD:HIGH - STAGE ON
> IN-A-IO:High - STAGE HIGH
> IN-A-IO:LOW - STAGE LOW
> IN-A-IO:TRISTATE -> PWM

/SD:LOW - STAGE TRISTATE

von Stefan F. (sfrings)


Lesenswert?

Vollständige Sätze würden helfen, Deine Frage zu verstehen.

Ich versteh nicht wie ich den Zustand eines AVR Ausgangs auf floating 
machen kann. Wenn IN_A = eingang ist und an PWM ein Signal anliegt, dann 
liegt am Treiber das PWM Signal an. Wird statt dessen an IN_A 0 angelegt 
dann ist der Eingang des Treibers auf GND.

Ist der Pin des AVR dann Floating, wenn IN_A = ausgang ist und bei PWM 
egal welches signal anliegt?

Nein. An AVR Mikrocontrollern sind alle Pins Floating, die nicht als 
Ausgang konfiguriert sind. Die Idee ist folgende: Indem man den Pin IN_A 
als Ausgang und LOW schaltet, unterdrückt man das PWM Signal für die 
entsprechende Phase. Indem man den Pin IN_A als Eingang schaltet, 
steuert man die Phase mit PWM Signal an.

So kann man für alle drei Phasen ein einziges gemeinsames PWM Signal 
nutzen, dass permanent erzeugt wird. Zu jedem Zeitpunkt unterdrückt man 
das Signal für jeweils zwei Phasen (in rotierender Reihenfolge), indem 
man IN (A ,B, C) auf LOW zieht, so dass immer nur eine Phase tatsächlich 
mit der gepulsten Spannung angetrieben wird.

von Martin M. (murmele)


Lesenswert?

Danke für deine Antwort,

Andi D. schrieb:
> /SD:HIGH - STAGE ON
>> IN-A-IO:High - STAGE HIGH
>> IN-A-IO:LOW - STAGE LOW
>> IN-A-IO:TRISTATE -> PWM

Bedeutet das dass der IN_A als Eingang definiert ist?

Andi D. schrieb:
> /SD:LOW - STAGE TRISTATE

wenn ich SD auf low Masse lege dann habe ich den Zustand floating 
unabhängig von den Zuständen an IN_A und PWM?

von Stefan F. (sfrings)


Lesenswert?

Man muss sich schon im Klaren darüber sein, was man "floaten" will. Ja, 
der /SD Anschluss lässt den Ausgang des Motortreibers floaten (was den 
schräg gestrichelten Linien im Diagramm antspricht).

In meinem vorherigen Anschnitt bezog ich mich darauf, wie man den 
Ausgang des AVR an den Eingängen IN_A bis IN_C floaten lässt, um das PWM 
Signal wirksam werden zu lassen.

von Martin M. (murmele)


Lesenswert?

Stefan Frings schrieb:
> Ja,
> der /SD Anschluss lässt den Ausgang des Motortreibers floaten

Vielen Dank jetz hab ichs verstanden hab den SD anschluss immer außer 
acht gelassen

Danke euch!!!

von TestX .. (xaos)


Lesenswert?

Martin Marmsoler schrieb:
> Danke für deine Antwort,
>
> Andi D. schrieb:
>> /SD:HIGH - STAGE ON
>>> IN-A-IO:High - STAGE HIGH
>>> IN-A-IO:LOW - STAGE LOW
>>> IN-A-IO:TRISTATE -> PWM
>
> Bedeutet das dass der IN_A als Eingang definiert ist?
ja, für pwm setzt man den IO vom avr auf eingang -> tristate

> Andi D. schrieb:
>> /SD:LOW - STAGE TRISTATE
>
> wenn ich SD auf low Masse lege dann habe ich den Zustand floating
> unabhängig von den Zuständen an IN_A und PWM?

ja -> du solltest dir mal das treiberdatenblatt anschauen ...

von Martin M. (murmele)


Lesenswert?

Könnte ich statt dem IN_A auch einfach die PWM auf 0 stellen um eine 
Masse zu simulieren? Dann bräuchte ich nur mehr PWM und SD

von Gelöscht (kami89)


Lesenswert?

Martin Marmsoler schrieb:
> Könnte ich statt dem IN_A auch einfach die PWM auf 0 stellen um eine
> Masse zu simulieren? Dann bräuchte ich nur mehr PWM und SD

Wenn du dir das Diagramm im Artikel mal anschauest wirst du merken, dass 
das nicht geht. Denn du musst auch gleichzeitig auf einer Phase Low, und 
auf einer anderen Phase PWM haben. Wenn du dann für das Low die PWM 
ausschaltest, hast du ja für die andere Phase kein PWM mehr.

von Martin M. (murmele)


Lesenswert?

Urban B. schrieb:
> Denn du musst auch gleichzeitig auf einer Phase Low, und
> auf einer anderen Phase PWM haben. Wenn du dann für das Low die PWM
> ausschaltest, hast du ja für die andere Phase kein PWM mehr.

Doch wenn ich es mit 3 PWM ausgänge bzw mit 3 Timerchannel mach würde es 
doch gehen?

von Gelöscht (kami89)


Lesenswert?

Martin Marmsoler schrieb:
> Doch wenn ich es mit 3 PWM ausgänge mach würde es doch gehen?

Ja, dann würde es natürlich gehen. Allerdings wird dann die Software 
aufwändiger weil du mehr Timer brauchst. Die Variante, die im Artikel 
beschrieben wird, macht es einem dann sehr einfach beim Programmieren.

von Martin M. (murmele)


Lesenswert?

Urban B. schrieb:
> Allerdings wird dann die Software
> aufwändiger weil du mehr Timer brauchst. Die Variante, die im Artikel
> beschrieben wird, macht es einem dann sehr einfach beim Programmieren.

Danke für den Rat

von David K. (dave_k)


Lesenswert?

Hallo,

ich würde gerne dieses Thema wieder aufleben lassen, da ich leider vor 
dem Problem stehe, dass ich den Floating-Zustand nicht hinbekomme.

Ich verwende den gleichen Treiberbaustein, wie im Artikel 
(http://www.mikrocontroller.net/articles/Brushless-Controller_f%C3%BCr_Modellbaumotoren). 
Wenn ich jedoch den /SD Eingang auf GND ziehe, dann werden die Ausgänge 
auch auf 0 gezogen und ich erzeuge keinen Zwischenzustand.

Gibt es noch typische Fehler bei diesem Vorgang. MosFET-Schaltung sollt 
bei mir passen, da sonst alles funktioniert.

Wäre über schnelle Hilfe sehr Dankbar
Vielen Dank
Beste Grüße
David

von Gelöscht (kami89)


Lesenswert?

Hallo David,

Wenn ich deine Frage so lese, bekomme ich den Eindruck dass das Problem 
nicht an der Schaltung liegt, sondern dass es ein Missverständnis 
bezüglich dem floating Zustand gibt.

Mit dem floating Zustand ist gemeint, dass eine Phase (A, B oder C) mit 
der Halbbrücke weder nach GND, noch nach VSS gezogen wird, also beide 
Transistoren sperren. Was dann effektiv an dieser Phase für eine 
Spannung liegt ist erstmal nicht definiert.

Im laufenden Betrieb liegt jedoch immer eine Phase an GND, und eine 
andere an VSS. Die zwei bestromten Spulen im Motor bilden dann einen 
Spannungsteiler, wodurch an der dritten Phase (im floating Zustand) die 
halbe Versorgungsspannung anliegt.

Da durch die Drehung des Rotors zusätzlich noch eine Spannung in den 
Spulen induziert wird, ist die fliegende Phase nicht nur einfach 
konstant VSS/2, sondern es kommt noch eine überlagerte Schwingung hinzu, 
welche drehzahlabhängig ist. Wie das dann aussehen kann, ist an den 
Bildern im Artikel ersichtlich.

Kann es sein dass das dein "Problem" war? :-)

mfg

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.