Forum: Analoge Elektronik und Schaltungstechnik Problem mit BLDC Schaltung


von Jens H. (juehv)


Angehängte Dateien:

Lesenswert?

Hallo alle zusammen!

Ich bastle momentan für meine Bachelorarbeit an einem BLDC Regler...
Ich studiere allerdings Informatik und habe daher nicht so viel Ahnung 
von ETechnik :(
Im moment klappt alles noch nicht so gut, daher wollte ich erstmal eine 
synchrone Ansteuerung versuchen, bei denen ich die Hall Sensoren aussen 
vor lasse.

Im Anhang findet ihr den Schaltplan als PDF (da kann man gescheit 
vergrößern); die Chip nummern sollten soweit stimmen...

Ich habe einen ATmega 168 der das ganze steuert. Die Leistungsstufe sind 
6 IRF3710Z MOSFETs. Diese werden von jeweils einem Optokoppler 
angesteuert. Ich habe mir gedacht, da habe ich eine Trennung und Treiber 
in einem. Der Motor ist ein 48V 200W BLDC Motor.

Nun habe ich 2 Spannungsversorgungen, einmal 5V für die Logik und einmal 
48V für den Motor. Aus den 48V mache ich mit einem Schaltregler 20v zur 
Gateansteuerung. Die Optokoppler werden dann mit den 5V direkt aus dem 
AVR angesteuert und schalten die 20V für die MOSFETs. Diese schalten 
dann die 48V für den Motor.

Wie im Schaltplan ersichtlich habe ich einen typischen aufbau verwendet. 
Nach meinen Messungen heute mit dem Oszi, scheinen die Phasen auch alle 
wie gewünscht zu Schalten:
Ich schalte Low(GMD) immer statisch, und High (48V) mit PMW (momentan ca 
50%). Nach jedem Schaltvorgang lasse ich den MOSFETs 3µs Zeit 
(Deadtime).
Die Schaltreihenfolge (exakt wie im Programmablauf):
(H = 48V, L = GND, D = Tod)
Phase  Potenzial
A   L
B   L
C   L
A   D
B   D
C   D

B   L

Begin einer Schleife
A   H
200ms warten
B   D
C   L
200ms warten
A   D
B   H
200ms warten
C   D
A   L
200ms warten
B   D
C   H
200ms warten
A   D
B   L
200ms warten
C   D
Ende der Schleife

Die Schleife kann dann beliebig lange wiederholt werden.

Erwarten würde ich jetzt, dass der mortor etwas holperig seine Runden 
dreht. Aber das tut er nicht.. kommen wir also zum PROBLEM:

Meine erste Beobachtung mit dem Oszi heute war, dass an den Phasen nur 
20V anliegen... Die Mosfets werden aber mit 19,7V angesteuert, was ja 
knapp unter der MAX Vgs ist. Also sollten sie ja komplett durchschalten 
und nicht nur 50%. Es könnte auffallen, dass ich die PMW auf ca 50% 
habe, aber auf dem Oszi war der Puls sichtbar von wunderschönen 20V 
Pulsen was ja dann ein arritmetisches Mittel von 10V gibt. Der Motor 
braucht ja aber 48V ...
Ok hab ich mal ignoriert und den Motor dran gehängt. Zu beobachten war 
das er immer einen Step macht, und dann einen Step zurück, dann wieder 
den Step vor und wieder zurück. Die Phase A wird dabei Handwarm, alle 
anderen bleiben kalt. Wenn ich dann alles abschlate und die MOSFETs auf 
durchgängigkeit teste (bei Vgs 0V, also alles aus) fällt auf das die 
High MOSFETs alle dauerschalten. Ich habe das mal als "durchgebrannt" 
interpretiert. Das passiert bei JEDEM lauf.
Also 3 Probleme:
1. Bei komplett neuen MOSFETs wird nur 20V geliefert.
2. Der Motor macht nur einen vorstep, dann einen Rückwärtsstef und keine 
Kreisbewegung.
3. Die MOSFETs sterben wie die Fliegen, auch wenn sie locker doppelt so 
viel Strom und Spannung aushalten sollten.

Ich habe gelesen, dass Freilaufdioden die MOSFETs schützen sollen, 
allerdings haben die irf3710 Interne Dioden ... Zur Sicherheit habe ich 
jetzt ein Paar Schotkey Dioden drangebastelt, allerdings haben die keine 
Änderung im Verhalten bewirkt.

Ich hoffe, dass jemand den ganzen Text liest und mir helfen kann!

Gruß

von Ben _. (burning_silicon)


Lesenswert?

hmm... schade um die FETs... ;-((

du kannst die high side FETs nicht so einfach per optokoppler schalten. 
die dinger brauchen ihre gate-spannung zwischen (G)ate und (S)ource. was 
passiert nun wenn du am gate 20V anlegst? richtig, die dinger öffnen. 
was passiert nun wenn am (S)ource die spannung auf 20V gestiegen ist? 
richtig, die G-S spannung ist weg und deswegen können die FETs nicht 
weiter öffnen.

damit ist auch klar wieso die FETs sterben, 20V gehen in den motor (mit 
verdammt hohem strom weil dieser sich ja nicht dreht) und die restlichen 
28V heizen die FETs.

aber dein schaltplan ist murks. die optokoppler dürften in dieser 
beschaltung die FETs gar nicht öffnen können.

was ist eigentlich mit so tollen halbbrückentreibern wie z.b. dem 
IR2110? mit genügend großem bootstrap-kondensator sollte es damit selbst 
bei so geringen drehzahlen funktionieren.

bei 48V ist auch klar, daß da schnell was raucht. zum test würde ich den 
ganzen kram mit 12V und einer guten strombegrenzung betreiben. die 
gate-spannung von 20V erscheint mir ebenfalls grenzwertig, geh auf 15V 
runter.

48V für 200ms an eine wicklung eines stehenden motors find ich auch zu 
lange. da dürften ströme jenseits von gut und böse fließen. nimm 
innerhalb der 200ms eine geringere pulsbreite für die high side, so daß 
der motor gerade genug kraft zum drehen hat. wenn dann alles 
funktioniert kannst du immer noch die leistung erhöhen.

die korrekte schaltreihenfolge der phasen bzw. transistoren findest du 
mit sicherheit im netz.

schon irgendwo krass... informatik studieren (ich wiederhole: 
STUDIEREN!!) und dann in ein gebiet reingehen wovon man keine ahnung 
hat. das versteh ich mal grundsätzlich nicht. ich studiere doch auch 
nicht botanik und mache danach herztransplantationen. und wenn die 
überaus anspruchsvolle arbeit, ein programm zum steuern eines 
BLDC-motors in einen AVR zu kriegen für den bachelor ausreicht na dann 
gute nacht! sowas erledigt ein BLDC-interessierter hobbybastler in 20 
minuten, der braucht dafür noch nicht mal ein abitur geschweige denn ein 
studium.

von Simon K. (simon) Benutzerseite


Lesenswert?


von Simon K. (simon) Benutzerseite


Lesenswert?

Zumal ein Informatiker (unterstelle ich jetzt mal) wissen sollte, dass 
man auf solchen kleinen Systemen ohne Betriebssytem/Scheduler/OderSowas 
Warteschleifen eher vermeidet ;-)

von Ben _. (burning_silicon)


Lesenswert?

timer und interrupts kommen erst im nächsten semester...

aber für so mal zum ausprobieren ist das schon okay.

von Max G. (l0wside) Benutzerseite


Lesenswert?

Ben _ schrieb:
> hmm... schade um die FETs... ;-((
>
> du kannst die high side FETs nicht so einfach per optokoppler schalten.
> die dinger brauchen ihre gate-spannung zwischen (G)ate und (S)ource. was
> passiert nun wenn du am gate 20V anlegst? richtig, die dinger öffnen.
> was passiert nun wenn am (S)ource die spannung auf 20V gestiegen ist?
> richtig, die G-S spannung ist weg und deswegen können die FETs nicht
> weiter öffnen.

PMOS für die Highsides nehmen oder einen passenden Treiberbaustein, 
sonst wird das ohne Charge Pump oder extra Spannungsversorgung > 48V 
nichts.

> 48V für 200ms an eine wicklung eines stehenden motors find ich auch zu
> lange. da dürften ströme jenseits von gut und böse fließen. nimm
> innerhalb der 200ms eine geringere pulsbreite für die high side, so daß
> der motor gerade genug kraft zum drehen hat. wenn dann alles
> funktioniert kannst du immer noch die leistung erhöhen.

Ich würd´s ja erst mal mit 12V als Versorgung und drei zusammengelöteten 
100 Ohm/1W-Widerständen als Motorersatz probieren und mit dem Oszi 
schauen, ob die Spannungen passend geschaltet werden. Wenn das klappt, 
kann man immer noch mit höheren Spannungen und dem echten Motor 
rumspielen.

> schon irgendwo krass... informatik studieren (ich wiederhole:
> STUDIEREN!!) und dann in ein gebiet reingehen wovon man keine ahnung
> hat.

Fachidioten haben wir schon genug, und sein Schaltplan ist nicht völlig 
katastrophal. Und er hat nicht darum gebeten, dass wir seine Aufgabe 
lösen, sondern ist erst mal selber auf die Nase gefallen. Das ist doch 
prinzipiell ok.

von Jens H. (juehv)


Lesenswert?

Wow .. das sind ja harte Worte...
Mir ist klar, dass das nicht zu meinem Fachgebiet gehört, aber ich würde 
gerne Erfahrungen in breiteren Gebieten sammeln... Und NEIN, es reicht 
natürlich nicht aus ein BLDC Regler zu bauen für eine Bachelor Arbeit 
... das ist nur ein Zahnrad in einem System das mir im moment Probleme 
bereitet...
Und Ja warteschreifen sind unschön, aber sie tuns für einen Test völlig.

Danke an l0wside dass er ein wenig in dei Bresche gesprungen ist und 
versucht mir weiter zu Helfen :)

Max G. schrieb:
> Ich würd´s ja erst mal mit 12V als Versorgung und drei zusammengelöteten
> 100 Ohm/1W-Widerständen als Motorersatz probieren und mit dem Oszi
> schauen, ob die Spannungen passend geschaltet werden. Wenn das klappt,
> kann man immer noch mit höheren Spannungen und dem echten Motor
> rumspielen.

Super Idee ... das mach ich heute direkt mal ...

Danke für die Tipps

Gruß

von Jens H. (juehv)



Lesenswert?

So da bin ich wieder.
Leider weiterhin erfolglos...

Also was ich gemacht habe:

Mir kam es am einfachsten vor, einen P-MOSFET zu verwenden. Wollte dann
die Hiegh Side mit 30V aktivieren (da dann am Gate - 18V anliegt) und 
mit 48V
deaktivieren. Das Ganze sollte über eine Optokoppler passieren. Deshalb 
habe ich mir ein Schaltregler für 30V besorgt und an dem Optokoppler als 
Vcc 48V und als Vee 30V angeschlosse. Allerdings ist bei dem 
Schaltregler dann die Spannung angestiegen auf 47V... mir ist nicht klar 
warum er sich so verhält ..
Ich hab dann einen Spannungsteiler verwendet, der mir die 30V liefert. 
Dann habe ich das ganze mit dem OSZI durchgemessen und festgestellt, 
dass der Optokoppler nur noch 30V ausgibt und niemals schaltet 
(unabhängig vom Eingang) Ich kann mir auch hier das Verhalten nicht 
erklären ...
(Soweit im Schaltplan sichtbar)
Dann bin ich dazu über gegangen, dass ich es erstmal mit 12V versuche 
und die Gate Versurgung erstmal hinten anstelle.
Bei 12V muss ich bei dem P-MOSFET ja nur auf Masse schalten um es zu 
aktivieren und auf 12V um es zu deaktivieren.
Bei dem N-MOSFET schalte ich auf 12V zum aktivieren und auf Masse um zu 
deaktivieren. Ich kann allerdings nicht ganz nachvollziehen ob es 
Funktioniert, da an der Phase seltsamer weise immer GND anliegt (auch 
wenn das MOSFET deaktiviert ist).
Ich hab das mal so interprätiert, dass aus irgendeinem Grund immer 
durchgeschlaten wird ... ich weiss allerdings nicht warum (die MOSFETs 
sind neu)...

Die High Side hat auch eine seltsamen Nebeneffect. Eine Phase 
funktioniert wie erwartet: Wenn ich (gepulste) Masse am Gate anlege habe 
ich am 12V auf der Phase. Allerdings habe ich die vollen 12V trots PWM 
... ich denke aber dass sich das unter Last noch verändert. Die anderen 
Beiden Phasen Schalten zwar auch aber es liegen ein Paar Volt (ca 5V) an 
wenn die funktionierende Phase geschalten wird.
Ich habe mal ein paar Bilder vom Oszi gemacht. Man sieht darauf immer 
die Phase (hohe Kurve) und die Gateschaltung (niedrige kurve). Die 
unterschiedlichen höhen liegen an der Einstellung und sind nur zur 
besseren lesbarkeit ... die Spannung ist in wirklichkeit gleich groß.

Ich bin ein wenig am Verzweifeln ... das frisst eigentlich auch alles zu 
viel Zeit. Hat jemand eine Idee? Bzw. weiss jemand ob man den 
Treiberteil kaufen kann ? Denn eigentlich ist für mich nur die Software 
interessant..

Gruß

von Floh (Gast)


Lesenswert?

Frage zum Nachdenken:
Welches Potential sollen die Gates haben, wenn du die Optokoppler nicht 
ansteuerst?

von Simon K. (simon) Benutzerseite


Lesenswert?

Eben, du brauchst Pullups. Allerdings will man den MOSFET möglichst 
schnell öffnen/schließen, weshalb der Pullup relativ klein sein sollte, 
was wiederum einen hohen Querstrom (durch die Optokoppler Ausgänge) zur 
Ursache hat.

Einfacher als mit einem integrierten Half-Side Chip wirds ziemlich 
schwer.

von Jonny O. (-geo-)


Lesenswert?

hi,

wie die Vorredner schon sagten.  Es gibt für diesen Zweck fertige ICs 
(IR2101 oder Ähnliches) --> Ich würde auf jeden Fall drauf 
zurückgreifen. BLDC Ansteuerung ist nicht trivial. Habe mir selbst beim 
Bau so einige Mosfets zerschossen. Greife also besser auf erprobte 
Schaltungen zurück. Aber auch hier kommt es noch maßgeblich auf das 
Layout an, da Leistungselektronik unschöne Eigenschaften zeigen kann 
(EMV, Ripple usw usw)
Mit dem Steckbrett kann man sowas nicht machen ;))

EDIT: Ich sehe grade das du auf P-Kanal umgestiegen bist (High Side).

Was mir noch einfällt: Bist du dir ganz sicher nicht versehentlich einen 
Überlapp zu haben und zu gewissen Zeiten beide Transistoren 
durchzuschalten? Bei sowas sind die sofort hinüber. Auch sollten die 
Totzeiten bedacht werden.

von Ben _. (burning_silicon)


Lesenswert?

**würg** pullups zur FET-ansteuerung sind in so einer anwendung 
obermüll. das geht bestenfalls wenn man die FETs mit 100-300Hz fahren 
will und selbst dann ist ein echter gate-treiber immer noch besser. ich 
nehm sowas nur noch wenn ich etwas einfach und vor allem statisch 
schalten will, wo mir die schaltzeit einigermaßen egal ist und ich ggf. 
mit etwas verlustleistung im umschaltmoment leben kann.

bitte nimm irgendeinen gate-treiber-IC. davon gibt es doch heute genug. 
IR2110 fällt mir da ganz spontan ein. die haben den nachteil, daß man 
die high side nur mit umwegen statisch schalten kann, aber das will man 
beim BLDC ja nicht.

von Jens H. (juehv)


Lesenswert?

Ben _ schrieb:
> IR2110 fällt mir da ganz spontan ein.

den würde ich auch gerne verwenden ... ich hab auch noch eine Stange 
hier rum liegen ... allerdings hat es mit dem nich so geklappt (auch die 
low side nicht) ... kannst du mir den erklären ?
Also:
- Wie anschließen (wenn anders als im Datenblatt)
- Welche kondensatoren bei meinen Spannungen und Strömen
- Welche Schaltfrequenz der High Side
- Muss die Lowside dann auch gepulst werden
- Kann ich den P weiterhin verwenden für High
- Was sonst noch zu beachten ist...

Jonny Obivan schrieb:
> Was mir noch einfällt: Bist du dir ganz sicher nicht versehentlich einen
> Überlapp zu haben und zu gewissen Zeiten beide Transistoren
> durchzuschalten? Bei sowas sind die sofort hinüber. Auch sollten die
> Totzeiten bedacht werden.

Ich habe die einzeln gemesse .. also erst nur die High dann nur die Low 
angesteuert

Jonny Obivan schrieb:
> Mit dem Steckbrett kann man sowas nicht machen ;))

