Forum: Mikrocontroller und Digitale Elektronik MOSFET ohne Widerstand direkt am µC-Ausgangspin schalten?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Third E. (third-eye)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

Siehe Beispielschaltung im Anhang.

Wenn ich mit einem Mikrocontroller einen kleinen N-Kanal-MOSFET schalten 
will, schalte ich immer einen Widerstand (R1) zwischen µC-Pin und dem 
Gate des Mosfets.
Außerdem vom µC-Pin nach GND auch noch einen hochohmigen Widerstand 
(R2).

R1 begrenzt die Belastung des µC-Pins durch die Gate-Kapazität.
R2 sorgt dafür, dass der Mosfet defintiv aus ist, wenn der µC im 
Reset-Zustand ist und deshalb seine Pins hochohmig sind.

Jetzt meine Frage: Ich habe es schon extrem oft gesehen, dass die Gates 
von Kleinleistungsmosfets direkt mit uC-Pins geschaltet werden. Nicht 
nur in Bastelprojekten, sondern auch in Produkten, die in Großserie 
millionenfach gebaut werden.

Ich finde das aber alles andere als elegant, wenn es wegen der hohen 
Flankensteilheit des Ausgangssignals des uCs bei jedem Schalten eine 
nadelförmige Stromspitze gibt.
Wenn genau in dem Moment der ADC im µC aktiv ist, könnte der Wert etwas 
daneben liegen, weil VDD bzw. VSS des uCs verschoben ist.

Dass z.B. beim Flashen des Mirkocontrollers die Mosfets zufällige 
Schaltzustände haben, kann ja je nach Anwendung egal sein. Sollen doch 
ein paar LED's flackern. Das sehe ich ein, dass zur Kosteneinsparung R2 
weggelassen werden könnte.

Was meint ihr dazu?

Grüße,
Third Eye

von c-hater (Gast)


Lesenswert?

Third E. schrieb:

> Jetzt meine Frage: Ich habe es schon extrem oft gesehen, dass die Gates
> von Kleinleistungsmosfets direkt mit uC-Pins geschaltet werden. Nicht
> nur in Bastelprojekten, sondern auch in Produkten, die in Großserie
> millionenfach gebaut werden.

Ja, vollkommen normal.

> Ich finde das aber alles andere als elegant

Weil du halt keine Ahnung hast. Kommt auf das konkrete Problem an. Ein 
generelle "Eleganz" gibt es hier nicht und auch eigentlich nirgendwo in 
der Elektronik. Die ist immer ein Kompromiss.

Man muss einfach rechnen, dann kann man entscheiden, ob ein Widerstand 
nötig oder kontraproduktiv ist und (falls nötig) wie groß der sein muss.

That's all. RECHNEN, nicht dummlabern.

von Jens G. (jensig)


Lesenswert?

Third E. schrieb:
> Ich finde das aber alles andere als elegant, wenn es wegen der hohen
> Flankensteilheit des Ausgangssignals des uCs bei jedem Schalten eine
> nadelförmige Stromspitze gibt.

Das stört den µC nicht, und geht auch nicht kaputt, solange man nicht 
mit hoher Freuqnez schaltet (also viel Umschaltleistung umgesetzt wird).

> Wenn genau in dem Moment der ADC im µC aktiv ist, könnte der Wert etwas
> daneben liegen, weil VDD bzw. VSS des uCs verschoben ist.

Da könnte was dran sein, aber das Problem haste auch, wenn auch in 
geringerem Maße, auch mit Gate-R. Und da heutzutage die µCs vorwiegend 
aus CMOS bestehen, die bei jedem internen Umschaltvorgang 
Querstromspitzen erzeugen (also MHz-weise), ist das Problem der 
Mosfet-Ansteuerung eigentlich kein extra Problem mehr.
Zumal man die Auswirkungen der Laststromspitzen auf die Eingänge durch 
elegantes Leiterplattendesign wieder ziemlich gut eliminieren kann ...

von Axel S. (a-za-z0-9)


Lesenswert?

Third E. schrieb:
> Ich habe es schon extrem oft gesehen, dass die Gates
> von Kleinleistungsmosfets direkt mit uC-Pins geschaltet werden.
...
> Ich finde das aber alles andere als elegant, wenn es wegen der hohen
> Flankensteilheit des Ausgangssignals des uCs bei jedem Schalten eine
> nadelförmige Stromspitze gibt.

Die gibt es bei jedem angeschlossenen CMOS-Gatter. Was meinst du was die 
Eingänge von Gattern sind? Auch bei internen Verbindungen. Ja, sogar 
offene Pins haben eine Kapazität gegen GND.

Außerdem wirkt schon der Bahnwiderstand des (internen) MOSFET am Ausgang 
strombegrenzend. Bei 30..50Ω ist die Stromspitze überschaubar. Und bei 
einem kleinen MOSFET wie BSS138 oder 2N7002 sind das ca. 25pF. Da ist 
die Stromspitze auch nicht lang.

> Wenn genau in dem Moment der ADC im µC aktiv ist, könnte der Wert etwas
> daneben liegen, weil VDD bzw. VSS des uCs verschoben ist.

Dagegen helfen Abblockkondensatoren. Die intern umzuladenden Kapazitäten 
machen viel größere Rippleströme. Bei CMOS-Logik ist oftmals eine 
interne Kapazität angegeben, zur Berechnung der dynamischen 
Stromaufnahme. Die liegt zwar für Logik nur im pF Bereich. Aber ein µC 
ist auch wesentlich komplexer.

Und wenn ganz besonders wenig Störungen auf dem ADC sein sollen, legt 
man den µC während der Wandlung eben schlafen. Da schaltet dann auch 
nix. OK, außer wenn die Hardware schaltet, z.B. ein Timer. Aber dann 
kann man die Wandlung auch so einplanen, daß da nichts gerade schaltet.

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

