Forum: Analoge Elektronik und Schaltungstechnik Brushless Regler


von kappos (Gast)


Lesenswert?

Hallo zusammen,
ich beschäftige mich seit kurzem mit Brushless Motoren und den Reglern 
dazu.
Das Prinzip habe ich voll verstanden,allerdings habe ich noch relativ 
wenig Ahnung von Mosfets und deren Dimensionierung und Berechnung.
Frage von mir.
Kann ich den Schaltplan von BL-CTRL-V1-1 übernehmen, den MC aber durch 
einen Arm ersetzen der mit 3V3 läuft bzw muss ich dann die 
Dimensionierung der Widerstände für die Mosfets und für die Bemf 
anpassen?
Hier der Schaltplan
http://www.mikrokopter.de/ucwiki/BL-Ctrl_V1_1?action=AttachFile&do=view&target=BL_CtrlV1_1_sch.gif

Gruß kappos

: Verschoben durch Admin
von kappos (Gast)


Lesenswert?

Habe noch weitere Fragen:

-Brauche ich dann für jede Phase ein eigenes PWM Signal sprich insgesamt
6 PWM Signale= Wenn ja müssen aber alle gleich sein, sprich Phase und 
Duty Cycle?
- Reicht mir ein 16bit Counter für einen Quadrocopter Motor oder wäre es 
sinnvoll gleich auf 32bit Counter für die PWM zu gehen?

Gruß Kappos

von Carsten R. (kaffeetante)


Lesenswert?

Du kannst den Controller tauschen, na klar. Aber dann bist Du schnell 
bei einer Neukonstruktion, weil hier und da dann unterschiedliche 
Eigenschaften der Controller ins Spiel kommen.

Prinzipiell würde ein einzeles PWM-Signal reichen, welches dann je nach 
Phase zu den passenden Mosfets umgeleitet wird.

Ein 16-Bit-Counter reicht, ist schon eher zuviel des Guten. 32 Bit ist 
Käse. Der Zyklus wird zu lang. Selbst ein 1 GHz ARM bräuchte ca. 4 
Sekunden für einen Pulszyklus. 2^32 ergibt mehr als 4 Milliarden Takte 
zum Durchzählen. 10 Bit ergibt 1024. 8 Bit ergibt 256. Bei 20 Mhz ergibt 
das ca 20 bzw 80 KHz PWM Takt.

Der PWM-Takt muß ein Vielfaches der Motordrehzahl betragen, da je nach 
Bauart des Motors ein entspreschendes Vielfaches an Kommutierungen pro 
Umdrehungen fällig werden. Der PWM-Takt muß mindestens so hoch sein wie 
die Kommutierungsfrequenz. Im Idealfall ist die Frequenz identisch oder 
beträgt ein Vielfaches. Liegt er niedriger hat man eher eine (Ab-)Art 
einer Wellenpaketsteuerung als eine echte PWM. Im Prinzip wäre das auch 
irgendwie eine PWM, irgendwie.

Das ginge !eventuell! zwar auch, ist aber nicht das was man will. Man 
handelt sich damit ein paar Problemchen ein. Unter anderem kann man 
damit besonders bei niedriger Drehzahl Bauteile überlasten, da volle 
Kommutierungspulse auf (zu) niedrige Gegen-EMK treffen und somit ein 
erhöhter Strom fließt.

von Thomas (Gast)


Lesenswert?

ich würde dir für die ansteuerung solche halbbrückentreiber (z.B. 
ir2104) empfehlen, der ist auch 3,3V kompatibel, man braucht nur 
n-mosfets und man kann während der entwicklung nicht versehentlich von 
vcc nach gnd durchschalten, was einem etliche mosfets spart :)

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Thomas schrieb:
> und man kann während der entwicklung nicht versehentlich von
> vcc nach gnd durchschalten, was einem etliche mosfets spart :)

Kann ich so nicht bestätigen.
Also ich bastel schon lange an BLDC Reglern rum und ich krieg selbst mit 
einem IR2101 meine Mosfets kaputt, und ich finde nicht raus, warum, mal 
geht es, mal nicht, und das fast ohne Last.

Ich will damit einfach nur sagen, das es nicht ganz ohne ist, so einen 
Regler zu bauen, und einfach einen anderen Schaltplan nachbauen wird so 
nicht funktionieren, wenn du nicht verstehst, was passiert. Und du 
scheinst nicht zu verstehen, was du machst, sonst würdest du nicht

kappos schrieb:
> muss ich dann die
> Dimensionierung der Widerstände für die Mosfets und für die Bemf
> anpassen?

sowas fragen.

MfG Dennis

von Lese-Experte (Gast)


Lesenswert?

> Also ich bastel schon lange an BLDC Reglern rum und ich krieg selbst mit
> einem IR2101 meine Mosfets kaputt

Darum empfielt Thomas ja auch einen IR2104

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Lese-Experte schrieb:
> Darum empfielt Thomas ja auch einen IR2104

Das habe ich schon bemerkt, weil dieser eine eingebaute Totzeit hat und 
auch nur einen Pin nutzt, für High- und Lowside zusammen. Aber IR baut 
nunmal viele solche Treiber, darum sollte man sowas mal mit erwähnen, 
das ein solches IC nicht die Garantie ist, das jetzt alles schön und 
einfach wird.


MfG dennis

von Lese-Experte (Gast)


Lesenswert?

Dennis H. schrieb:
> Lese-Experte schrieb:
>> Darum empfielt Thomas ja auch einen IR2104
>
> Das habe ich schon bemerkt, weil dieser eine eingebaute Totzeit hat und
> auch nur einen Pin nutzt, für High- und Lowside zusammen. Aber IR baut
> nunmal viele solche Treiber, darum sollte man sowas mal mit erwähnen,
> das ein solches IC nicht die Garantie ist, das jetzt alles schön und
> einfach wird.
>
>
> MfG dennis