das sehe ich nun leider auch ... das Geld ist ja nicht das Problem, 
sondern das es mich einfach aufhält.
Deswegen ja die frage, ob man die Leistungselektronik nicht einfach 
komplett zukaufen kann.

habe immer Platinen gefertigt

Jonny Obivan schrieb:
> BLDC Ansteuerung ist nicht trivial. Habe mir selbst beim
> Bau so einige Mosfets zerschossen.

Floh schrieb:
> Frage zum Nachdenken:
> Welches Potential sollen die Gates haben, wenn du die Optokoppler nicht
> ansteuerst?

Ja darüber habe ich nachgedacht ;) und laut meinen Messungen schaltet 
der Optokoppler im nicht angesteuerten Zustand auf Vee ... also in 
meinem Fall auf GND


Gruß

von Jonny O. (-geo-)


Lesenswert?

> Ja darüber habe ich nachgedacht ;) und laut meinen Messungen schaltet
> der Optokoppler im nicht angesteuerten Zustand auf Vee ... also in
> meinem Fall auf GND

Bist du dir auch ganz sicher, dass er nicht floated? Wenn man da mit dem 
Messgerät hingeht, kann es ja durchaus sein, dass es 0V anzeigt, was 
aber nicht bedeutet, dass eine aktive Verbindung nach Masse besteht. 
Durch die hohe Impedanz eines Gates, können eingestreute Störungen, 
statische Aufladungen etc. den Mosfet wild rumschalten lassen.