Na Tatsache ist ganz ohne Gate-Widerstand wird der µC im Umschaltmoment 
außerhalb seiner SOA betrieben. Ob er das aushält oder nicht mal 
dahingestellt, schön finde ich es nicht, schon gar nicht wenn man eine 
PWM mit ein paar kHz vom µC am FET sehen möchte.

Die Datenblätter vom ATTiny24 und ATMega1284 sagen z.B. 40mA pro I/O Pin 
als absolute Maximalgrenze, darüber kann der µC Schaden nehmen. Das 
bedeutet, daß man an 5V nicht unter 125 Ohm gehen sollte, sonst wird 
dieser Strom im Umschaltmoment überschritten.

von c-hater (Gast)


Lesenswert?

Ben B. schrieb:

> Na Tatsache ist ganz ohne Gate-Widerstand wird der µC im Umschaltmoment
> außerhalb seiner SOA betrieben.

Das ist ganz und garnicht "Tatsache". Es kann natürlich so sein, muss es 
aber nicht.

> Die Datenblätter vom ATTiny24 und ATMega1284 sagen z.B. 40mA pro I/O Pin
> als absolute Maximalgrenze, darüber kann der µC Schaden nehmen. Das
> bedeutet, daß man an 5V nicht unter 125 Ohm gehen sollte, sonst wird
> dieser Strom im Umschaltmoment überschritten.

Du kannst nicht "dynamisch" denken... Wo die Stromflanken extrem steil 
werden, werden auch die Induktivitäten der Leiter immer relevanter, die 
selbige dämpfen. Mit deiner ohmschen Gleichung aus Physik Klasse 5 oder 
so kommmst du bei solchen Betrachtungen nicht sehr weit...

von Ben B. (Firma: Funkenflug Industries) (stromkraft)


Lesenswert?

> aus Physik Klasse 5
Immerhin habe ich's im Vergleich zu anderen Leuten bis dahin geschafft, 
die trotz großer Mühen seitens des Kindergartens nicht mal größer oder 
kleiner gelernt haben.

Ein Argument wird nicht dadurch besser, daß man so herumpoltert.
Merk Dir das mal!

von c-hater (Gast)


Lesenswert?

Ben B. schrieb:

> Ein Argument wird nicht dadurch besser, daß man so herumpoltert.

Das solltest vor allem du dir merken. Man stellt keine unzulässig 
verallgemeinerten Behauptungen auf (und hält die auch noch für ein 
Argument im Bezug auf ein konkretes Problem). Das kann und wird 
Gegenwind auslösen.

Und das ist auch gut so.

von Wolfgang (Gast)


Lesenswert?

Third E. schrieb:
> Siehe Beispielschaltung im Anhang.

Mit dem R2 tust du dir bestimmt keinen Gefallen, wenn mehr als eine 
20mA LED-Funzel dranhängt.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Ben B. schrieb:
> Na Tatsache ist ganz ohne Gate-Widerstand wird der µC im Umschaltmoment
> außerhalb seiner SOA betrieben.
Man sollte dabei natürlich in Betracht ziehen, dass die Flanke am Pin 
nicht in 0ps ansteigt. Und wenn man da von realistischen 5-10ns ausgeht, 
dann ist es ein Leichtes, die besagten 25pF Gatekapazität ohne jegliche 
Überlastung des Ausgangstransistors umzuladen.

> außerhalb seiner SOA betrieben.
Und eben diese SOA ist ein Diagramm für dauerhafte Betriebszustände. Man 
kann auch bei "normalen" Transistoren die SOA kurzzeitig im 
Umschaltvorgang verlassen. Für solche kurze Überlastpulse gibt es dann 
andere Diagramme.

: Bearbeitet durch Moderator
von Dieter (Gast)


Lesenswert?

Da sind schon Bugs im Schaltbild. Der Widerstand R1 müßte am Gate 
liegen. In seinem Fall mit der kleinen Last und niedrigen 
prozessorgleichen Spannung von 5V, so dass keine großen Stromspitzen 
durch die parasitäre Gate-Drain-Kapazität zu erwarten sind, könnte man 
den Widerstand ausnahmsweise weglassen.

von Wolfgang (Gast)


Lesenswert?

Dieter schrieb:
> Da sind schon Bugs im Schaltbild. Der Widerstand R1 müßte am Gate
> liegen.

Begründung?

Die Position von R1 ist völlig wursch. R1 hat sowieso nur eine 
Bedeutung, solange der Pin den Pegel nicht aktiv irgendwohin zieht. 
Gegenüber R2 ist R1 so groß, dass die Position für die Ableitung der 
Gateladung egal ist.
Einzig die Dimensionierung von R2 ist Murks.

von Jan V. (janv)


Lesenswert?

Axel S. schrieb:
> Bei 30..50Ω ist die Stromspitze überschaubar.

Nicht unbedingt (R2).
Hatte letztens in einem AVR Design mit FDS4935 Mosfet 90 Ohm verwendet 
und bei einem angesteuerten 8x8 RGB Punktmatrix Display störende Blitzer 
die ich auf kurzzeitige Überlastung der AVR Ausgänge + dadurch 
ausgelöste Störungen zurückführen würde. Mit 180 Ohm war das Problem 
behoben. Der R1 ist hier bei den zeitlich minimal uninitialisierten 
Pinpegeln komplett überflüssig.

von Steve van de Grens (roehrmond)


Lesenswert?