Ne das auf keinen Fall. Da hast du schon recht. Aber Hexenwerk ist es 
auch wieder nicht ;-)

von kappos (Gast)


Angehängte Dateien:

Lesenswert?

Danke für die vielen Antworten so langsam wird mir das alles klar :-)

@Dennis H. Ich verstehe so langsam was da passiert. Versuche mir das 
alles anzueignen. Habe das so langsam auch verstanden.

Habe jetzt mal was zu Papier gebracht. Passt der Schaltplan soweit?

Zwei Fragen sind noch offen bei mir:

Was ich noch nicht ganz verstehe ist die BEMF. Das Prinzip ist mir in 
etwa klar was ich aber zb. nicht verstehe ist die Dimensionierung der 
Widerstände.
Bzw. Signal NULL_C wird doch durch den Spannungsteiler von R13 und R14 
auf die Hälfte von Phase_C gebracht. Ist das soweit richtig? Wenn ja 
würde das aber heißen das ich meinen Eingang in den MC definitiv 
schrotten würde, da ja dort 6V anliegen würden, nach meinem Verständnis 
muss ich dann diesen Spannungsteiler anpassen das maximal meine 3V3 dort 
anliegen können. Richtig?

100Ohm Widerstand für die Gates ist ok? Kann eigentlich noch niedriger 
sein!?

von Max G. (l0wside) Benutzerseite


Lesenswert?

Der Schaltplan sieht im Prinzip sinnvoll aus, ich würde zusätzlich noch 
zwei Sachen vorsehen:
- Freilaufdioden über die FETs, sonst sterben die inegrierten Dioden 
ganz schnell, wenn du nicht perfekt synchron arbeitest.
- eine Stromerfassung per Shunt.

Die Längswiderstände vor den Gates würde ich erst mal als 0 Ohm 
ausführen. Sie bilden zusammen mit der Gatekapazität einen Tiefpass, die 
den FET langsamer schalten lassen. So was macht man eigentlich nur aus 
EMV-Gründen. Die dürften bei einem Bastelprojekt so lange kein Problem 
sein, bis das Radio von Frau/Kind/Nachbar nur noch Fiepen und Rauschen 
von sich gibt.

Zum Summeneingang AVG: Eingänge sterben erst mal nicht durch 
Überspannung, sondern durch Überstrom. Alle Eingänge haben Schutzdioden 
nach VDD, deswegen stehen in den Max Ratings meistens auch VDD+0,3V als 
Limit drin.
Wenn du den maximalen Strom über einen Vorwiderstand begrenzt, können 
auch höhere Spannungen anliegen, die Diode begrenzt die Spannung. Sie 
kann eben nur einen begrenzten Strom tragen, sonst brennt sie durch - 
deswegen der Vorwiderstand.

Zur Spannung, die sich an AVG einstellt: in den Pin hinein fließt ein 
(kleiner) Strom, siehe Datenblatt. Stelle für den Pin einmal die 
Knotenregel auf, dann ergibt sich der Wert an AVG recht schnell.

Willst du mit Sinuskommutierung oder mit Blockkommutierung arbeiten? 
Wenn du einen ARM einsetzt, wohl eher Sinuskommutierung. Das ist zwar 
vom Laufverhalten des Motors besser, erfordert aber wesentlich mehr 
Rechenleistung als Blockkommutierung.
Der Hauptaufwand wird in der Software liegen. BTDT.


Max

von kappos (Gast)


Angehängte Dateien:

Lesenswert?

Max G. schrieb:
> - Freilaufdioden über die FETs, sonst sterben die inegrierten Dioden
> ganz schnell, wenn du nicht perfekt synchron arbeitest.

Habe dazu noch einmal gesucht. Habe viele Aussagen gefunden, die sagen 
das dies bei heutigen FETs nicht mehr benötigt werden, da die internen 
Dioden völlig ausreichend sind. Was denkt ihr? Allerdings kommt es ja 
wahrscheinlich in der Entwicklung öfters vor das die Phasen zueinander 
nicht passen und dadurch viel höhere Ströme unterwegs sind, reicht dort 
die interne Diode dann trotzdem noch?

> - eine Stromerfassung per Shunt.

Kommt dann in V2 aber denke das ich vorerst  mal ohne Strommessung 
auskomme.

> Die Längswiderstände vor den Gates würde ich erst mal als 0 Ohm
> ausführen. Sie bilden zusammen mit der Gatekapazität einen Tiefpass, die
> den FET langsamer schalten lassen. So was macht man eigentlich nur aus
> EMV-Gründen. Die dürften bei einem Bastelprojekt so lange kein Problem
> sein, bis das Radio von Frau/Kind/Nachbar nur noch Fiepen und Rauschen
> von sich gibt.

Habe den Längswiderstand mal rausnehmen, wobei ich bei jeden Schaltung
die ich gefunden habe Längswiderstände gesehen habe

> Zum Summeneingang AVG: Eingänge sterben erst mal nicht durch
> Überspannung, sondern durch Überstrom. Alle Eingänge haben Schutzdioden
> nach VDD, deswegen stehen in den Max Ratings meistens auch VDD+0,3V als
> Limit drin.
> Wenn du den maximalen Strom über einen Vorwiderstand begrenzt, können
> auch höhere Spannungen anliegen, die Diode begrenzt die Spannung. Sie
> kann eben nur einen begrenzten Strom tragen, sonst brennt sie durch -
> deswegen der Vorwiderstand.
Habe ein 1k Vorwiderstand eingefügt
> Zur Spannung, die sich an AVG einstellt: in den Pin hinein fließt ein
> (kleiner) Strom, siehe Datenblatt. Stelle für den Pin einmal die
> Knotenregel auf, dann ergibt sich der Wert an AVG recht schnell.
Wenn ich es richtig weiß VSS(12V) /2