Dann fällt mir noch auf, dass der Transistor im Optokoppler nicht 
gescheit durchschalten kann, wenn kein Strom fließt, was auch der Fall 
sein wird, da das Gate extrem hochohmig ist (vorausgesetzt das 
Innenleben des Optokopplers wird im Schaltbild richtig angegeben). --> 
Du brauchst unbedingt Pull-Ups.

von Ben _. (burning_silicon)


Lesenswert?

gegen pull-ups oder pull-downs spricht schon die miller-charge bei FETs. 
bei 48V wird da schon ordentlich was aufs gate eingekoppelt und sollte 
durch einen aktiven treiber abgeleitet werden.

IR2110...................
> - Wie anschließen (wenn anders als im Datenblatt)
datenblatt, anders nur wenn du ihn grillen willst. dann könnte man ihn 
verpolen oder so... wär aber schade drum.

> - Welche kondensatoren bei meinen Spannungen und Strömen
die dioden sollten gute sein, meine empfehlung wären MUR120. die machen 
200V 1A und sind auf jeden fall nicht zu langsam.

kondensatoren die üblichen abblockkondensatoren halt. Cboot dient zur 
versorgung des high-side-treibers und FETs, der sollte groß genug sein 
damit die spannung während der leitend-phase der high side nicht zu weit 
absinkt. ich würd da ruhig 220µF oder so dranklatschen, parallel dazu 
einen 0,1µF folienkondensator.