Jan V. schrieb:
> Hatte letztens in einem AVR Design mit FDS4935 Mosfet 90 Ohm verwendet
> und bei einem angesteuerten 8x8 RGB Punktmatrix Display störende Blitzer
> die ich auf kurzzeitige Überlastung der AVR Ausgänge + dadurch
> ausgelöste Störungen zurückführen würde. Mit 180 Ohm war das Problem
> behoben.

Klingt für mich eher nach einem Softwarefehler. Deine Widerstände bilden 
zusammen mit den Eingangs-Kapazitäten der Transistoren Tiefpässe, was 
sie träger macht. Kurze Impulse (die dein Programm erzeugt) werden jetzt 
schlicht ignoriert.

Ist nur eine Vermutung.

von Jan V. (janv)


Lesenswert?

Steve van de Grens schrieb:
> Klingt für mich eher nach einem Softwarefehler.

Lass es theoretisch klingen wie es will,
das Problem war praktisch mit den größeren Widerständen und ohne 
jegliche Softwareänderung behoben.

von Steve van de Grens (roehrmond)


Lesenswert?

Jan V. schrieb:
> das Problem war praktisch ... behoben.

Das glaube ich dir. Ich wollte nur anregen, die eigentliche 
Problemursache zumindest zu untersuchen, wenn du dafür Zeit hast.

von Jan V. (janv)


Lesenswert?

Steve van de Grens schrieb:
> wenn du dafür Zeit hast

Daran mangelt es in der Tat.
Nachdem aber alle Impulse mit Bedacht erzeugt werden und sicher 
funktionell nötig sind würde für mich ein Softwareproblem ausscheiden.

von Peter D. (peda)


Lesenswert?

Jan V. schrieb:
> das Problem war praktisch mit den größeren Widerständen und ohne
> jegliche Softwareänderung behoben.

Nö, das war nur ein Würg-Around, hat aber nicht die Ursache behoben.

Ich hatte auch mal auf dem STK500 2 Befehle in der falschen Reihenfolge. 
Bei 8MHz waren das 125ns Leuchtdauer, im Dunkeln gut zu sehen.
Nach Korrektur der Software blieb die LED aus.

Befehle werden nicht in 0ns ausgeführt, sondern brauchen Zeit. Ghosting 
beim Multiplexen hat fast immer Softwarefehler als Ursache.

von Falk B. (falk)


Lesenswert?

Third E. schrieb:

> Wenn ich mit einem Mikrocontroller einen kleinen N-Kanal-MOSFET schalten
> will, schalte ich immer einen Widerstand (R1) zwischen µC-Pin und dem
> Gate des Mosfets.

Falsch, das ist bei dir R2 und der ist mit 10k viel zu groß. Man braucht 
ihn nicht.

Beitrag "Re: Transistor, 1A, 4MHz Schaltfrequenz"

> Außerdem vom µC-Pin nach GND auch noch einen hochohmigen Widerstand
> (R2).

Das ist R1.

> R1 begrenzt die Belastung des µC-Pins durch die Gate-Kapazität.

Braucht man nicht.

> R2 sorgt dafür, dass der Mosfet defintiv aus ist, wenn der µC im
> Reset-Zustand ist und deshalb seine Pins hochohmig sind.

Ja.

> Jetzt meine Frage: Ich habe es schon extrem oft gesehen, dass die Gates
> von Kleinleistungsmosfets direkt mit uC-Pins geschaltet werden. Nicht
> nur in Bastelprojekten, sondern auch in Produkten, die in Großserie
> millionenfach gebaut werden.

Weil das normal ist.

> Ich finde das aber alles andere als elegant, wenn es wegen der hohen
> Flankensteilheit des Ausgangssignals des uCs bei jedem Schalten eine
> nadelförmige Stromspitze gibt.

So what! Es funktioniert. Jeder MOSFET-Treiber arbeitet so!

> Wenn genau in dem Moment der ADC im µC aktiv ist, könnte der Wert etwas
> daneben liegen, weil VDD bzw. VSS des uCs verschoben ist.

Könnte. Ist es in den allermeisten Fällen aber nicht. Erstens, weil kein 
ADC verwendet wird, zweitens, weil zu dem Zeitpunkt kein ADC mißt und 
drittens weil der Koppelmechanismus meistens auch eher schwach ist.

> Dass z.B. beim Flashen des Mirkocontrollers die Mosfets zufällige
> Schaltzustände haben, kann ja je nach Anwendung egal sein. Sollen doch
> ein paar LED's flackern.

Nö. Denn der MOSFET kann auch in einen Zwischenzustand kommen, wo er nur 
halb eingeschaltet ist und damit viel Verlustleistung erzeugt und im 
Zweifelsfall abbrennen kann. Und wenn am MOSFET anderes Dinge als nur 
bischen Blinki-Blinki hängt, will man mal sicher KEINE undefinierten 
Schalthandlungen!

> Das sehe ich ein, dass zur Kosteneinsparung R2
> weggelassen werden könnte.

Schlechte Idee. So teuer waren Widerstände nie und sind es im 
SMD-Zeitalter, wo so ein Ding kaum mehr als 1 Cent kostet, erst recht 
nicht.

Ergo. Die schnellste und PREISWERTESTE Art etwas zu tun, ist es gleich 
richtig zu tun.

von Peter D. (peda)


Lesenswert?

Einen schlappen BSS138 habe ich noch nie mit Gatewiderstand gesehen, Das 
ist nur was für Leute, die Gürtel und Hosenträger gleichzeitig tragen.

Ein Gatewidestand kommt bei mir nur rein, wenn der FET getaktet wird 
(PWM) und ordentlich Bums (>1A) steuern soll.

von Mosfet (Gast)


Lesenswert?

Ich erinnere mich an eine LTspice Simulation die am Gate 1,5A zeigte. 
Vielleicht simuliert mal jemand die oben gezeigte Schaltung. Ich habe 
hier momentan kein Spice Zugriff.