Aber da ich dies ja mit dem ADC auswerte muss ich doch das doch durch 
den Spannungsteiler der BEMF auf 3V3 runter regeln oder? Da doch der ADC 
sonst immer vollen Ausschlag hat?

> Willst du mit Sinuskommutierung oder mit Blockkommutierung arbeiten?
> Wenn du einen ARM einsetzt, wohl eher Sinuskommutierung. Das ist zwar
> vom Laufverhalten des Motors besser, erfordert aber wesentlich mehr
> Rechenleistung als Blockkommutierung.
Das weiß ich noch nicht.
> Der Hauptaufwand wird in der Software liegen. BTDT.
Das ist klar, wobei ich genau darauf hinaus will. :-)



Anbei nochmal der aktualisierter Schaltplan

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

kappos schrieb:
> Was ich noch nicht ganz verstehe ist die BEMF.

Den Spannungsteiler hast du ja schon erwähnt. Den musst du natürlich so 
anpassen, das dein µC Pin nicht zuviel Spannung abbekommt. Weniger, um 
ihn zu schützen, sondern du benötigst diese Information schließlich, da 
nützt dir ein übersteuerter ADC nix, wobei ich mit einfacher Block 
Kommutierung den Komparator nutze, aber ist das selbe Problem. Ich denke 
sogar fast, das ist ein bewusster Fehler von Mikrokopter, damit eben 
nicht einfach so jeder den Schaltplan nachbaut.

Also R13 und R14 bilden einen Spannungsteiler. R13 zusammen mit C11 ist 
ein Tiefpass, um nicht jede kleinste Störung zu messen. R17 bis R19 
bildet einfach nur einen virtuellen Sternpunkt, weil du mit dieser 
Sternpunktspannung die jeweilig offene Phase vergleichst. Zumindest bei 
Block-kommutierung, mit Sinus hab ich noch nichts gemacht, keine Ahnung, 
ob man da anders den Stand des Motors rausfindet.

Ansonsten könntest du an deinem Schaltplan vielleicht noch eine Spule 
mit 10µH oder so in Reihe vor deinen Spannungsregler machen. Die Mosfets 
schalten ja schon ziemlich derb ständig die Versorgungsspannung und da 
entstehen hier und da entsprechende Spitzen, die du in deinem ARM nicht 
gebrauchen kannst. Eine Spule in Verbindung mit dem Kondi, den du schon 
hast, sollte da eine gewisse Sicherheit geben.

Desweiteren würde ich die Bootstrap Kondis von 100nF auf 1µF erhöhen, 
ist auch eher mit bisschen Reserve gerechnet.

Deine Mosfet-Typen kann ich nicht richtig erkennen, IRLR kann ich noch 
lesen, die Zahlen nicht mehr, ich nutze IRLR 7843.

Lese-Experte schrieb:
> Aber Hexenwerk ist es
> auch wieder nicht ;-)

Das hab ich auch mal gedacht und sollte mich nie so getäuscht haben, ist 
eben Mist, wenn bei jedem kleinen Fehler sofort alles in Rauch aufgeht 
und ich erstmal wieder alle Halbleiter tauschen kann. Das schlimmste 
ist, ich finde nicht raus, warum es manchmal raucht, und manchmal nicht, 
da weder Software, noch Hardware verändert werden, na egal, ist ein 
ander Thema.

MFG Dennis

von Kappos (Gast)


Lesenswert?

Ich nutze ebenfalls den 7843.
Ist das so krass das sofort was abraucht?
Was die Bemf angeht passe ich den Spannungsteiler an.
@Dennis wieviel Erfahrung bzw Zeit hast denn in deinen Regler schon 
gesteckt?
Hast mir irgendwelche Tipps?

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Kappos schrieb:
> Ich nutze ebenfalls den 7843.
> Ist das so krass das sofort was abraucht?
> Was die Bemf angeht passe ich den Spannungsteiler an.
> @Dennis wieviel Erfahrung bzw Zeit hast denn in deinen Regler schon
> gesteckt?
> Hast mir irgendwelche Tipps?

Naja, wenn du den IR2104 nutzt, sollte es gehen, mit dem abrauchen. Es 
ist einfach mal so, sobald der obere und untere Mosfet auch nur für µs 
gleichzeitig durchgeschalten sind, fließt da soviel Strom, das beide 
definitiv kaputt sind. Und wenns krass kommt, der Treiber IC auch gleich 
mit. Die Mosfets haben nunmal nur 3 mOhm RDSon, da kann richtig viel 
Strom fließen, solange es die Quelle mitmacht.

Wenn du mich nach der Zeit fragst, dann muss ich dir als erstes sagen, 
das ich nicht studiert habe, ich bin Elektromeister und alles, was ich 
über µC weiß, habe ich hier auf der Seite gelernt. Soll also heißen, ich 
habe sicherlich einige Fehler gemacht, die einer, der studiert hat, nie 
gemacht hätte.