die gate-widerstände der FETs nicht zu gering wählen, sonst kann das 
ganze zum schwingen neigen. vielleicht 10-22 ohm probieren.

> - Welche Schaltfrequenz der High Side
wenn du willst sind 200 kHz kein problem. auf jeden fall für deinen 
zweck ausreichend. du solltest aber so wenig wie möglich nehmen, jeder 
schaltvorgang sind verluste und wenn du pulse draufschickst ohne die 
low-side durchzusteuern muß Cboot sehr viel strom liefern weil das gate 
des FETs dauernd umgeladen wird. ich würd keine pulse verwenden, sondern 
einmal einschalten und bei wenig leistungsbedarf (verhältnismäßig) lange 
vor dem einschalten der low side wieder abschalten. also nur einen 
einzigen puls mit der benötigten pulsbreite.

> - Muss die Lowside dann auch gepulst werden
sie muß regelmäßig durchgeschaltet werden um Cboot nachzuladen. passiert 
im normalen betrieb automatisch, beim testen mußt du vielleicht darauf 
rücksicht nehmen.

> - Kann ich den P weiterhin verwenden für High
nein. der IR2110 ist extra dafür da, daß man den geringen Rds(on) von 
N-FETs auch für die high side nutzen kann.

> - Was sonst noch zu beachten ist...
niemals high und low side gleichzeitig einschalten!! und ggf. zwischen 
dem abschalten eines FETs noch ganz kurz bis zum einschalten des anderen 
warten damit der abschaltende zeit zum sicheren sperren hat (siehe shoot 
through current).

praktisch ist auch der shutdown-eingang des IR2110. damit kannst du im 
fehlerfall (z.b. erkannte überlastung oder überhitzung) die komplette 
endstufe abschalten.

falls du einen permanent erregten motor verwendest kannst du durch 
gleichzeitiges einschalten aller low-sides auch eine sehr effektive 
motorbremse realisieren. wenn du richtig fit bist kann man damit sogar 
eine rückspeisung der bremsenergie erreichen (die low-side kann 
problemlos gepulst betrieben werden weil sie dauerhaft mit spannung 
versorgt ist).

von Jens H. (juehv)


Angehängte Dateien:

Lesenswert?

ich schon wieder ;)

Ben _ schrieb:
> die dioden sollten gute sein, meine empfehlung wären MUR120. die machen
> 200V 1A und sind auf jeden fall nicht zu langsam.

die bekomme ich leider nicht bei Conrad ... ich habe hier noch ein paar 
P6KE440A rum liegen. Kann ich die denn nicht nehmen? Ansonsten würde ich 
die MUR820 holen ...

Ben _ schrieb:
> kondensatoren die üblichen abblockkondensatoren halt.

Ich weiss leider nicht was üblich ist :D würde jetzt spontan zu nem 
normalen ELKO greifen ... hätte auch noch ein paar low ESR da wenn das 
nötig ist.
Kann es schaden wenn die Kapazität noch größer ist ?

Ben _ schrieb:
> die gate-widerstände der FETs nicht zu gering wählen, sonst kann das
> ganze zum schwingen neigen. vielleicht 10-22 ohm probieren.

Ich habe momentan 4,7k ohm dran ... kann ich die weiter verwenden, oder 
ist das zu viel ?

Ben _ schrieb:
> wenn du willst sind 200 kHz kein problem

würde ein paar hundert herz nehmen...

Ben _ schrieb:
> damit kannst du im
> fehlerfall (z.b. erkannte überlastung oder überhitzung) die komplette
> endstufe abschalten.

Wie kann ich das erkennen? normalerweise brauche ich doch dann eine 
Menge zusätzlicher Sensoren, oder?

Ben _ schrieb:
> wenn du richtig fit bist kann man damit sogar
> eine rückspeisung der bremsenergie erreichen

das klingt interessant, aber alle auf low schalten sollte da doch nicht 
reichen oder? ich brauch doch 2 Pole ... wie muss ich das dann schalten?


Habe das ganze noch in einen Schaltplan gepackt, könntest du einen Blick 
darauf werfen, bevor ich den nächsten Satz Bauteile schrotte?
Der eine Kondensator auf der Logikseite scheint ja nur zur 
spannungsglättung zu sein, da reicht ja ein kleiner Tantal oder sowas, 
oder?

Danke für deine Ausführungen!

Gruß

von Simon K. (simon) Benutzerseite


Lesenswert?