von Falk B. (falk)


Lesenswert?

Ben B. schrieb:
> Na Tatsache ist ganz ohne Gate-Widerstand wird der µC im Umschaltmoment
> außerhalb seiner SOA betrieben. Ob er das aushält oder nicht mal
> dahingestellt, schön finde ich es nicht, schon gar nicht wenn man eine
> PWM mit ein paar kHz vom µC am FET sehen möchte.
>
> Die Datenblätter vom ATTiny24 und ATMega1284 sagen z.B. 40mA pro I/O Pin
> als absolute Maximalgrenze,

Gleichstrom!

> bedeutet, daß man an 5V nicht unter 125 Ohm gehen sollte, sonst wird
> dieser Strom im Umschaltmoment überschritten.

Der wird auch überschritten, wenn man an einem IO-Pin 10 CMOS-Eingänge 
mit je 10pF und diversen anderen Streukapazitäten angeschlossen hat. Die 
Frage ist schlicht, wie lange die Be/Überlastung besteht. Denn die IOs 
begrenzen ihren Kurzschlußstrom selber.

Die meisten Leute überschätzen die Belastung durch die Gatekapazität. 
Rechne mal aus, wie hoch die Treiberleistung des IO-Pins bei 10kHz und 
einem mittleren, LL MOSFET ist. Du wirst staunen.

von N. M. (mani)


Lesenswert?

Meine analogen Zeiten sind schon etwas länger vorbei, aber:

Third E. schrieb:
> R1 begrenzt die Belastung des µC-Pins durch die Gate-Kapazität.
> R2 sorgt dafür, dass der Mosfet defintiv aus ist, wenn der µC im
> Reset-Zustand ist und deshalb seine Pins hochohmig sind.

R1 ist der Pulldown, R2 der Längswiderstand. Also gerade andersrum hätte 
ich gesagt.

Third E. schrieb:
> Wenn ich mit einem Mikrocontroller einen kleinen N-Kanal-MOSFET schalten
> will, schalte ich immer einen Widerstand (R1) zwischen µC-Pin und dem
> Gate des Mosfets.

Wenn ich mir das so anschaue liegt doch bei Reset des uC um die 2,5V am 
Gate des MOSFET (wenn ich von 100k Pullup ausgehe, bei kleinerem Ruc 
dementsprechend mehr). Zwar in ersten Moment begrenzt durch den 
Längswiderstand, aber im DB reden sie bei den VGS Werten von 1,7 Ohm 
RDSon bzw 0,4A IDS.

von Falk B. (falk)


Lesenswert?

Lothar M. schrieb:
>> außerhalb seiner SOA betrieben.
> Und eben diese SOA ist ein Diagramm für dauerhafte Betriebszustände.

Nö. Schau dir mal die SOA von Transistoren an. Und Überraschung, 
Logik-ICs haben Transistoren in den Ausgangsstufen! Da sollte man schon 
zwischen Gleichstrom und kurzen Pulsen unterscheiden.

> Man
> kann auch bei "normalen" Transistoren die SOA kurzzeitig im
> Umschaltvorgang verlassen.

Jain. Man kann, sollte aber eher nicht.

> Für solche kurze Überlastpulse gibt es dann
> andere Diagramme.

Eben, die SOA! ;-)

https://www.mikrocontroller.net/articles/FET#SOA_Diagramm

von Falk B. (falk)


Lesenswert?

Steve van de Grens schrieb:
>> das Problem war praktisch ... behoben.
>
> Das glaube ich dir. Ich wollte nur anregen, die eigentliche
> Problemursache zumindest zu untersuchen, wenn du dafür Zeit hast.

In der Tat. denn nur allzu oft werden Fehler durch solche Änderungen nur 
verdeckt, nicht aber behoben. Wenn dann daraus noch allgemeine Aussagen 
getroffen werden, die einfach falsch sind, wird's endgültig Mist.

von Falk B. (falk)


Lesenswert?

Peter D. schrieb:
> Einen schlappen BSS138 habe ich noch nie mit Gatewiderstand gesehen, Das
> ist nur was für Leute, die Gürtel und Hosenträger gleichzeitig tragen.
>
> Ein Gatewidestand kommt bei mir nur rein, wenn der FET getaktet wird
> (PWM) und ordentlich Bums (>1A) steuern soll.

Auch dann ist der nicht zwingend. Rechne nach.

https://www.mikrocontroller.net/articles/Treiber#Treiberleistung

von Falk B. (falk)


Lesenswert?

Mosfet schrieb:
> Ich erinnere mich an eine LTspice Simulation die am Gate 1,5A zeigte.

Wenn deine Quelle 1,5A liefern kann. Das kann außer kräftigen 
MOSFET-Treibern aber niemand, erst recht keine Logikausgänge.

> Vielleicht simuliert mal jemand die oben gezeigte Schaltung. Ich habe
> hier momentan kein Spice Zugriff.

Wozu? Das hier sagt mehr und ist real gemessen.

https://www.mikrocontroller.net/topic/goto_post/2519459

von Peter D. (peda)


Lesenswert?

Jan V. schrieb:
> Der R1 ist hier bei den zeitlich minimal uninitialisierten
> Pinpegeln komplett überflüssig.

Zu beachten ist aber, daß beim Programmieren die Zeit deutlich länger 
ist, als beim Einschaltreset. Eh so ein ATmega2560 geflasht ist, kann 
das dauern. Man muß also nachrechnen, ob der FET im Analogbetrieb 
überlastet werden kann.

Beim Multiplexen reicht es, wenn nur eine Seite Gateableitwiderstände 
bekommt, die andere darf ruhig floaten.

