Forum: Mikrocontroller und Digitale Elektronik 5 Mosfets, 5 verschiedene Verhaltensweisen


von Daniel F. (mcnanuk)


Angehängte Dateien:

Lesenswert?

Hallo ich mal wieder.

Nachdem ich schon einige Hürden genommen habe, und dachte endlich bin 
ich fertig, kommt mir meine tolle selbst zusammengelötete Platine 
dazwischen.

Den Schaltplan habe ich angehängt und höffe er ist lesbar. Ist nämlich 
mein Erster. Aus den Datenblatt habe ich noch ein Schaltbild 
hinzugefügt.

Ich ich will an Port1 eine PWM laufen lassen. Ich habe eine Frequenz 
gefunden ( durch ausprobieren ) in der der Motor der daran hängt maximal 
gedrosselt ist. Hier ist das Problem, dass der MOSFET doch seeeehr warm 
wird.

An den anderen Ports sollen Schnellschaltventile hängen. Diese benötigen 
21,6 - 26,3 V, also sollte die Spannung am Port doch mindestens unter 21 
V fallen, wenn ich das MOSFET mit 0V Input versorge.
Source ist GND.

Am Port selbst ligt dann von VCC der 24 V Spannungsquelle an.


Geschalten wird der MOSFET durch meinen AVR in einem einfachen Programm 
(zum Testen)
1
int main( void )
2
{
3
  unsigned char buffer[30];  
4
5
6
  //Port C als Ausgang um Mosfets zu steuern.
7
  DDRB = 0b11111111; // Alle auf Ausgang
8
    
9
 
10
    sei();
11
12
13
  while(1){
14
PORTB |= (1<<PB6);
15
  
16
  PORTB |= (1<<PB5);
17
  PORTB |= (1<<PB7);
18
  PORTB |= (1<<PB0);
19
  PORTB |= (1<<PB1);
20
21
  delay_ms(10000);
22
23
  PORTB &= ~(1<<PB5);
24
  PORTB &= ~(1<<PB6);
25
  PORTB &= ~(1<<PB7);
26
  PORTB &= ~(1<<PB0);
27
  PORTB &= ~(1<<PB1);
28
29
  delay_ms(10000);
30
  
31
  
32
  }
33
}
34
35
//  Enhanced delay-routine (wait) as as the standard delay routine (_delay_ms) is not able to delay
36
//  more than 17 ms maximum as of the used 8-bit-timer (depending on used crystal)
37
void delay_ms(uint16_t period)   //delay routine (milliseconds)
38
{
39
  for(unsigned int i=0; i<=period; i++)
40
    _delay_ms(1);
41
}
Dabei habe ich dann gemessen und notiert, was ich gemessen habe. Die 
Messwerte stehen oben an den Ports.
Jetzt fällt auf, dass das erste und das letzte Mosfet einwandfrei 
funktionieren. Das lies mich stutzig werden. Ich habe alle Leitungen 
nochmals geprüft, Lötstellen gechecked, und mehrfach getestet.

Zu den Mosfets:

PORT 1 und 2 
http://www.datasheetcatalog.com/datasheets_pdf/B/U/K/1/BUK100-50GL.shtml
Port 3 und 4 
http://www.datasheetcatalog.com/datasheets_pdf/I/R/F/Z/IRFZ44N.shtml
Port 5 
http://www.datasheetcatalog.com/datasheets_pdf/I/R/F/Z/IRFZ48N.shtml

Ihr fragt warum verschiedene... naja ich hatte mal mehrere Buks, 2 sind 
durchgebrannt, und mein Hardwarehändler hatte nur noch wenige Mosfets. 
Man nimmt was mna kriegen kann. Aber an den Typen kann es eigentlich 
nicht liegen, jedenfalls wenn ich die Theorie verstanden habe.
Alle sind stark genug, um nicht kaputt zu gehen bei meinem 24 V 
Netzteil. welches maximal 3150 mA liefert.