Jens Heuschkel schrieb:
> ich schon wieder ;)
>
> Ben _ schrieb:
>> die dioden sollten gute sein, meine empfehlung wären MUR120. die machen
>> 200V 1A und sind auf jeden fall nicht zu langsam.
>
> die bekomme ich leider nicht bei Conrad ... ich habe hier noch ein paar
> P6KE440A rum liegen. Kann ich die denn nicht nehmen? Ansonsten würde ich
> die MUR820 holen ...
Die P6KE440A ist natürlich nicht geeignet. Das ist eine 
Überspannungsschutzdiode. Das sieht man sofort, wenn man sich das 
Datenblatt anschaut, was du offensichtlich nicht getan hast.

Eine UF4003...UF4007 statt MUR120 geht auch, falls Conrad die hat. Eine 
MUR820 ist jedenfalls Overkill

> Ben _ schrieb:
>> kondensatoren die üblichen abblockkondensatoren halt.
>
> Ich weiss leider nicht was üblich ist :D würde jetzt spontan zu nem
> normalen ELKO greifen ... hätte auch noch ein paar low ESR da wenn das
> nötig ist.
> Kann es schaden wenn die Kapazität noch größer ist ?

Wo jetzt genau? An die Stromversorgung des MOSFET Treibers auf der 
Hochstromseite würde ich 100nF keramisch + 10u ELKO hängen. Oder einen 
1µF...10µF Keramisch, falls vorhanden. Da hast du 220µF + 100n. Sollte 
auch gehen.

> Ben _ schrieb:
>> die gate-widerstände der FETs nicht zu gering wählen, sonst kann das
>> ganze zum schwingen neigen. vielleicht 10-22 ohm probieren.
>
> Ich habe momentan 4,7k ohm dran ... kann ich die weiter verwenden, oder
> ist das zu viel ?

Du hast nicht wirklich 4,7kOhm dran, oder? Warum liest du dir nicht 
wenigstens ein paar Grundlagen AppNotes bei IRF (und sonstige) mal 
durch? Da steht alles nötige drin.
Ben hat doch schon (mMn. einwandfreie) Bauteilvorschläge gegeben.

> Ben _ schrieb:
>> wenn du willst sind 200 kHz kein problem
>
> würde ein paar hundert herz nehmen...

Wichtig ist auch, dass du nicht zu langsam wirst. Da der obere 
Transistor immer nur eine begrenzte Zeit eingeschaltet sein kann und der 
untere Transistor eine bestimmte Mindestzeit eingeschaltet sein MUSS.

> Ben _ schrieb:
>> damit kannst du im
>> fehlerfall (z.b. erkannte überlastung oder überhitzung) die komplette
>> endstufe abschalten.
>
> Wie kann ich das erkennen? normalerweise brauche ich doch dann eine
> Menge zusätzlicher Sensoren, oder?
Ja, Temperatursensor, Stromsensor, o.ä. Ist aber erstmal zweitrangig.

> Ben _ schrieb:
>> wenn du richtig fit bist kann man damit sogar
>> eine rückspeisung der bremsenergie erreichen
>
> das klingt interessant, aber alle auf low schalten sollte da doch nicht
> reichen oder? ich brauch doch 2 Pole ... wie muss ich das dann schalten?
Nein, das reicht nicht. Das wird allerdings zu kompliziert, da hab ich 
mich auch noch nie rangemacht.

> Habe das ganze noch in einen Schaltplan gepackt, könntest du einen Blick
> darauf werfen, bevor ich den nächsten Satz Bauteile schrotte?
> Der eine Kondensator auf der Logikseite scheint ja nur zur
> spannungsglättung zu sein, da reicht ja ein kleiner Tantal oder sowas,
Tantal solltest du dir aus dem Kopf schlagen. Das war mal früher. Auf 
der Logikseite brauchst du 100nF keramisch, das sollte reichen.
Bei dir fehlt noch ein dicker Kondensator an den 48V, der unter andere 
die Induktivität der Zuleitung verringert. Hängt von dem Nennstrom des 
Motors ab. Liegt vermutlich irgendwo zwischen 470µF und 4700µF.

Was aber viel wichtiger als die richtigen Bauteile ist, ist das Layout. 
Wenn du einige wenige Regeln nicht beachtest, schrottest du dir die 
Treiber oder MOSFETs auf jeden Fall! Leitungen mit hohen Strom oder 
Spannungsänderungen brauchen hier besondere Aufmerksamkeit. Aufbau auf 
einem Steckbrett oder als Luftverdrahtung solltest du lassen. Tipps 
hierfür kriegst du auch aus diversen Hersteller-Appnotes.

von Ben _. (burning_silicon)


Lesenswert?

> die bekomme ich leider nicht bei KOTZrad ...
wenn das deine einzige bezugsquelle ist na dann gute nacht!

> ich habe hier noch ein paar P6KE440A rum liegen.
> Kann ich die denn nicht nehmen?
vielleicht funktionierts, ich würds lassen. das sind schutzdioden gegen 
spannungsspitzen und keine schnellen gleichrichter.

> Ansonsten würde ich die MUR820 holen ...
du wirst schon irgendeine diode finden die deine 48V (bitte mit etwas 
sicherheitsspielraum!) sperren kann und schnell genug für deine 
schaltfrequenz ist.

> Ich weiss leider nicht was üblich ist :D
das wußte ich früher auch nicht, mach dich halt schlau...

> würde jetzt spontan zu nem normalen ELKO greifen ...
> hätte auch noch ein paar low ESR da wenn das nötig ist.
> Kann es schaden wenn die Kapazität noch größer ist ?
sieht im prinzip erstmal nicht schlecht aus, außer daß die low side 
keinen Cboot braucht. schaden kann der 220µF dort aber auch nicht. low 
ESR ist immer gut finde ich.


> Ich habe momentan 4,7k ohm dran ...
wo hast du denn diesen wert her?

> kann ich die weiter verwenden,
NEIN!!

> oder ist das zu viel ?
viel zu viel! bei 48V sollte man schon ziemlich schnell schalten weil im 
ziehbereich eine hohe verlustleistung entsteht. geh keinesfalls über 100 
ohm, ich persönlich würde wie gesagt 10 oder 22 ohm probieren. das ist 
nochmal deutlich weniger als 100.