Ich habe mit kleinen Mosfets mal angefangen, also erstmal einen 
Test-Regler gebaut. Mit diesem habe ich einen Festplattenmotor zum 
drehen bekommen. Dieser war mit IR2101 und IRL1205(wenn es die gibt, hab 
die Bezeichnung nicht mehr genau im Kopf). Danach wollte ich nun mehr 
Strom schalten und habe die V2 vom Mikrokopter nachgebaut. Also ohne 
Treiber-IC, mit je einem P- und einem N-Mosfet. Daran bin ich ziemlich 
gescheitert, hab ich hier auch in nem Thread detailiert auseinander 
genommen, ich habe es einfach nicht zum funktionieren gebracht. Ich habe 
also diesen Schaltplan aufgegeben. Im Februar habe ich dann ein Layout 
gemacht, mit IR2101 und den IRLR7843. Dieses ist vor etwa drei Wochen 
angekommen, doch seitdem habe ich es noch nicht zum funktionieren 
gebracht. Ich nutze als Controller den Attiny261. Seine Timer sind 
speziell für BLDC ausgelegt. Ich habe diesen µC zuerst ohne Mosfets 
probiert, um zu überprüfen, ob mein Programm überhaupt das richtige 
macht, also mit Totzeit zwischen High und Lowside und so. Das passt 
alles. Trotzdem rauchen mir regelmäßig die Mosfets weg. Vor ein paar 
Tagen kam mir jetzt allerdings noch eine Idee, wo das Problem liegen 
könnte. Die Ausgänge für meine drei Halbbrücken sind teilweise 
gleichzeitig mein ISP Anschluss. Jetzt kann ja meine Hardware außerhalb 
des Attiny nicht feststellen, ob ich den Attiny gerade programmiere, 
oder nicht. Ich denke, dort wird bei mir der Pfeffer vergraben sein. Ich 
hatte zwar schonmal dran gedacht und habe bewusst einen Widerstand nicht 
bestückt, damit meine Mosfets nicht mit dem Pegel meines ISP Adapters 
mitgehen. Dadurch konnte ich erstmal nicht mehr gleichzeitig die High 
und Lowside durchschalten. Nur bestand das Problem nach wie vor. Jetzt 
kam mir noch die Idee, das ich vielleicht am Beginn meines Programms 
nicht sofort mit der PWM für die Mosfets beginnen sollte, sondern 
erstmal alle Ausgänge auf 0 schalten und dann eine Weile warten, bevor 
ich weiter mache. Weil einzelne Mosfets gehen nach wie vor mit meinem 
ISP mit. Wenn ich jetzt fertig mit programmieren bin und ich sofort den 
gegenüberliegenden Mosfet durchschalte, brennt mir auch wieder alles ab, 
weil der andere Mosfet noch nicht gesperrt hat. Habs aber noch nicht 
ausprobiert, ich bastel nicht jeden Tag dran.

Es ist manchmal recht erschütternd, wenn man voller Elan an die Sache 
ran geht, und dann gibts ein Rauchzeichen nach dem anderen, und man 
versteht nicht, wieso. Bis zum messen kommt man nicht, weils vorher 
raucht, somit kann man sich nichtmal nen Signalverlauf ansehen. Also 
manchmal muss man auch einfach mal einen Tag Pause machen und in Ruhe 
drüber nachdenken, das hat mir viel geholfen, beim Verständnis. Weil es 
nicht immer eindeutig ist, ob es ein Hardware-Fehler oder ein 
Softwarefehler ist.
Aber lass dich nicht entmutigen, Spaß macht es nach wie vor und man 
lernt echt viel dabei, vorallem, das die Theorie selten mit der Praxis 
übereinstimmt. Ich persönlich lerne auch viel darüber, Dinge mal aus 
verschiedenen Blickwinkeln zu betrachten, eben um zu verstehen, warum 
jetzt wieder ein Mosfet kaputt gegangen ist.

Also mach dir keine Gedanken, wenn doch mal ein Mosfet kaputt ist, denke 
einfach vorher dran, dir ein paar mehr zu bestellen, da ist so einer 
schnell gewechselt.

Welche beruflichen Voraussetzungen und persönliche Erfahrungen mit 
anderen Projekten bringst du mit?


MfG Dennis

von kappos (Gast)


Lesenswert?

Danke für den ausführlichen Bereicht Dennis.
Ich war an einem Technischem Gymnasium und habe Softwaretechnik 
studiert. Dort hatten wir allerdings sehr viel Elektrotechnik und 
Elektronik. Daher bringe ich da auf jeden Fall ziemlich viel Wissen mit. 
Allerdings fehlt mir einfach viel die Praxis.
Bin mal gespannt wie das alles so klappt :-)

Was mich grad zum Verzweifeln bringt ist die Dimensionierung der Bemf 
Widerstände.
Wenn ich  an NULL_A 3.3V haben will dann gilt doch:

U1/R11 = U2/R16

R11=4.7K

Und es gilt Ug=11.1V , U2=3.3V und U1 = 7.8V


Dann ist doch R16 = U1/R11*U2 = 7,8V /4,7k * 3.3V
R16= 5,4K

Ist das Korrekt?

Dann die Dimensionierung der AVG Widerstände ist mir nicht klar wie man 
diese ausrechnet.

Gruß Kappos

von Carsten R. (kaffeetante)


Lesenswert?

@ Dennis

Es kann auch indirekt an der Software liegen. Du hast ja für die drei 
Phasen drei HIGH/LOW-Paare. Dein Treiber bzw deine Software verhindert 
zwar über die intgrierte Totzeit, daß Du aktiv innerhalb eines Paares 
beide durchschaltest, aber eines kann dadurch nicht verhindert werden. 
Die Spuleninduktivität, nicht die BEMF alias Gegen-EMK, treibt den Strom 
weiter. Ist die Totzeit zu groß, treibt die Induktivität den Strom durch 
die Bodydiode des komplementären Fet bevor dieser geöffnet wird. Diese 
parasitäre Diode braucht Zeit um wieder zu schließen. Wird der Treiber 
wieder umgesteuert bevor die Reverserecoverytime durch ist hat man einen 
kurzen.