Der DCDC Wandler sollte auch keinen Einfluss haben. Bleibt also die 
Frage, wo ist der Fehler, und ist da überhaupt einer. Kann es sein, dass 
die Mosfets an Port 2,3,4 kaputt sind, und wenn, warum schalten meine 
Ventile dann trotzdem bei Port 2, aber nicht bei 3 und 4.

Ich bin völlig verwirrt, und hoffe mir kann geholfen werden. Wenn Ihr 
Infos aus den Datenblättern braucht, suche ich die gerne raus. Oder Ihr 
schaut selbst.

von Alexander V. (avogra)


Lesenswert?

Hallo Daniel,

Was ich an dem Schaltplan vermisse/nicht ganz versteh: Was ist genau 
dieser Block "5V Pullups", bzw. wozu brauchst du Pullup-Widerstände, 
wenn du die Mosfets ansteuern willst? Mein erster Gedanke wäre, die 
Gates direkt an den µC zu hängen, evtl. mit kleinen Vorwiderständen 
(sind ja alle Logic-Level). Falls der µC zu wenig Strom bringt (sind ja 
nicht gerade die kleinsten), brauchts Mosfettreiber, entweder fertig 
gekauft oder selbst gebaut. Bei mir würden da aber in keinem Fall 
Pullups vorkommen !?

Das Board ist leider auch nicht sehr aussagekräftig, mit nur einem 
GND-Anschluss :) Könntest du das nochmal zeichnen, so dass nix 
vereinfacht ist? Da reicht ja dann auch einer der fünf Kanäle.

Wie hast du die Ausgänge denn gemessen? waren da schon die jeweiligen 
Verbraucher dran, oder sind das messungen bei offenen Ausgängen? in 
letzterem Fall hängt der Drain ja quasi in der Luft, wenn ein Mosfet 
abgeschaltet ist. Da kann also alles mögliche rauskommen. U.u. 
funktioniert also alles einwandfrei, sobald ne Last dran is.

Zum Motor:
Ist ne Freilaufdiode vorhanden? (-> Forumssuche und [[Motoransteuerung 
mit PWM]])

Wie hoch ist denn diese Frequenz? Wenn du schnell schaltest (sry für 
dehnbaren Begriff) und das Umladen des Gates vergleichsweise lang 
dauert, z.B. wegen Ansteuerung über µC-Ausgänge oder Pullup-Widerstände 
(!?) dann ist der Mosfet auch relativ lang im Linearbetrieb, also 
Halbleitend. Da wird jede Menge Energie im Mosfet verbraten.

Und noch n paar kleine Tips zum Schaltplan-Zeichnen: In der Regel 
zeichnet man positive Versorgungsspannung nach oben. Damit würde ein 
Großteil der Überkreuzungen wegfallen. Und was auch hilfreich ist: Du 
kannst allgemeine (Versorgungs-)Leitungen, auch problemlos durch Labels 
ersetzen. Gerade GND
wird in der Regel nicht zu allen Bauteilen gezogen, sondern durch

   |
-------
 -----
  ---

dargestellt. Dass die in der Realität miteinander verbunden sind, ist 
dann jedem klar, erhöht aber die Lesbarkeit erheblich.

So, viel zu spät! Gibt bestimmt noch tausend Sachen, aber so richtig 
denkfähig bin ich heut nicht mehr ^^

Grüße, Alex

von MaWin (Gast)


Lesenswert?

> Ich bin völlig verwirrt,

Merkt man

> also sollte die Spannung am Port doch mindestens unter 21 V
> fallen, wenn ich das MOSFET mit 0V Input versorge.

Ein MOSFET invertiert. Er sperrt, wenn er 0V Input bekommt,
also wird die Spannung am Drain steigen.

Dein BUK an Port2 ist vermutlich kaputt, oder erkennt 
Überstromsituation, also Kurzschluss.