> würde ein paar hundert herz nehmen...
vernünftig. 300..500 vielleicht, so ab 800 Hz hört man die 
schaltfrequenz halt als ziemlich ekliges und vor allem lautes pfeifen 
aus dem motor. wenn du das ding später mal im griff hast ist die 
schaltfrequenz von der drehzahl abhängig - da kannst du gegen das 
pfeifen dann nicht mehr viel machen. zum testen "ob was dreht" bzw. um 
den  BLDC erstmal anzuschmeißen (dafür brauchst du später eine 
anfahrrampe auch wenn du hallsensoren verwendest) würde ich halt mit 
sehr kleinen werten rangehen. vielleicht reichen sogar 50-100Hz schon.

> Wie kann ich das erkennen? normalerweise brauche ich doch dann eine
> Menge zusätzlicher Sensoren, oder?
na mindestens einen stromsensor und einen temperaturfühler mit 
entsprechender signalauswertung.

> das klingt interessant, aber alle auf low schalten sollte da doch nicht
> reichen oder? ich brauch doch 2 Pole ... wie muss ich das dann schalten?
vergiss das erstmal. rekuperativ bremsen kann man erst wenn sich was 
dreht...

> Der eine Kondensator auf der Logikseite scheint ja nur zur
> spannungsglättung zu sein, da reicht ja ein kleiner Tantal oder sowas,
> oder?
das ist einer der besagten üblichen abblockkondensatoren...

> Danke für deine Ausführungen!
bitte. ich weiß nur noch nicht obs dir was nutzt.

ich würd vorschlagen als erstes probierst du es nicht gleich mit 
volldampf aus vier dicken autobatterien oder so, sondern erstmal etwas 
sanfter mit 12V statt 48 und vielleicht einer H1 oder H4 auto-glühlampe 
in reihe. die dient dann der strombegrenzung (auf 4-5A) und sollte ohne 
angeschlossenen motor nicht leuchten. wenn sie doch leuchtet rettet sie 
gerade deine FETs weil in mindestens einer halbbrücke beide gleichzeitig 
leitend sind. sowas bei 48V und ordentlich power knallt sonst die FETs 
mitsamt den beinchen weg. besser wäre noch ein labornetzgerät mit 
einstellbarer strombegrenzung, 12V mit autolampe ist auch nur eine 
hilfskrücke...

die idee mit den drei widerständen (oder lampen) anstelle der 
motorwicklung ist auch gut, dann kannst du mit dem oszilloskop messen ob 
deine steuerungssequenz stimmt - sie schützt aber nicht vor dem shoot 
through current in den halbbrücken.

von Jens H. (juehv)


Angehängte Dateien:

Lesenswert?

Simon K. schrieb:
> Die P6KE440A ist natürlich nicht geeignet. Das ist eine
> Überspannungsschutzdiode. Das sieht man sofort, wenn man sich das
> Datenblatt anschaut, was du offensichtlich nicht getan hast.

Nun gut, für mich ist eine Diode eine Diode ... ichdachte die sind für 
den angepriesenen Zweck optimiert aber können auch "zweckentfremdet" 
werden. Gut das ist dann offenbar falsch ... hast du einen Quellen-Tipp 
für "Diodenkunde"?

Simon K. schrieb:
> Wo jetzt genau? An die Stromversorgung des MOSFET Treibers auf der
> Hochstromseite würde ich 100nF keramisch + 10u ELKO hängen. Oder einen
> 1µF...10µF Keramisch, falls vorhanden. Da hast du 220µF + 100n. Sollte
> auch gehen.

Ben meinte was von Folienkondensatoren ... soll ich jetzt Folie oder 
Keramik nehmen?

Simon K. schrieb:
> Wichtig ist auch, dass du nicht zu langsam wirst. Da der obere
> Transistor immer nur eine begrenzte Zeit eingeschaltet sein kann und der
> untere Transistor eine bestimmte Mindestzeit eingeschaltet sein MUSS.

Ja das hab ich verstanden, wird doch aber eh dauernd aktiviert (bei der 
Drehfelderzeugung)

Simon K. schrieb:
> Tantal solltest du dir aus dem Kopf schlagen. Das war mal früher. Auf
> der Logikseite brauchst du 100nF keramisch, das sollte reichen.

Ok also gedanklich von Tantal komplett auf Keramik umsteigen ?

Simon K. schrieb:
> Bei dir fehlt noch ein dicker Kondensator an den 48V, der unter andere
> die Induktivität der Zuleitung verringert. Hängt von dem Nennstrom des
> Motors ab. Liegt vermutlich irgendwo zwischen 470µF und 4700µF.

Das ist bei dem Motor irgendwas um die 5A. Aber es kann ja nicht schaden 
wenn der größer ist oder?
Hier auch ein normaler ELKO?

Simon K. schrieb:
> Was aber viel wichtiger als die richtigen Bauteile ist, ist das Layout.
> Wenn du einige wenige Regeln nicht beachtest, schrottest du dir die
> Treiber oder MOSFETs auf jeden Fall! Leitungen mit hohen Strom oder
> Spannungsänderungen brauchen hier besondere Aufmerksamkeit. Aufbau auf
> einem Steckbrett oder als Luftverdrahtung solltest du lassen.

Da ich offenbar nich so in der Materie drin stecke wär ich für jeden 
Tipp dankbar. Ich benutze schon immer selbst erstellte Platinen .. also 
kein Steckbrett. Mein letztes Layout hab ich mal angehängt (rote 
Leitungen sind Drahtbrücken, Brauteilnamen bitte ignorieren). Ich kenne 
zum Layouten auch nur eine handvoll Regeln die sich aber alle auf 
Logikplatinen beziehen .. mit Leistungselektronik habe ich eben null 
Erfahrung.

Gruß

von Jonny O. (-geo-)


Lesenswert?

> würde ein paar hundert herz nehmen...

scheint mir ein bischen zu wenig zu sein. Welche Drehzahlen erwartest du 
denn? Wenn der Motor im Leerlauf richtig flott dreht, kommt deine 
Kommutierfrequenz in die Nähe der PWM-Frequenz.