von Wolfgang (Gast)


Lesenswert?

Third E. schrieb:
> Wenn genau in dem Moment der ADC im µC aktiv ist, könnte der Wert etwas
> daneben liegen, weil VDD bzw. VSS des uCs verschoben ist.

Dann fehlt die Entkopplung von AVDD und du hast ein Problem mit deinem 
Massekonzept.

von Falk B. (falk)


Lesenswert?

Beitrag "Re: AVR -> IRLML6401 mit wieviel PWM Frequenz ohne Treiber möglich?"

Ein im Vergleich RIESIGER IRLZ34N hat ebenfalls ca. 15nC (typisch) bzw. 
25nC (max) bei 5V!

von Jan V. (janv)


Lesenswert?

Peter D. schrieb:
> Ghosting beim Multiplexen hat fast immer Softwarefehler als Ursache.

Mit den höheren Widerständen war noch ein zweites Problem behoben 
nachdem die Anzeige in regelmäßigen Abständen aus ging (BLANK Anschluß 
des LED Driver CAT4016 mit wechselndem Pegel, obwohl durch den AVR 
eigentlich konstant auf Masse gezogen). Also hier deutet wirklich alles 
auf ein Hardware-Problem.

von Wolfgang (Gast)


Lesenswert?

Falk B. schrieb:
> Wozu? Das hier sagt mehr und ist real gemessen.
>
> https://www.mikrocontroller.net/topic/goto_post/2519459

Die Diskussion war doch, ob mit oder ohne.
Hast du auch vergleichende Messungen mit einem Gatevorwiderstand von 
z.B. 50Ω. Was sagt das Klingeln beim Abschalten dazu.

von Peter D. (peda)


Lesenswert?

Falk B. schrieb:
> Auch dann ist der nicht zwingend.

Das meinte ich auch nicht. Nur, daß ich darunter nichtmal darüber 
nachdenke.
Neben Laststrom ist auch die Lastspannung, PWM-Frequenz, sowie die 
Lastform (ohmsch, induktiv, kapazitiv) mit einzubeziehen.

Auch kann es bei hohen Leistungen eh sinnvoll sein, den MC-Stromkreis 
vom FET zu entkoppeln. Z.B. den Strom des 400V Zwischenkreises möcht ich 
nicht mit über den GND des MC fließen lassen.

von m.n. (Gast)


Lesenswert?

Wolfgang schrieb:
> Hast du auch vergleichende Messungen mit einem Gatevorwiderstand von
> z.B. 50Ω.

Der Vorwiderstand von rund 50 - 60 Ohm ist schon im ATtiny bzw. ..mega 
eingebaut.

von Axel S. (a-za-z0-9)


Lesenswert?

Jan V. schrieb:
> Axel S. schrieb:
>> Bei 30..50Ω ist die Stromspitze überschaubar.
>
> Nicht unbedingt (R2).

Keine Ahnung was du damit sagen willst.

Ich meinte: die MOSFETs die die Ausgangsstufe des Pins am AVR bilden, 
haben einen erheblichen R_ds_on. Ca. 30..50Ω, abhängig von der 
Betriebsspannung. Bei 5V weniger als bei 3.3V [1].

Und dieser Widerstand wird beim Auf- oder Entladen der Gate-Kapazität 
wirksam. Rechnen wir mit 40Ω und 25pF (da wird es gerade rund) dann 
kommen wir auf eine Zeitkonstante von ungefähr 1ns.

Der Mosfet wird je nach Thresholdspannung nach ca. 1.5 bis 2ns leiten. 
Spätestens nach 3ns kann man den Umladevorgang als abgeschlossen 
betrachten. So lange dauert also die "Stromspitze". Und ihr Spitzenwert 
ist Vcc/40Ω. Bei 5V also 125mA.

Eine solche Stromspitze hat man immer. Sogar bei einem offenen Pin, 
bei dem nur eine Streukapazität von vielleicht 1pF wirksam ist.

> Hatte letztens in einem AVR Design mit FDS4935 Mosfet 90 Ohm verwendet
> und bei einem angesteuerten 8x8 RGB Punktmatrix Display störende Blitzer
> die ich auf kurzzeitige Überlastung der AVR Ausgänge + dadurch
> ausgelöste Störungen zurückführen würde. Mit 180 Ohm war das Problem
> behoben.

Wie bereits gesagt wurde, ist das eine Fehldiagnose. Ghosting ist 
praktisch immer ein Softwareproblem. Deine "Lösung" verdeckt den Fehler 
nur, statt ihn zu beheben.


[1] man kann den Wert gut abschätzen, indem man die Steigung der Kurve 
im Datenblatt für U_OH vs. I_OH bzw. U_OL vs. I_OL betrachtet. Der 
jeweilige Wert gilt für den oberen bzw. unteren Transistor der 
Ausgangsstufe. Die müssen nicht gleich sein, bei einem AVR sind sie es 
aber.

: Bearbeitet durch User
Beitrag #7233303 wurde vom Autor gelöscht.
von Jan V. (janv)


Lesenswert?

Axel S. schrieb:
> ist das eine Fehldiagnose. Ghosting ist praktisch immer ein
> Softwareproblem. Deine "Lösung" verdeckt den Fehler nur, statt ihn zu
> beheben.

Was für eine kühne Behauptung ohne je die Software gesehen zu haben. Daß 
eine Schaltung durch unzulässige Stromspitzen gestört werden könnte 
scheint Dir und manch anderem wohl nicht in den Sinn zu kommen. Im 
übrigen sprach ich nicht von Ghosting sondern recht unspezifisch von 
Lichtblitzern sowie einem handfesten Problem auf der BLANK Leitung. In 
Kenntnis meiner Software (und sooo schwierig ist die Steuerung einer 8x8 
Punktmatrix ganz sicher nicht) bleibe ich beim Hardware-Fehler und 
unterdimensionierten Widerständen.