Prinzipiell ist dieses Szenario denkbar besonders bei hohen 
PWM-Frequenzen. Ob dies bei deinem Aufbau nun konkret zutrifft vermag 
ich aus der Ferne und ohne Oszi nicht zu sagen.

Für weitere Experimente würde ich eine aktive oder passive 
(Hochlast-Widerstand oder schwache nicht niedrohmige Stromversorgung) 
Strombegrenzung für den Leistungsteil nehmen. Die Steuerung wird 
selbstverständlich weiterhin stabil versorgt. Damit werden eventuelle 
shoot-throughs entschärft bis diese ausgeschlossen sind.

Bei einer aktiven Strombegrenzung muß aber sichergestellt sein, daß sie 
schnell genug eingreift. Manche preiswerte Aufbauten oder auch 
Fertiggeräte regeln dafür zu langsam gegen. So oder so dürfen dann aber 
keine Stützkondensatoren zwischen der Spannungsversorgung bzw 
Strombegrenzung und den Fets liegen. Es kann aber sein daß dadurch die 
Induktion soweit geschwächt wird, daß der Strom durch die Bodydiode früh 
genug auf Null geht, so daß die Diode dann plötzlich doch rechtzeitig 
schließt. Man muß also ein bischen mit den Parametern spielen.

Vielleicht erspart dir das einige abgerauchte Fets.

Gruß Carsten

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

kappos schrieb:
> Was mich grad zum Verzweifeln bringt ist die Dimensionierung der Bemf
> Widerstände.
> Wenn ich  an NULL_A 3.3V haben will dann gilt doch:
>
> U1/R11 = U2/R16
>
> R11=4.7K
>
> Und es gilt Ug=11.1V , U2=3.3V und U1 = 7.8V
>
>
> Dann ist doch R16 = U1/R11*U2 = 7,8V /4,7k * 3.3V
> R16= 5,4K
>
> Ist das Korrekt?

Ich denke, diese frage kannst du dir selbst überlegen. Du hast 11.1V 
insgesamt über dem Spannungsteiler anliegen. Zwei fast identische 
Widerstände, was ist wohl die logische Schlussfolgerung? An beiden 
Widerständen fällt ungefähr die Hälfte ab. Also nur grob über den Daumen 
gepeilt. Auf jedenfall nicht 3.3V über dem einen, und 7.8V über dem 
anderen.

http://www.4led.de/berechnungen/spannungsteiler.htm

Hab ich fix gefunden, der sagt, das du einen Spannungsteiler aus 11,1k 
und 4k7 brauchst, um auf deine 3.3V zu kommen.

kappos schrieb:
> Dann die Dimensionierung der AVG Widerstände ist mir nicht klar wie man
> diese ausrechnet.

Was sind AVG Widerstände?

Carsten R. schrieb:
> Es kann auch indirekt an der Software liegen. Du hast ja für die drei
> Phasen drei HIGH/LOW-Paare. Dein Treiber bzw deine Software verhindert
> zwar über die intgrierte Totzeit, daß Du aktiv innerhalb eines Paares
> beide durchschaltest, aber eines kann dadurch nicht verhindert werden.
> Die Spuleninduktivität, nicht die BEMF alias Gegen-EMK, treibt den Strom
> weiter. Ist die Totzeit zu groß, treibt die Induktivität den Strom durch
> die Bodydiode des komplementären Fet bevor dieser geöffnet wird. Diese
> parasitäre Diode braucht Zeit um wieder zu schließen. Wird der Treiber
> wieder umgesteuert bevor die Reverserecoverytime durch ist hat man einen
> kurzen.

Das klingt durchaus interessant, und ist sicher noch nicht zu spät, das 
ich so ein Problem noch bekomme. Aber bis jetzt ist die einzigste Last, 
die ich am Regler habe meine BEMF. ich werde einfach mal drei 
Widerstände zusammen löten, damit ich eine kleine Ohmsche Last habe, bis 
zum Motor bin ich noch nicht gekommen. Aber trotzdem Danke für diese 
Info, hätte ich nicht gewusst, das die Bodydiode doch relativ langsam 
wieder schließt. Liegt aber warsch am Aufbau des Mosfets. Soweit ich 
weis, wird diese Diode ja nicht extra eingebaut, sondern sie ergibt sich 
aus der Mosfet-Charakteristik, oder liege ich da falsch? Hab mich 
schonmal gewundert, warum ich diese Diode nicht durchmessen kann.

MfG Dennis

von Carsten R. (kaffeetante)


Lesenswert?

Dennis H. schrieb:
> Soweit ich
> weis, wird diese Diode ja nicht extra eingebaut, sondern sie ergibt sich
> aus der Mosfet-Charakteristik

Exakt so ist es. Das Teil hat man einfach an der Backe. Izwischen gibt 
es aber auch Fets bei denen die Eigenschaften dieser Body-Diode deutlich 
besser sind.

Bei deinen IRLR7843 ist diese Reverse Recovery Time (Trr) mit 
durchschnittlich 39 ns bis maimal 59 ns angegeben. Da ist schon ziemlich 
flott.

Ich würde es trotzdem mal mit einer Strombegrenzung versuchen. Wenn es 
dann trotzdem raucht, kann es zwar immer noch sein, daß die Begrenzung 
zu schwach oder zu langsam ist. Aber eventuell werden sie dann auch nur 
heiß und du kannst weitersuchen. Wenn sie mit Widerstand begrenzt 
garantiert keinen übermäßigen Strom führen können und trotzdem PFUPP 
machen, dann liegt das Problem woanders, z. B. könnte es vor den Toren 
(Gates) stehen. Überspannungen sind da tötlich. Widerstände vor den 
Gates sind nicht immer sinnfrei. Sie Dämpfen Schwingungen. 
Suppressordioden dahinter könnten angebracht sein. Und ..., und ..., und 
... .