Achso nochwas: Die PWM Frequenz sollte über 16Khz betragen, wenn du sie 
nicht hören willst. So ein Pfeifton kann jeh nach Mechanik ziemlich laut 
und nervig sein. Durch die Kommutierfrequenz ergibt das dann nicht 
selten ein lautes moduliertes Kreischen. Habe da schon selber 
Erfahrungen gesammelt und die Frequenz deshalb hochgesetzt ;))

von Simon K. (simon) Benutzerseite


Lesenswert?

Jens Heuschkel schrieb:
> hast du einen Quellen-Tipp
> für "Diodenkunde"?
Leider nein.

> Simon K. schrieb:
>> Wo jetzt genau? An die Stromversorgung des MOSFET Treibers auf der
>> Hochstromseite würde ich 100nF keramisch + 10u ELKO hängen. Oder einen
>> 1µF...10µF Keramisch, falls vorhanden. Da hast du 220µF + 100n. Sollte
>> auch gehen.
>
> Ben meinte was von Folienkondensatoren ... soll ich jetzt Folie oder
> Keramik nehmen?
An der Stelle kannst du natürlich auch Folienkondensatoren benutzen, die 
sind noch "edler" (haben weniger Verluste und sind vom Kapazitätswert 
nicht so stark von der Spannung abhängig), aber das ist bei dem 
Anwendungsfall völligst egal. Keramik ist billiger.

> Simon K. schrieb:
>> Tantal solltest du dir aus dem Kopf schlagen. Das war mal früher. Auf
>> der Logikseite brauchst du 100nF keramisch, das sollte reichen.
>
> Ok also gedanklich von Tantal komplett auf Keramik umsteigen ?
Im niederkapazitiven Bereich (so bis 10µ, auch schon mehr) kann man 
problemlos auf Keramik umsteigen. Darüber ist dann eine fließende 
Grenze. Ab ca. 100µF muss man nach Super-Low-ESR Kondensatoren umsichtig 
machen.
Nur als grobe Peilwerte. Die verfügbaren Kapazitätswerte hängen auch 
immer von Gehäusegröße und Spannung ab.

> Simon K. schrieb:
>> Bei dir fehlt noch ein dicker Kondensator an den 48V, der unter andere
>> die Induktivität der Zuleitung verringert. Hängt von dem Nennstrom des
>> Motors ab. Liegt vermutlich irgendwo zwischen 470µF und 4700µF.
>
> Das ist bei dem Motor irgendwas um die 5A. Aber es kann ja nicht schaden
> wenn der größer ist oder?
> Hier auch ein normaler ELKO?
Ein 1000µF an 48V sollte schon genug sein, würde ich sagen. ELKO. 
Low-ESR schadet nichts, außer einem eventuell höheren Einschaltstrom, 
wenn du das Netzteil einschaltest.

Dass du wenigstens schon mal selbsterstellte Platinen für sowas nutzt 
beruhigt mich etwas.

Die Diode die du im Moment drin hast ist eine Z-Diode 
(Überspannungsschutzdiode).
Die keramischen Caps an der Bootstrap und VCC Seite fehlen.
Der untere MOSFET ist ein P-Kanal Typ.
Liegende ELKOs haben afaik immer eine etwas höhere ESL 
(Serieninduktivität), wegen den langen Anschlussbeinchen, da würde ich 
einen stehenden nehmen.
Die Leiterbahnen würde ich noch etwas dicker machen.
Die Drahtbrücken solltest du solide auswählen. Vielleicht so 0,8mm - 1mm 
Draht. Ich nehm für sowas auch schon mal gerne 1,5mm² von der 
Hausinstallation.
Die Stromversorgungsleitung zum IR2110 sind zu dünn.
Und das allerwichtigste: Das ganze Layout ist VIEL zu sehr 
auseinandergezogen. Das muss viel enger aneinander gepackt werden. 
Erhöhe auch die Restringe in den Design Rules.
Ich nutze für so sachen wie R10 und R9 sehr gerne 1206 SMD Widerstände. 
Die kann man auch als Grobmotoriker noch löten und haben gleichzeitig 
eine sehr niedrige Seriendinduktivität (keine Anschlussbeine), was an 
der Stelle NUR gut sein kann.

von Jens H. (juehv)


Angehängte Dateien:

Lesenswert?

Hallo zusammen!

Habe mich nochmal en Abend dran gesetzt und einen kompletten Schaltplan 
und Board gezeichnet. Habe sie als PDF in den Anhang gepackt, dass man 
sie auch ausreichend vergrößern kann.

Ich habe mich bemüht alle Tipps soweit umzusetzen. Die Leitungsdicken 
sollten für die Ströme ausreichen.

Könnt ihr nochmal einen kritischen Blick darauf werfen?
Ich will auf jeden Fall vermeiden die nächste Platine samt den Mosfets 
in den Müll werfen zu müssen!

Gruß

EDIT:
Rote Kabel sind Drahtbrücken die natürlich entsprechend dimensioneirt 
werden.

von Michael O. (mischu)


Lesenswert?

. Wo werden die +12V für die HB-Treiber eingespeist?
. Den Gateanschlüssen der Low-Side Treiber fehlt eine gemeinsame Masse.
. Das Layout der Leistungssektion ist eher unterirdisch...
  -> Versuche die aufgespannte Leiterfläche im Leistungskreis zu 
minimieren.
  -> Nutze Polygone für den Leistungssektion.
  -> setze Gate-Ansteuerung (Source- UND Gateanschlüsse) möglichst nah 
an
     den MOSFET.
. Überlege, ob Du nicht noch Pullup/Down Widerstände an dne HIN  LIN  
SD
  Anschlüsse setzen möchtest. Wenn der uC unprogrammiert ist dann sind 
die
  Gatetreibereingänge undefiniert -> Kurzschlussgefahr.

von Jens H. (juehv)


Lesenswert?

Michael O. schrieb:
> . Wo werden die +12V für die HB-Treiber eingespeist?
Aus dem StepUp Regler auf der Platine

> . Den Gateanschlüssen der Low-Side Treiber fehlt eine gemeinsame Masse.
Meinst du "COM" und "48V Motor-" ? Die sind "Global" gesehen die selbe 
Masse.

> . Das Layout der Leistungssektion ist eher unterirdisch...
>   -> Versuche die aufgespannte Leiterfläche im Leistungskreis zu
> minimieren.
Bsp?