von Peter D. (peda)


Lesenswert?

Jan V. schrieb:
> recht unspezifisch von
> Lichtblitzern sowie einem handfesten Problem auf der BLANK Leitung.

Dann zeig dochmal den konkreten Schaltplan. Bisher weiß keiner, wo Du 
Widerstände eingebaut hast und was sonst so drauf ist, außer einem 
CAT4016.

Es können aber auch Layoutfehler sein. Z.B. sollte man keine hohen 
Ströme über die GND-Plane unter dem MC führen. Ich benutze daher 
verschiedene GND-Planes, die an einer definierten Stelle verbunden sind. 
In Altium gibt es dafür Net-Ties.

Ein Gatewiderstand bewirkt vorrangig ein Verschleifen des Drainstromes. 
Es ist daher naheliegender, daß die Spitzen des Laststromes reduziert 
werden, als daß der Gateumladestrom den MC stört.

Besonders störend ist bei steilen Schaltflanken die interne 
Sourceinduktivität des FET. Bei manchen FETs wird daher ein 2. 
Sourceanschluß für den Steuerstrom herausgeführt (Kelvin Source).
https://www.elektroniknet.de/halbleiter/leistungshalbleiter/neues-gehaeuse-fuer-leistungs-mosfets-verringert-schaltverluste.119664.html

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Jan V. schrieb:
> Also hier deutet wirklich alles auf ein Hardware-Problem.
In solchen Fällen nehme ich dann immer ein Oszilloskop, dann hat die 
Raterei und "Symptomdeuterei" ein Ende. Zuallerst muss das physikalische 
Signal am IC-Pin passen -> Oszi. Dann muss das Protokoll passen -> LA. 
Und wenn das alles passt, dann ist es die Software.

Axel S. schrieb:
> Eine solche Stromspitze hat man immer. Sogar bei einem offenen Pin, bei
> dem nur eine Streukapazität von vielleicht 1pF wirksam ist.
Und es wäre sehr überraschend, wenn ein µC-Ausgang allein durch 
Umschalten zwischen high und low kaputt ginge, wenn z.B. 25cm offene 
Leitung am Pin hängen. Die hat nämlich je nach Verlegung und Lagenaufbau 
durchaus auch mal einige pF.

> Eine solche Stromspitze hat man immer.
Sie ist aber zum Glück nur ein paar ns lang. Und wenn ein BUZ11, der mit 
30A spezifizert ist, für kurze Zeit das vierfache aushält, dann wird 
wohl ein Ausgangstreiber im µC für 1000mal kürzere Zeit auch mal ein 
wenig mehr als die 40mA aushalten, die er sogar im Dauerbetrieb 
aushalten würde.

von Bernd (Gast)


Lesenswert?

Hallo,
beim PIC16F684 z.B. sind die dynamischen Kennwerte bei einer kapazitiven 
Belastung mit 50 pF beschrieben. Das wird bei anderen µC nicht viel 
anders sein. Soviel hält der µC also ohne Wiedersand schon mal aus, 
sonst würde es der Hersteller nicht so angeben.

Bernd

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Lesenswert?

Bernd schrieb:
> beim PIC16F684 z.B. sind die dynamischen Kennwerte bei einer kapazitiven
> Belastung mit 50 pF beschrieben.
Nice.

> Das wird bei anderen µC nicht viel anders sein.
Beim ATmega48/88/328 ist für einen simplen Ausgangspin ausser der 
statischen Belastbarkeit Vol und Voh gar nichts beschrieben, keine 
Schaltzeiten, keine dynamische Belastbarkeit. Lediglich tertiäre 
Informationen in der TWI-Beschreibung deuten an, dass 400pF bei 400kHz 
den Pin wohl nicht kaputt machen:
"The number of devices that can be connected to the bus is only limited 
by the bus capacitance limit of 400 pF"

Damit müssen diese Pins wenigstens für 20ns mehr als 40mA aushalten.

Und ehrlich gesagt: ich habe mit einem testweisen "Kurzschluss" mit ca. 
100mA Dauerstrom auch nach über 12 Wochen so einen IO-Pin nicht kaputt 
bekommen. Der hatte hinterher unverändert seine Schalt- und 
Ausgangspegel.

: Bearbeitet durch Moderator
von Dieter (Gast)


Lesenswert?

Wolfgang schrieb:
> Begründung?

Baut man so nur ein bei Open-Collector-Ausgangen mit internem 
pnp-Ausgangstransistor. Ansonsten 470k-1M Zwischen Gate und 
Source/Masse.

Aber weglassen nur zur Kosteneinsparung bringt oft mehr Problem ein nach 
Murphy's Laws. Setzt aber auch voraus, dass die Ausgänge des µC 
Kurzschlussfest sind sowohl auf Masse, wie auch auf Vss. Es sind schon 
deshalb LiAkku mit der Elektronik abgefackelt.

von Jens G. (jensig)


Lesenswert?

Jan V. schrieb:
> Peter D. schrieb:
>> Ghosting beim Multiplexen hat fast immer Softwarefehler als Ursache.
>
> Mit den höheren Widerständen war noch ein zweites Problem behoben
> nachdem die Anzeige in regelmäßigen Abständen aus ging (BLANK Anschluß
> des LED Driver CAT4016 mit wechselndem Pegel, obwohl durch den AVR
> eigentlich konstant auf Masse gezogen). Also hier deutet wirklich alles
> auf ein Hardware-Problem.

Ja, auf schlechte Masseführung, fehlende Abblock-Cs - halt das übliche 
...