Dazu müßte man aber Schaltplan und Layout sehen. Z.B. gehören die 
Gatetreiber nicht irgendwo an die Spannungsversorgung eingehängt, 
sondern nahe am Fet damit sie dem Bezugspotential am Fet bei hohen 
Lastimpulsen folgen können. Dieses verschiebt sich nämlich ständig durch 
die stark wechselnden Ströme.

Software, logischer Aufbau und Layout. Alles ist wichtig und der Teufel 
steckt bekanntlich im Detail ;-)

von Dennis H. (t1w2i3s4t5e6r)


Angehängte Dateien:

Lesenswert?

Carsten R. schrieb:
> Widerstände vor den
> Gates sind nicht immer sinnfrei.

Da hab ich welche mit 10 Ohm drin. Ich hatte irgendwo auch gelesen, das 
man ja aus der Gate-Kapazität und der Zuleitungsinduktivität einen 
Schwingkreis baut, welchen man in seiner Güte mit diesem Widerstand 
senkt. Darum hab ich ein mit eingeplant. Das die Wege vom Treiber zum 
Gate nicht zu weit sein sollten, sind mir bekannt. Bei der Highside habe 
ich etwa 5mm und eine Duko bei Lowside ist es etwa 10mm. Ich denke, 
diese Zuleitungen sind kurz genug. Demzufolge liegt die 
Spannungsversorgung der Treiber ähnlich nahe am Mosfet. Ich häng dir 
einfach mal meinen Schaltplan an, auch wenn es um diesen eigentlich gar 
nicht geht. 12V stimmt nicht ganz, es wird ein 4S Lipo werden, also 
14,8V.

MfG Dennis

von Carsten R. (kaffeetante)


Lesenswert?

Wenn jetzt GND vom Treiber mit GND vom FET inm Layout ähnlich nahe 
verbunden sind und ebenso die Versorgungsspannung, dann sollte das 
passen.

Dann bin ich erst einmal mit meinem Latein am Emde. Ich hofe es ist 
nicht so eine nervige Kleinigkeit wie das Vertauschen von High und Low 
im Layout oder vertauschte Pegel.

Es gibt ja 3 Zustände:
a nur High Verbunden
b nur Low verbunden
c high und low gesperrt
Die PWM wechselt bei nur einem der 3 Paare immer zwischen a und b
Das zweite Paar steht fix auf High oder fix auf Low.
Das dritte Paar hat den Status c.
Erst bei Kommutierung erfolgt der Rollentausch.

Sind Leitungen vertauscht oder logische Pegel invertiert, ich komme 
immer wieder damit durcheinander, ob eine logische Eins High oder Low 
ist, dann wird Zustand c zum tötlichen "HIGH und LOW-side offen".

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Carsten R. schrieb:
> Wenn jetzt GND vom Treiber mit GND vom FET inm Layout ähnlich nahe
> verbunden sind und ebenso die Versorgungsspannung, dann sollte das
> passen.

Ich habe auf der einen Leiterplattenseite die Highside Mosfets, also 
auch VCC und auf der anderen Leiterplattenseite die Lowside, also dort 
auch Gnd. Allerdings habe ich Gnd nur an einer Stelle von der Leistung 
zur Steuerung geführt. also der Gnd-Weg für meine Treiber ist etwas 
länger. Aber die Platine ist nur 33 x 35 mm groß, also so weit ist der 
Weg dann auch wieder nicht.

Carsten R. schrieb:
> Sind Leitungen vertauscht oder logische Pegel invertiert, ich komme
> immer wieder damit durcheinander, ob eine logische Eins High oder Low
> ist, dann wird Zustand c zum tötlichen "HIGH und LOW-side offen".

Darauf hab ich peinlich genau geachtet. Ich bin ehrlich gesagt noch beim 
Testen meiner Schaltung. Also ich steuer einfach mal jede Brücke einzeln 
an und schau es mir am Oszi an, was rauskommt. Die erste Brücke hat 
super funktioniert, die zweite nicht. Halbleiter neu aufgelötet, alles 
ging wieder. Dann hab ich einen Parameter in meiner Software geändert, 
nix wesentliches, nur Dutycycle und da knallte es, direkt nachdem ich es 
programmiert hatte. Wenn es geknallt hat, dann meistens direkt nach dem 
Programmieren. Wenn ich dann allerdings die defekten Bauteile 
ausgetauscht hatte, ging es wieder alles. Deswegen jetzt die Idee, das 
ich ja mit dem Programmieren auch ein Signal an den Treiber gebe und 
mein Programm erstmal ein paar ms warten sollte, bis es mit der PWM 
beginnt. Ich hab nur jetzt keine Zeit, das nochmal zu probieren.

Und eigentlich gehts ja hier nicht um meinen Regler, sondern um einen 
anderen, ich will den Thread nicht kapern :-)

MfG Dennis

von kappos (Gast)


Angehängte Dateien:

Lesenswert?

@ Dennis H. kein Problem du kaperst ihn schon nicht ;-) Ich bin ja neu 
in dem Thema deswegen helfen mir alle Informationen, auch die von 
anderen Reglern ;-)

Ich habe jetzt am Feiertag bissle weiter gemacht. Schaltplan verfeinert 
und erstes Layout erstellt.

Habe ich irgendwelche groben Schnitzer im Schaltplan oder im Layout?

Layout ist nicht optimal vor allem was der Platzbedarf angeht, aber ich 
ätze die erste Platine sowieso selber da kommt es dann nicht unbedingt 
so auf die größe an.