>   -> setze Gate-Ansteuerung (Source- UND Gateanschlüsse) möglichst nah
> an
Habe ich versucht, jedoch sehen ich nicht dir Möglichkeit noch enger zu 
Setzen...

> . Überlege, ob Du nicht noch Pullup/Down Widerstände an dne HIN / LIN /
> SD
>   Anschlüsse setzen möchtest. Wenn der uC unprogrammiert ist dann sind
> die
>   Gatetreibereingänge undefiniert -> Kurzschlussgefahr.
SD hat einen Pullup. Damit ist der Leistungsteil vor ungewolltem 
Schalten geschützt

von Michael O. (mischu)


Lesenswert?

Aktuell ist der Massepin 2 (COM) auf Signal "GND" nicht mit der Masse 
des 48V Kreises "48V Motor -" verbunden. So floaten die LOW Side 
Gateanschlüsse. Wenn die HighSide geschaltet wird, kannst Du einen 
fetten Kurzschluss bekommen.

Hast Du das Application note gesehen?
http://www.irf.com/technical-info/appnotes/an-978.pdf


Ansonsten immer gerne die Seite vom Lothar zitiert:
http://www.lothar-miller.de/s9y/categories/40-Layout-Schaltregler
Versuche Deine Strompfade mal selbst zu lokalisieren und zu minimieren.


Jens Heuschkel schrieb:
> SD hat einen Pullup. Damit ist der Leistungsteil vor ungewolltem
> Schalten geschützt

100k ist sicher etwas hochohmig, da der uC < 50kOhm als pull ups hat.
Für SD ist das OK, die HIN und LIN könntest Du mit 10k nach Masse 
beschalten.

Jens Heuschkel schrieb:
> Aus dem StepUp Regler auf der Platine
Das ist kein StepUp Converter, sondern ein 30mA Charge Pump Converter.
Ich habe starke Bedenken, dass die 30mA für die drei Gatetreiber plus 
gate-Ströme reichen werden!!! Rechne doch mal durch, wieviel Strom für 
jedes Gate benötigt wird.

von Jens H. (juehv)


Lesenswert?

Hi

Michael O. schrieb:
> Aktuell ist der Massepin 2 (COM) auf Signal "GND" nicht mit der Masse
> des 48V Kreises "48V Motor -" verbunden. So floaten die LOW Side
> Gateanschlüsse. Wenn die HighSide geschaltet wird, kannst Du einen
> fetten Kurzschluss bekommen.

Naja die beiden Spannungen kommen aus dem selben Netzteil... das meinte 
ich mit "global" identischer Masse. Wenn es das Verhalten aber 
Maßgeblich beeinflussen sollte, kann ich noch ein Stück Leiterbahn 
einfügen.

Ok das mit den Strompfeden habe ich nun verstanden (glaub ich) nur sehe 
ich bei einer einseitigen Platine nicht viel Potential das zu verbessern 
:(

Michael O. schrieb:
> 100k ist sicher etwas hochohmig, da der uC < 50kOhm als pull ups hat.
> Für SD ist das OK, die HIN und LIN könntest Du mit 10k nach Masse
> beschalten.

Ich kann auch ein 10k nehmen. Den sinn der HIN und LIN Pulldowns versteh 
ich aber nicht ganz ... sobald ich den SD aktiviere habe ich doch einen 
definierten zustand an H / L und davor ist der gesamte Treiber doch eh 
deaktiviert.
Also ich streube mich nicht die 6 Wiederstände mehr da rein zu löten .. 
ich würds nur gerne vollständig verstehen.

Michael O. schrieb:
> Das ist kein StepUp Converter, sondern ein 30mA Charge Pump Converter.
> Ich habe starke Bedenken, dass die 30mA für die drei Gatetreiber plus
> gate-Ströme reichen werden!!! Rechne doch mal durch, wieviel Strom für
> jedes Gate benötigt wird.

Ok dann erzeuge ich die 12V mit einem Schaltregler aus den 48V. Der 
schafft 1A das sollte reichen.

von Michael O. (mischu)


Lesenswert?

Jens Heuschkel schrieb:
> Naja die beiden Spannungen kommen aus dem selben Netzteil... das meinte
> ich mit "global" identischer Masse. Wenn es das Verhalten aber
> Maßgeblich beeinflussen sollte, kann ich noch ein Stück Leiterbahn
> einfügen.

Das hatte ich mir schon gedacht, ist aber mords gefährlich! Grund sind 
die parasitären Induktivitäten der Zuleitungen sowie die Eigenschaft der 
MOSFETs, dass sie quasi leistungslos angesteuert werden. Beim Schalten 
der Halbbrücke hast Du es mit springenden Potentialen und transienten 
Verschiebungsströmen zu tun. Eine lange Leistungsmasse hat eine 
nennenswerte Induktivität, so dass ein dI/dt zu einem deutlichen dU/dt 
führt. Das Bezugspotential für das Gate des FET ist immer der Source des 
Bauteils. Über eine lange Kabelführung überlagerst Du aber dein 
Ansteuersignal mit dem Spannungsabfall (sowohl ohmsche als auch 
induktive Anteile)über der Leistungsmasse. So kann es passieren, dass 
beim Abschalten dein MOSFET möglicherweise wieder eingeschaltet wird 
(halbbrückenkurzschluss möglich) oder schnell mal Gatespannungen >20V 
auftreten, die das Gate zerstören.

Jens Heuschkel schrieb:
> Ich kann auch ein 10k nehmen. Den sinn der HIN und LIN Pulldowns versteh
> ich aber nicht ganz ... sobald ich den SD aktiviere habe ich doch einen
> definierten zustand an H / L und davor ist der gesamte Treiber doch eh
> deaktiviert.
> Also ich streube mich nicht die 6 Wiederstände mehr da rein zu löten ..
> ich würds nur gerne vollständig verstehen.

Es könnte noch passieren, dass Du SD korrekt einschaltest aber die 
Ausgänge für die Halbbrücke als Eingänge mit PullUp beschaltest.
Naja, alle Softwareeventualitäten kann man eh nicht abfangen.

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.