von Jens G. (jensig)


Lesenswert?

Dieter schrieb:
> Wolfgang schrieb:
>> Begründung?
>
> Baut man so nur ein bei Open-Collector-Ausgangen mit internem
> pnp-Ausgangstransistor. Ansonsten 470k-1M Zwischen Gate und
> Source/Masse.

Das ist keine Begründung ...

von Stefan F. (Gast)


Lesenswert?

Mosfet schrieb:
> Ich erinnere mich an eine LTspice Simulation die am Gate 1,5A zeigte.

Dann war die Simulation falsch, so viel Strom liefert der 
Mikrocontroller never ever. Es sind wohl eher ca. 50mA.

von Jan V. (janv)


Lesenswert?

Jens G. schrieb:
> Ja, auf schlechte Masseführung, fehlende Abblock-Cs - halt das übliche
> ...

Besser passende Widerstände ersetzen weder das eine noch das andere.

Nachdem das Projekt längst funktioniert wie es soll fehlt mir jetzt die 
Motivation weiteren Aufwand zur Diskussion desselben zu treiben.

Lothar M. schrieb:
> In solchen Fällen nehme ich dann immer ein Oszilloskop, dann hat die
> Raterei und "Symptomdeuterei" ein Ende.

wäre sicher noch eine letzte Option gewesen, ich bevorzuge als Praktiker 
aber erstmal das Spiel mit verschiedenen Bauteil-Werten. Und siehe da, 
Treffer.

von H. H. (Gast)


Lesenswert?

Jan V. schrieb:
> ich bevorzuge als Praktiker
> aber erstmal das Spiel mit verschiedenen Bauteil-Werten. Und siehe da,
> Treffer.

Blindes Huhn.

von Jan V. (janv)


Lesenswert?

Lothar M. schrieb:
> Und ehrlich gesagt: ich habe mit einem testweisen "Kurzschluss" mit ca.
> 100mA Dauerstrom auch nach über 12 Wochen so einen IO-Pin nicht kaputt
> bekommen

Das ist ja tröstlich zu wissen und unterstreicht das allgemeine Image 
der AVRs, recht robuste Teile zu sein.
Dennoch gelingt es, so einen Ausgang ordentlich zu stören und bei 
eigentlich softwaremäßig Low-Pegel dennoch auf High zu bringen. Ich 
konnte bei dem beschriebenen Fehler meines BLANK Signals nur nicht 
herausfinden ob das letztlich irgendwie extern erzwungen war oder die 
Input/Output Logik im AVR "aus dem Takt" geriet. Ein interessantes 
Phänomen daß ich so noch nie hatte.

H. H. schrieb:
> Blindes Huhn.

Ja etwas blind schon, aber mit begründetem Verdacht 😉

: Bearbeitet durch User
von Wolfgang (Gast)


Lesenswert?

Dieter schrieb:
> Wolfgang schrieb:
>> Begründung?
>
> Baut man so nur ein bei Open-Collector-Ausgangen mit internem
> pnp-Ausgangstransistor. Ansonsten 470k-1M Zwischen Gate und
> Source/Masse.

Die Frage war nicht, was man tut, sondern warum man den 
Ableitwiderstand deiner Meinung nach nicht genauso gut am Steuereingang 
anschließen kann?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jan V. schrieb:
> Dennoch gelingt es, so einen Ausgang ordentlich zu stören und bei
> eigentlich softwaremäßig Low-Pegel dennoch auf High zu bringen.
Ja das ist einfach, du musst nur mit ausreichend viel Strom einen 
Highpegel an den Pin bringen.
Wenn das aber passiert, dann ist irgendwo ein Designfehler in der 
Hardware drin.

> oder die Input/Output Logik im AVR "aus dem Takt" geriet.
Schließ das einfach mal aus, wenn das Drumrum stimmt (Layout 
Considerations, Blockkondensatoren, usw). Immerhin wurden sicher ein 
paar Milliarden dieser uC verbaut. Und so ein trivialer Fehler hätte 
sich schon lange in einem Errata wiedergefunden.

> Ein interessantes Phänomen daß ich so noch nie hatte.
Ein Oszi ist eigentlich unabdingbar zur Inbetriebnahme eines seriellen 
Busses. Hast du eines? Wenn nein: bald ist Weihnachten.

von Jan V. (janv)


Lesenswert?

Lothar M. schrieb:
> Wenn das aber passiert, dann ist irgendwo ein Designfehler in der
> Hardware drin.

Es findet sich keiner.
Bis auf geänderte Widerstände.

Lothar M. schrieb:
> Ein Oszi ist eigentlich unabdingbar zur Inbetriebnahme eines seriellen
> Busses.

Wär schon vorhanden aber der Informations-Inhalt zu den drei gekoppelten 
CAT4016, SPI angesteuerten LED-Kathodentreibern (die letztlich 2 Stück 
8x8 Displays ansteuern) kann entweder nur passen (was der Fall sein muß 
weil alle LEDs definiert ansteuerbar sind) oder eben nicht (was dann 
nicht so wäre). Bloße Anzeigestörungen müssen andere Ursachen haben und 
die könnten bei Überlastungen aller Art durchaus recht komplexer Natur 
sein. Das unregelmäßige, zeilenweise Nachblitzen kann nur von der 
Mosfet-gesteuerten Seite herrühren.

Die erste Platine (professionell gefertigtes PCB) mit 90 Ohm Mosfet 
Vorwiderständen und den beschriebenen Fehlerphänomenen stünde zu 
Untersuchungen noch zur Verfügung.
Der fehlerfreie Nachfolger unterscheidet sich nur durch einen anderen 
AVR Controller (TINY3216>AVR128DB28), ein paar weniger Drahtbrücken und 
wiegesagt die Widerstands-Werte zu den LED-Anoden Mosfets.