Hat mir noch jemand einen Tip, wie ich am besten die Software entwickel 
kann und zwar im Bezug darauf das mir nicht die FETS gleich 
durchbrennen?
Meine Idee war es Schritt für Schritt einzelne Funktionen zu 
implementieren,
sprich als erstes das PWM Signal, dann eine Phase aktiv setzen und 
schauen was passiert, dann die nächste ... und als letztes die BEMF. 
Sprich etwas gegen dieses Vorgehen?

von Dennis H. (t1w2i3s4t5e6r)


Angehängte Dateien:

Lesenswert?

kappos schrieb:
> Habe ich irgendwelche groben Schnitzer im Schaltplan oder im Layout?

Also in Schaltplan finde ich nur Kleinigkeiten. Z.B. die Pull ups für 
I2C sind irgendwie recht klein. Wenn du dort mehrere solcher i2C 
Teilnehmer mit jeweils solch niedrigen pull ups hast, kann ein einzelner 
Teilnehmer irgendwann den Bus nicht mehr kontrollieren, weil er den 
Strom nicht schalten kann. Also den würd ich bisschen größer machen, so 
3-5 kOhm, vielleicht auch 10kOhm. Und die Gate-Widerstände hab ich mit 
10 Ohm genommen, aber sollte mit 33 Ohm auch gehen.

Im Layout fällt mir einwas sofort auf. Überlege dir mal, wieviel Strom 
von der Stromversorgung durch die Fets zu deinem Motor fließt. Mit 
diesen Fets kannst du locker 30A schalten. Nur müssen diese 30A auch 
über die Leiterbahnen fließen. Ich hab dir einfach mal mein Layout 
angehangen, habe alles, was ging in SMD gemacht. Setze die IR2104 so 
nahe wie es dir möglich ist an die Fets. Ist mir nur mit dem mittleren 
nicht so ganz gelungen, da war einfach nicht mehr genug Platz, aber es 
geht noch. Die ganze Platine ist nur 33 x 35 mm groß. Und setze den +12V 
Anschluss mehr in die Nähe der Fets, weil dort fließt schließlich mal 
viel Strom. Also das der ganze Motorstrom einen sehr kurzen Weg auf 
deiner Platine hat. Bei mir erkennt man die Anschlüsse nicht so richtig, 
ich habe auf der Top-Seite Über dem großen Kondensator eine Fläche für 
den 12V Anschluss. Also eine Fläche frei von Lotstopplack, weil ich 
nicht selber die Platine herstelle. Von dort fließt der Strom am großen 
Kondensator vorbei zu den oberen Fets. Und aus diesen direkt wieder nach 
oben raus zu den jeweiligen Motorphasen, wo ich wieder so eine 
Freifläche ohne Lötstopp habe. Auf der Bottom-Seite sitzen die Fets 
höher aber im Prinzip das gleiche umgesetzt.

Was mich bei dir wundert, warum du nicht gleich alles auf einer Seite 
machst. Weil du entweder auf der Bottom oder auf der Top Seite Bauteile 
hast, aber kaum mal an einer stelle auf beiden Seiten welche. Also zum 
einfachen Testen, mit einem kleinen Festplattenmotor könnte dein Layout 
vielleicht funktionieren, aber für mehr Strom wirds auf alle fälle nix. 
Vielleicht gibts bei hohen PWM-Frequenzen auch noch Probleme.

MfG Dennis

von kappos (Gast)


Lesenswert?

Ja das habe ich mir schon gedacht das die Leitebahnbreite viel zu schmal 
ist.

Ich werde am Wochenende mal nochmal neu Layouten.
Bin  leider noch nicht so der Layoutspezialist, ich tue mich da immer 
echt schwer. Aber "Übung macht den Meister" Danke für dein Tipp und dein 
Layout

von kappos (Gast)


Lesenswert?

Kurzer Nachtrag, klar kann ich solche hohe Ströme schalten, aber mein 
Motor gibt nur 9A her, dann könnte mein Layout wahrscheinlich grad so 
reichen ;-)

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

kappos schrieb:
> Kurzer Nachtrag, klar kann ich solche hohe Ströme schalten, aber mein
> Motor gibt nur 9A her, dann könnte mein Layout wahrscheinlich grad so
> reichen ;-)

Nun, ein Motor gibt gar keinen Strom her, er verbraucht wenn dann 
Leistung. Und die setzt sich einfach aus Spannung und Strom zusammen. 
Und da die Spannung die ganze Zeit gleich bleibt, kann bei wechselnder 
Leistung nur der Strom sich verändern. Ob 9A über die kleinen 
Leiterbahnen fließen, ist fraglich.

Hier mal als Anhaltspunkt:

http://www.mikrocontroller.net/articles/Eagle_im_Hobbybereich#Empfehlungen_f.C3.BCr_Leiterbahnen_im_Hobbybereich

Oder hier für den profesionellen Bereich:

http://www.mikrocontroller.net/articles/Leiterbahnbreite

Sind ganz nützliche Tips in den Artikeln zu finden. Grundsätzlich mache 
ich mir zuerst Gedanken über den Bereich, wo viel Strom fließt und wie 
ich die Bauteile, die da mitten drin sind, ansteuern kann, also das ich 
das Signal irgendwie raus aus den dicken Leiterbahnen bekomme. Gerade 
bei BLDC REglern ist das nicht ganz so ohne einen vernünftigen Weg für 
das Gate zu finden.

MfG Dennis

von kappos (Gast)


Lesenswert?

Ich habe jetzt die Schaltung mal so aufgebaut.
Allerdings habe ich ein Problem mit dem Treiber 2104.
Er schaltet immer HO durch und nie LO. Egal
was in IN und SD anliegt. Wenn ich das Datenblatt richtig
lese wenn IN = low ind SD = high dann müsste doch LO durchschalten?