Bei den anderen MOSFETs 3-5 frage ich mich, wie du auf das dünne Brett 
kommst, daß MOSFETs, bei denen in Datenblatt ein Rdson für Ugs von 10V 
angegeben ist, und nur so ein Rdson und keiner für Ugs von 4.56V oder 
2.7V, sich irgendwie mit 5V ansteuern lassen.

Es sind KEINE LogicLevel MOSFETs. Nur die BUK sind welche.

Es ist ZUFALL ob die IRFZ bei 5V leitend sind oder nicht.

Nur der an Port 5 schafft es zufälligerweise.

von Daniel F. (mcnanuk)


Lesenswert?

Ich will mal langsam antworten, damit ich nix durcheinander bringe.

> wozu brauchst du Pullup-Widerstände, wenn du die Mosfets ansteuern willst?
Hier ist vielleicht ein Begriffsproblem. Ich meine damit eigentlich nix 
anderes als den PortB meines µC (siehe Code). An den Pins liegen 0 V 
oder 5 V an.

Widerstände... hmmm. Ich habe das Board halbfertig bekommen, und es hat 
mit den Ports 1,2,3 auch schon in einem anderen Projekt funktioniert. 
(Port 4 und 5 habe ich ergänzt und einen kaputten Mosfet an Port 3 
ersetzt.)

>Das Board ist leider auch nicht sehr aussagekräftig, mit nur einem
>GND-Anschluss
Das sollte nur aufzeigen, dass ich den GND des Netzteils mit dem des 
Boards kurzgeschlossen habe. Diese 5V Pullup Geschichte sitzt auf dem 
Board.

>Wie hast du die Ausgänge denn gemessen? waren da schon die jeweiligen
>Verbraucher dran,
Ja, waren angeschlossen


>Dein BUK an Port2 ist vermutlich kaputt, oder erkennt
>Überstromsituation, also Kurzschluss.
Gerade dieser funktioniert einwandfrei...

>Bei den anderen MOSFETs 3-5 frage ich mich, wie du auf das dünne Brett
>kommst, daß MOSFETs, bei denen in Datenblatt ein Rdson für Ugs von 10V
>angegeben ist, und nur so ein Rdson und keiner für Ugs von 4.56V oder
>2.7V, sich irgendwie mit 5V ansteuern lassen.
Naja ich habe jedenfalls das obere Datenblatt, und dort in den 
Schaubildern drunter steht fein 4,5 V VDS. Hier ist mir wohl ein Fehler 
unterlaufen, und dem Händler hau ich eines aufs Dach.
jedenfalls erklärt sich mir jetzt einiges, und ich bin froh, dass es ein 
so einfach behebbarer Fehler ist. Mittwoch bekomme ich neue Buk100.

von Daniel F. (mcnanuk)


Angehängte Dateien:

Lesenswert?

Hier nochmal der überarbeitete Schaltplan

von MaWin (Gast)


Lesenswert?

> und dort in den Schaubildern drunter steht fein 4,5 V VDS.

Und da steht auch deutlich drunter:

-> Typical

Und typical heisst: Die nötige Ansteuerspanung kann um Faktor 2 
schwanken, so wie die Vgs(th) weiter oben im Datenblatt von 2 bis 4V. 
Die Kurve kann also auch bei 3.1V oder 6.3V liegen.

von MaWin (Gast)


Lesenswert?

> Schnellschaltventile
> Ja, waren angeschlossen

Dir ist schon klar, daß induktive Lasten eine Freilaufdiode brauchen, 
wie MBR1645 ? Sonst sind die MOSFETs beim ersten Abschalten defekt.

> Hier ist das Problem, dass der MOSFET doch seeeehr warm

BUK100 sind nicht für PWM, der hat ja einen eingebauten 4k Vorwiderstand 
der das Umschalten langsam macht. Also nicht über 25 Hz gehen, sonst 
musst du dich um erhebliche Umschaltverluste nicht wundern.