: Bearbeitet durch User
von Dieter (Gast)


Lesenswert?

Jens G. schrieb:
> Das ist keine Begründung ...

Wenn sich mal der niederohmige Widerstand verabschiedet, dann liegt das 
Gate auf unbestimmten Potential. Zum Beispiel Kontaktfehler, 
Überlastung, sei hier zu erwähnen.

von Wolfgang (Gast)


Lesenswert?

Dieter schrieb:
> Wenn sich mal der niederohmige Widerstand verabschiedet, dann liegt das
> Gate auf unbestimmten Potential.

Wenn sich mal der Ableitwiderstand verabschiedet, tut es das genauso - 
in beiden Fällen.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jan V. schrieb:
> Lothar M. schrieb:
>> Wenn das aber passiert, dann ist irgendwo ein Designfehler in der
>> Hardware drin.
> Es findet sich keiner.
Nett. Ein Spruch meines Arztes: "Niemand ist gesund! Bestenfalls wurde 
da nicht gründlich genug untersucht."

Genauso ist es bei elektronischen Schaltungen, die auf wundersame Weise 
nach zufälliger Änderung eines Bauteils auf einmal laufen.

> aber der Informations-Inhalt zu den drei gekoppelten CAT4016, SPI
> angesteuerten LED-Kathodentreibern (die letztlich 2 Stück 8x8 Displays
> ansteuern) kann entweder nur passen (was der Fall sein muß weil alle
> LEDs definiert ansteuerbar sind) oder eben nicht (was dann nicht so
> wäre).
Digitaltechnik ist zuallererst analog. Sie wurde nur der Einfachheit 
halber auf 2 definierte Pegel zurechtgebogen. Und zur Kontrolle ob deren 
Spezifikationen eingehalten sind, nimmt man ein Oszilloskop.

Wir hatten da schonmal so einen Fall, wo es einer im Blindflug geschafft 
hat, seine LED-Anzeige hinzufrickeln:
Beitrag "Re: WS2812b flackern / 3600 LED Matrix"

von Jens G. (jensig)


Lesenswert?

Dieter schrieb:
> Jens G. schrieb:
>> Das ist keine Begründung ...
>
> Wenn sich mal der niederohmige Widerstand verabschiedet, dann liegt das
> Gate auf unbestimmten Potential. Zum Beispiel Kontaktfehler,
> Überlastung, sei hier zu erwähnen.

Ziemlich an den Haaren herbeigezogen. Gut, die Wahrscheinlichkeit dafür, 
daß das Gate wegen einem der beiden Rs floated, hast Du damit halbiert, 
bei einer so gut wie nicht vorhandenen Wahrscheinlichkeit.
Überlastung wäre übrigens ein Zeichen von Konstruktionsfehler - sollte 
also grundsätzlich nicht passieren.

von Dieter (Gast)


Lesenswert?

Jens G. schrieb:
> Überlastung wäre übrigens ein Zeichen von Konstruktionsfehler ...

Oder von sehr sorgfältiger Konstruktion. Mußt das Bauteil gar nicht 
überhitzen. Es reicht, wenn Du die Zahl der Temperaturzyklen des 
Widerstandes durch An- und Abschalten der PWM zum Mosfet maximierst.

von Jan V. (janv)


Lesenswert?

Lothar M. schrieb:
> Ein Spruch meines Arztes: "Niemand ist gesund! Bestenfalls wurde da
> nicht gründlich genug untersucht."

In der Medizin sagt man aber auch: "Wer heilt hat Recht". Der Praktiker 
steht jeder Wahrheit viel näher als es ein Theoretiker jemals sein 
könnte :)

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jan V. schrieb:
> In der Medizin sagt man aber auch: "Wer heilt hat Recht"
Das könnte einfach eine falsche Übersetzung sein: 
https://zengamed.de/wer-heilt-hat-recht-hippokrates-kongressbericht/

Und ganz interessant dazu auch die Betrachtung unter Punkt 4 dort: 
https://kritisch-denken.ch/wer-heilt-hat-recht/

Ich hab es aber nicht so mit "Alternative Heilungsmethoden in der 
Elektronik", da ist mir eine konkrete evidenzbasierte Analyse allemal 
lieber. Aber das kommt wohl daher, dass jeden Tag ein paar zehntausend 
von mir entwickelte Steuerungen wieder korrekt starten und den ganzen 
Tag fehlerfrei laufen müssen und mir wohler ist, wenn ich weiß, warum 
sie das tun...   ;-)

von Peter D. (peda)


Lesenswert?

Jan V. schrieb:
> Dennoch gelingt es, so einen Ausgang ordentlich zu stören und bei
> eigentlich softwaremäßig Low-Pegel dennoch auf High zu bringen.

Bei den PIC war das möglich, wenn man einen Port-Pin modifiziert hat.
Bei AVR und 8051 wird dagegen bei Read-Modify-Write immer das 
Ausgangslatch rückgelesen.
Du kannst zwar mit genügend Strom einen anderen Pegel aufzwingen und auf 
Port-Pins schreiben, nach Wegnahme geht alle Pins des Ports jedoch 
wieder auf den Pegel, den man per Befehl gesetzt hat.
Und die Sonderfunktionen (PWM) benutzen separate Ausgangslatches.

Um beim AVR den Pegel von außen zu ändern, muß man das Read-Modify-Write 
austricksen und explizit die Inputs einlesen.

Ein Kollege hat auch mal einen Defekt im MC vermutet und einen neuen 
einlöten lassen. Dann hat er aber doch noch den Fehler im Programm 
gefunden.

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.