Liegt es vielleicht an den Bootstrap Kondensator. Ich habe auf beiden 
Seiten ein 100nF Kondensator drin.


Gruß Kappos

von Jackfritt (Gast)


Lesenswert?

Bei angeschlossenem motor gemessen?

von kappos (Gast)


Lesenswert?

Nein, ohne Last,
allerdings mit Motor passiert ebenfalls nichts

von Dennis H. (t1w2i3s4t5e6r)


Lesenswert?

Naja, ist klar, das mit Motor auch nichts passiert. Aber irgendwann 
sollte die Spannung am High-Mosfet-Gate einsacken, weil der Kondensatör 
leer ist. Schaltet der IR2104 wenigstens ordentlich ab, wenn du SD auf 
LOW setzt?
Was meinst du, wenn du sagst, du hast auf beiden Seiten einen Kondi 
drin? Für Bootstrap brauchts doch nur einen Kondi, zeig mal Schaltplan..


MfG Dennis

von kappos (Gast)


Angehängte Dateien:

Lesenswert?

Schaltplan ist der von Oben. Habe jetzt für C1 100nF und für C2 1000nF 
genommen.
Problem ich habe kein Oszi.
Kann nur mit dem LA die digitalen Signale anschauen.
Habe jetzt aber schon ein sehr seltsames Problem.
Habe jetzt mal die States umgesetzt mit folgendem Code:
1
uint8_t SetNextState(uint8_t state,Lpc13Pin sda,Lpc13Pin sdb,Lpc13Pin sdc, Lpc13Pin ina,Lpc13Pin inb,Lpc13Pin inc, Lpc13 lpc)
2
{
3
  switch(state)
4
  {
5
    case 0:
6
      //Phase A PWM
7
      SetDriverOn(sda);
8
      SetPWMOn(0,lpc);
9
      //Phase B Floating
10
      SetPWMOff(1,lpc);
11
      SetDriverOff(sdb);
12
      //Phase C GND
13
      SetDriverOn(sdc);
14
      SetPWMOff(2,lpc);
15
      break;
16
    case 1:
17
      //Phase A Floating
18
      SetDriverOff(sda);
19
      SetPWMOff(0,lpc);
20
      //Phase B PWM
21
      SetDriverOn(sdb);
22
      SetPWMOn(1,lpc);
23
      //Phase C GND
24
      SetDriverOn(sdc);
25
      SetPWMOff(2,lpc);
26
      break;
27
    case 2:
28
      //Phase A GND
29
      SetDriverOn(sda);
30
      SetPWMOff(0,lpc);
31
      //Phase B PWM
32
      SetDriverOn(sdb);
33
      SetPWMOn(1,lpc);
34
      //Phase C Floating
35
      SetDriverOff(sdc);
36
      SetPWMOff(2,lpc);
37
      break;
38
    case 3:
39
      //Phase A GND
40
      SetDriverOn(sda);
41
      SetPWMOff(0,lpc);
42
      //Phase B Floating
43
      SetDriverOff(sdb);
44
      SetPWMOff(1,lpc);
45
      //Phase C PWM
46
      SetDriverOn(sdc);
47
      SetPWMOn(2,lpc);
48
      break;
49
    case 4:
50
      //Phase A Floating
51
      SetDriverOff(sda);
52
      SetPWMOff(0,lpc);
53
      //Phase B GND
54
      SetDriverOn(sdb);
55
      SetPWMOff(1,lpc);
56
      //Phase C PWM
57
      SetDriverOn(sdc);
58
      SetPWMOn(2,lpc);
59
      break;
60
    case 5:
61
      //Phase A PWM
62
      SetDriverOn(sda);
63
      SetPWMOn(0,lpc);
64
      //Phase B GND
65
      SetDriverOn(sdb);
66
      SetPWMOff(1,lpc);
67
      //Phase C Floating
68
      SetDriverOff(sdc);
69
      SetPWMOff(2,lpc);
70
      break;
71
    default:
72
      break;
73
  }
74
  
75
  state++;
76
  if (state>5)
77
    return 0;
78
  else
79
    return state;
80
}

und Aufruf in der Main:
1
  uint8_t nextState=0;
2
    while(true)
3
    {
4
    timer.DelayMS(5);
5
    nextState = SetNextState(nextState,sda,sdb,sdc,inA,inB,inC,lpc);
6
    
7
    }

Problem ist das ich folgendes Verhalten an den SD Pins bekomme(siehe 
Screenshot)

generelle Software/Hardware Probleme schließe ich aus, da wenn ich 
jeweils nur ein Kanal (also SDA /SDB oder SDC) schalte funktioniert 
alles.
Ich kann mir dieses Verhalten absolut nicht erklären.
Jemand eine Idee?

von kappos (Gast)


Angehängte Dateien:

Lesenswert?

Da ich nun endlich wieder Zeit finde an meinem Brushless Controler 
weiter zu arbeiten folgende Info. Das komische Verhalten vom LA lag 
schlicht weg daran, das der LA kaputt ist. mittlerweile habe ich mir ein 
Oszi besorgt und jetzt sind das ganze besser aus.
Habe jetzt aber nochmal am Design gedreht und will das ganze sauber auf 
2 Lagen hinbekommen aber ich schaff es einfach nicht, mir fehlt dazu 
einfach die Erfahrung sauber zu Routen. Im Anhang habe ich meinen 
jetzigen Stand,der ist noch nicht fertig gerouten, aber mir gefällt er 
so schon garnicht. Kann mir vielleicht dazu noch jemand nen Tip geben, 
wie ich da am besten vorgehen?

Gruß Kappos

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.