von Jiro (Gast)


Lesenswert?

Das Programm was du da hast ist keine PWM, höchstens ne PWM mit festen 
Puls/Pulspausen Verhältnis und veränderbarer Frequenz, ich Wette das die 
Frequenz so hoch ist das die Fet´s sozusagen im Linearbetrieb laufen und 
das dann ein paar fet´s warm werden und aus der Reihe tanzen ist dann 
normal.

von Daniel F. (mcnanuk)


Lesenswert?

wichtig, das oben ist nicht mein PWM Code :)
Das ist nur zum Testen der Mosfets geschrieben.


>> Schnellschaltventile
>> Ja, waren angeschlossen
>
> Dir ist schon klar, daß induktive Lasten eine Freilaufdiode brauchen,
> wie MBR1645 ? Sonst sind die MOSFETs beim ersten Abschalten defekt.

Hmmm nein ist mir nicht klar. Irgendwie wundert mcihd as ganze jetzt 
auch. Ich habe das gleiche System schonmal in einem Projekt verwendet. 
Und da hat alles prima geklappt. Induktive Lasten ... woran erkenne ich, 
dass es sich bei den Ventile um solche handeln ?
Ich habe Mosfets bisher als "Schalter" angesehen. 5V dran, Schalter ein, 
0V Schalter aus.

>> Hier ist das Problem, dass der MOSFET doch seeeehr warm
>
> BUK100 sind nicht für PWM, der hat ja einen eingebauten 4k Vorwiderstand
> der das Umschalten langsam macht. Also nicht über 25 Hz gehen, sonst
> musst du dich um erhebliche Umschaltverluste nicht wundern.
Auch das hat schon funktioniert, die Pumpe ist gedrosselt. Ich musste 
die PWM Einstellungen erraten, da das Datenblatt der Pumpe keine Angaben 
enthält.

von Spule (Gast)


Lesenswert?

Alles mit gewickeltem Kupfer(draht) ist eine Induktivität.
Eine einzelne Leiterschleife wird in Deinem Fall nix schlimmes bewirken.

Eine Motorwicklung, Relais Zugmagnet... etc ist schon eine "richtige" 
Induktivität.

Die erzeugen beim Abschalten Gerne ein der Urspannung entgegengesetzte 
Spannung die den geflossenen Strom weitertreiben will.

Dein FET ist beim Abschalten aber Zufällig hochohm,
es kommt zum Überschlag.

von Spule (Gast)


Lesenswert?

Ersetze Kupfer(draht) durch Leiter.

von Daniel F. (mcnanuk)


Lesenswert?

Entschuldigung wenn ich da nachfrage.... Das heisst, wenn ich also die 
Mosfets benutze wie ich das vorhabe, also als ich sags mal 
umgangssprchlich: Schalter für die Ventile, kann es bei bestimmten 
Anwendungen zur zerstörung des Mosfets kommen.

Bei meinen Ventilen wird das nicht der Fall sein, aber die Pumpe könnte 
da Schaden produzieren ?
Es ghandelt sich bei der Pumpe um eine Membran, Vakkuumpumpe der firma 
ESSKA. Leider steht zu dem produkt nix, ausser den Betriebsbedingungen 
im Datenblatt.

Wie kann ich denn mein Problem lösen.

Also wie bereits gesagt: Ich habe diese Pumpe die ich drosseln will, und 
4 Ventile die ich in meinem Code öffnen und schliessen will.
Die Ventile sind Schnellschaltventile von Festo.
Sind Mosfets die falsche herangehensweise? Sind die BUKs falsch? Die 
Buks habe ich zu anfang bekommen, die anderen gehen auf meine Kappe, bzw 
auf die Kappe des händlers, der meinte das die die gleichen 
Eigenschaften hätten wie die BUKs, ich habs leider erstmal geglaubt.

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.