Forum: Mikrocontroller und Digitale Elektronik MOSFET an Microcontroller - IO-Pins rauchen ab


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 Lukas (Gast)


Lesenswert?

Hallo zusammen,

ich bin gerade dabei eine kleine Schaltung zu bauen in Relais beschaltet 
werden sollen (8 Stück).
Da ich welche rumliegen hatte habe ich zur Ansteuerung ein NXP BSH108 
N-MOSFET verwendet. Ein Relais-Kontakt liegt auf 5V, das MOSFET zwischen 
dem Anderen Kontakt und Masse (+Freilaufdiode!). Das Gate habe ich 
direkt an einen IO-Pin von meinem Microcontroller (NXP LPC11C24) 
geklemmt. An dem Gate ist außerdem noch 10k gegen Masse geschaltet 
(damit das Relais im RESET nicht schaltet).

Einen Vorwiderstand am Gate habe ich mir gespart, da
a) die Gate-Kapazität mit 6nC sehr klein ist
b) sehr kleine Schaltfrequenzen zu erwarten sind
c) der MOSFET direkt am µC positioniert ist
d) ich das schon immer so mit dem BSH108 gemacht habe.

Leider ist es nun aber so, dass meine IO-Pins nach der Reihe abrauchen 
(HIGH-Pegel erst 3.3V, dann 0.6V, dann 0.0V). Zunächst habe ich das nur 
an den Pins beobachtet die auch mit einem AD-Eingang gemultiplext sind, 
nun ist aber auch ein anderer ausgefallen.

Hat jemand eine Idee warum das so ist? Sollte das wirklich schon der 
Umladestrom vom Mosfet sein der hier meine IO grillt?

von Wolfgang (Gast)


Lesenswert?

Lukas schrieb:
> Hat jemand eine Idee warum das so ist?

Das Gate ist nicht der mittlere Pin. Das sieht nur im Schaltbild so aus.

von horst (Gast)


Lesenswert?

Schaltung überprüfen

von Joe (Gast)


Lesenswert?

Kann der MOSFET auch von Hand durchgeschaltet werden ?

Prüfe das mal.

von Lukas (Gast)


Lesenswert?

Also, wie man da Ding beschaltet weiß ich. Und das funktioniert auch, 
wenn ich manuell 3V3 aufs Gate gebe schalten die Dinger 1A durch. 
Dasselbe gilt für die 5 Kanäle die NICHT mit einem AD-Kanal gemultiplext 
sind (der eine war ein Fehlalarm - kalte Lötstelle) - hier arbeitet 
alles wie es soll. Nur die Kanäle die mit nem AD gemultiplexed sind sind 
hinüber. Hab man einen MOSFET rausfefluppt, da kommen nur noch 0,7V 
raus.

von horst (Gast)


Lesenswert?

dann hast du wohl selber bewiesen, dass diese Pins nicht die 
erforderliche Leistung bringen können!

von Michael B. (laberkopp)


Lesenswert?

Lukas schrieb:
> Hat jemand eine Idee warum das so ist?

Wie kommst du auf die Idee, daß sich ein BSH108 von den 3.3V eines 
LPC11C24 voll durchsteuern lässt ? Der hat schlechtestensfalls schon 
3.2V Threshold-Voltage.

Ich denke, der BSH108 brennt durch und nimmt dann den uC-Pin mit.

Kontrollieren also ob die BSH108 überhaupt noch funktionieren, und nimm 
nächstens mal Transistoren, die auch bei 2.9V/2.5V schon durchschalten, 
wie IRLML2502

von Lukas (Gast)


Lesenswert?

Michael B. schrieb:
> Lukas schrieb:
>> Hat jemand eine Idee warum das so ist?
>
> Wie kommst du auf die Idee, daß sich ein BSH108 von den 3.3V eines
> LPC11C24 voll durchsteuern lässt ? Der hat schlechtestensfalls schon
> 3.2V Threshold-Voltage.
Ja, im schlechtesten Fall bei -55°C ;-)
Bei 25°C sind es im schlechtesten Fall 2V, normal 1,5V die erreiche ich 
locker. Abgesehen davon wird nur ein Id von 38mA geschaltet.


> Kontrollieren also ob die BSH108 überhaupt noch funktionieren

Jepp, wie gesagt schaltet der prima wenn ich 3,3V dran halte.

> und nimm nächstens mal Transistoren, die auch bei 2.9V/2.5V schon
> durchschalten, wie IRLML2502

Liegt es doch an dem Umladestrom, habe ich damit eine schlechtere Wahl 
getroffen, da die Gate-Kapazität höher ist.

von Ralf D. (rad)


Lesenswert?

Geiz ist geil, wir sparen wo wir nur können - koste uns das Einsparen 
der Gatewiderstände auch gleich den ganzen µP ...

Mann mann mann, wo lernt man heutzutage so ein Hardwaredesign?

von Ulrich F. (Gast)


Lesenswert?

Ralf D. schrieb:
> Mann mann mann, wo lernt man heutzutage so ein Hardwaredesign?
Das ist es nicht!

Es liegt am Denken.

Beispiel:
Erste Annahme, Wahrscheinlichkeit 0,8
Darauf aufbauend, zweite Annahme, Wahrscheinlichkeit 0,8
Nächste Annahme... gleiches Muster

Also:
Dreistufige, logische Gedankenkette, Gesamtwahrscheinlichkeit eines 
Treffers: 50%

Schlussfolgerung:
Ab 3 Stufen wird das Denken unsinnig.
;-)

Sorgfalt und Disziplin können das Problem mildern.

von Lukas (Gast)


Lesenswert?

> Geiz ist geil, wir sparen wo wir nur können - koste uns das Einsparen
> der Gatewiderstände auch gleich den ganzen µP ...
>
> Mann mann mann, wo lernt man heutzutage so ein Hardwaredesign?

Danke, sowas wollte ich jetzt hören. Mir tut weder der µC noch die 
Widerstände weh. Auch habe ich keine Schmerzen ne neue Platine zu 
bestellen. So ist das mit dem Hobby halt. Spaß kost.
In diesem Layout hab ich die Widerstände einfach vergessen, vorgesehen 
war eigentlich ein BC846. Da der Widerstand im Layout aber vergessen 
gegangen ist, hab ich eben (wie zuvor schon am PWM-Output des LPC1758) 
einfach den MOSFET versucht - evtl. könnte man sich ja zunächst die 
Kosten für ein neues Layout sparen. Anscheinend auf diesem Weg keine 
Gute Idee.

> Sorgfalt und Disziplin können das Problem mildern.
Da hast du grundsätzlich recht - als Hobbybastler hab ich dafür leider 
nicht immer Zeit.

von Paul B. (paul_baumann)


Lesenswert?

Lukas schrieb:
> Mir tut weder der µC noch die
> Widerstände weh. Auch habe ich keine Schmerzen ne neue Platine zu
> bestellen. So ist das mit dem Hobby halt. Spaß kost.

Naja -man muß aber nicht mit Macht die Bauelemente kaputtmachen -da 
stecken Arbeitszeit und Mühe von Leuten (und Automaten) dahinter. Mit 
ein wenig Überlegung und ohne zu überstürzen geht's besser.

Lukas schrieb:
> -als Hobbybastler hab ich dafür leider
> nicht immer Zeit.

Bist Du auf der Flucht oder ist das ein Hobby?
;-)

MfG Paul

von Lukas (Gast)


Lesenswert?

;-)

Ein Hobby. Das Problem ist folgendes: Neben Beruf, Familie und Eigenheim 
ist nicht viel Luft. Da hab ich alle 6 Monate mal die Gelegenheit mich 
mit meinem Hobby zu beschäftigen. Da muss man zunächst etwas Zeit 
investieren zu rekapitulieren wo man das letzte mal aufgehört hat. Wenn 
man das mit der nötigen Sorgfalt erledigt um eine 100% Erfolgsgarantie 
zu haben, bleibt ganz schnell keine Zeit mehr um Fortschritt zu 
erzielen... Mal sehen, vielleicht hab ich im Winder ja etwas mehr Zeit 
dafür.


Aber mal zum Topic: kleine MOSFETs ohne Vorwiderstand an µC zu bauen ist 
durchaus keine Seltenheit, auch in kommerziell vertriebener Elektronik - 
ich hab grad das Gefühl ich hätte einen der trivialsten Fehler der 
Elektrotechnik überhaupt begangen. Das der Gate-Umladestrom gerade bei 
größeren MOSFETs und vor allem höheren Schaltfrequenzen ein Problem ist 
weis ich ja. Wie lässt sich beurteilen ob man nun einen Vorwiderstand 
brauch oder nicht?

Wie muss ein Vorwiderstand in meinem Fall für den BSH108 dimensioniert 
sein? Die Berechnung für einen normalen Tansistor ist ja simpel, für 
einen MOSFET tu ich mich da etwas schwer... Gefühlt müssten es so 
300-500Ohm tun. Kann das jemand mit einer Formel untermauern?

von Planlos (Gast)


Lesenswert?

Lukas schrieb:
> Aber mal zum Topic: kleine MOSFETs ohne Vorwiderstand an µC zu bauen ist
> durchaus keine Seltenheit

CMOS ist auch dafür ausgelegt, sonst könnte man CMOS-Ausgänge nicht 
direkt mit CMOS-Eingängen verbinden.

Gate-Widerstand braucht man meistens nur um Schwingungen zu 
dämpfen/verhindern.

Ganz zum Thema zurück: Wie ist das Layout? Lange Leiterbahnschleife 
Gate->IO-Pin->GND->Source?

von Lukas (Gast)


Lesenswert?

Nein, die Leiterbahnen sind zwischen 1 und 6cm lang. Masse ist über eine 
Plane auf der Rückseite ebenfalls ordentlich. Hab auch mal das Scope 
drangehalten, schwingen tut da nix. Ich schau mal ob ich morgen auf der 
Arbeit mal nen Screenshot machen kann.

von Thomas E. (picalic)


Lesenswert?

Lukas schrieb:
> das MOSFET zwischen
> dem Anderen Kontakt und Masse (+Freilaufdiode!)

Das hört sich an, als ob die Freilaufdiode parallel zum FET geschaltet 
wäre!?
Die muss aber parallel zur Relais-Wicklung, also zwischen (+) und dem 
anderen Kontakt! Und natürlich mit (K) an (+).

von oldmax (Gast)


Lesenswert?

Hi
Manchmal hilft es, wenn man den Strom vom Gate mal misst. Du sagst ja 
selbst, das Gate direkt gesteuert schaltet das Relais. aber wie hoch ist 
dein Gate-Strom? Setz da mal an. Ansonsten können wir ja mal weiter 
raten.
gruß oldmax

von Lukas (Gast)


Lesenswert?

Thomas E. schrieb:
> Das hört sich an, als ob die Freilaufdiode parallel zum FET geschaltet
> wäre!?
> Die muss aber parallel zur Relais-Wicklung, also zwischen (+) und dem
> anderen Kontakt! Und natürlich mit (K) an (+).
Und da ist sie auch. Wollte nur erwähnen das ich eine habe. Die Hälfte 
der Relais sind sowieso Halbleiter-Relais, da gibts auch keine Diode.

oldmax schrieb:
> Hi
> Manchmal hilft es, wenn man den Strom vom Gate mal misst. Du sagst ja
> selbst, das Gate direkt gesteuert schaltet das Relais. aber wie hoch ist
> dein Gate-Strom? Setz da mal an. Ansonsten können wir ja mal weiter
> raten.

Hmmm. Ja. Aber wie soll ich den ohne Vorwiderstand vernünftig messen? Es 
kann sich ja nur um den Einschaltstrom handeln, nach dem Umschalten ist 
der Strom beim MOSFET ja 0.

von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

ein Schaltplan könnte helfen.

von Lukas (Gast)


Angehängte Dateien:

Lesenswert?

Da hast du recht. Den muss ich aber grad mal etwas anpassen, sonst 
findet man darauf nichts. Leider hab ich nur die freie Eagle-Version, da 
passt meine Schaltung nur ganz knapp mit viel drücken rein. Deshalb hab 
ich auch die Widerstände vergessen, ist einfach nicht mehr übersichtlich 
genug. Ich hab exemplatisch mal 2 der Relais (1xMechanisch, 1x 
Halbleiter) herausgezogen deren µC-IOs kaputt gegangen sind.

von Der Andere (Gast)


Lesenswert?

Lukas schrieb:
> Hmmm. Ja. Aber wie soll ich den ohne Vorwiderstand vernünftig messen? Es
> kann sich ja nur um den Einschaltstrom handeln, nach dem Umschalten ist
> der Strom beim MOSFET ja 0.

Aber nur wenn es richtig verschaltet ist.
Von nichts gehen deine IO Pins nicht kaputt.
Also hilft immer: messen statt vermuten, wissen statt meinen.

Kein Schaltplan, kein Bild der Platine von oben/unten, also musst du 
halt selbst die Ursache suchen.

von Felix A. (madifaxle)


Lesenswert?

Da das Halbleiterrelais keine Induktionsspannung erzeugt, der Pin am uC 
aber auch kaputt ist, sehe ich derzeit nur die 12V als Ursache. Es 
scheint, als ob die Masseleitung von den Relais oder die Entkopplung der 
12V von den 3V3 unglücklich ist.

Dazu würde aber auch das Layout gebraucht, um das zu beurteilen. Wäre 
hilfreich, wenn du das auch einmal postest. Aber bitte nicht nur einen 
Teil davon, sondern komplett.
Die Lagen bitte einmal übereinander und einmal separat (top/bottom). Als 
PDF wäre wünschenswert.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Gerade, wenn die Gatecharge so klein ist, ist es doch überhaupt kein 
Problem, da Widerstände reinzuhängen. Damit ist sichergestellt, das 
weder der MOSFet auf den MC rückwirkt, noch der MC sich am Ladestrom des 
MOSFet Gate aufhängt.
Und wenn da nur Relais geschaltet werden, ist die Schaltzeit auch kein 
Thema.

von Der Andere (Gast)


Lesenswert?

Nimm den µC mal weg und hänge dein Messgerät im Messbereich Spannung 20V 
an Masse und dein (vermeintliches?) Gate. Was misst du für eine 
Spannung? Ich kenne jetzt die Daten dieses µC nicht, aber die meisten 
halten sogar einen Kurzschluss am I/O Pin aus.
Wenn die abrauchen dann könnten da die 12V der Relaisversorgung 
anstehen.
Wenn du keine Spannung misst, dann stelle das Messgerät auf den 
Strombereich und Messe was für ein Strom zwischen Gate und Masse bzw 
3,3V fliesst.

Das nennt sich systematische Fehlersuche statt probieren und vermuten.
;-)

von Pete K. (pete77)


Lesenswert?

Was sagt der ERC dazu?

von Felix A. (madifaxle)


Lesenswert?

Es könnte auch sein, dass beim Abschalten des MOSFETs über die Kapazität 
Drain-Gate ein hoher Strom in den IO-Pin fließt. Dann kann natürlich 
auch eine Spannung bis zu 12V anliegen. Das kann den dann auch killen.
Daher fummle da einen Widerstand mit z.B. 10K in SMD rein.

: Bearbeitet durch User
von Lukas (Gast)


Lesenswert?

Felix A. schrieb:
> Da das Halbleiterrelais keine Induktionsspannung erzeugt, der Pin
> am uC
> aber auch kaputt ist, sehe ich derzeit nur die 12V als Ursache. Es
> scheint, als ob die Masseleitung von den Relais oder die Entkopplung der
> 12V von den 3V3 unglücklich ist.

Die 12V sind die Versorgungsspannung, daraus werden über einen LT3973 
Schaltregler 5V und von den 5V mit einem ADP2108 3,3V erzeugt. Die 
Spannungen habe ich schon alle auch beim Umschalten und unter Last 
nachgemessen, das sieht alles gut aus.

> Dazu würde aber auch das Layout gebraucht, um das zu beurteilen. Wäre
> hilfreich, wenn du das auch einmal postest. Aber bitte nicht nur einen
> Teil davon, sondern komplett.
> Die Lagen bitte einmal übereinander und einmal separat (top/bottom). Als
> PDF wäre wünschenswert.

Muss heut abend mal schauen ob ich dazu Zeit finde.

von Felix A. (madifaxle)


Lesenswert?

Meinen Post um 8:34 solltest du beherzigen. Und mal ausprobieren.

Schnelle Spannungsänderungen an Kondensatoren führen zu hohen Strömen.

von Peter D. (peda)


Lesenswert?

Matthias S. schrieb:
> Gerade, wenn die Gatecharge so klein ist, ist es doch überhaupt kein
> Problem, da Widerstände reinzuhängen.

Ein Widerstand verschleiert nur den Fehler, es muß auch ohne gehen.

Erst wenn ich die Platine verlasse, sehe ich Schutzwiderstände vor.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Lukas schrieb:
> In diesem Layout hab ich die Widerstände einfach vergessen, vorgesehen
> war eigentlich ein BC846.

Du hast also den Basiswiderstand für den BC846 vergessen, deshalb dann 
einen MosFet eingebaut und hast Dich dann gefreut, dass der 
10k-Pulldown, der für einen bipolaren Transistor gar nicht notwendig ist 
(aber sehr wohl für einen MosFet), schon im Layout vorgesehen war?

Kannst Du Dir irgendwie vorstellen, dass mir diese Räuberpistole 
spanisch vorkommt?

Jetzt sag nicht, Du hättest den Pulldown nachträglich "luftverdrahtet". 
Das hättest Du auch mit dem Basiswiderstand am ursprünglich vorgesehenen 
Transistor machen können.

von Felix A. (madifaxle)


Angehängte Dateien:

Lesenswert?

Man kann das Problem sogar prima simulieren.

Im Anhang die Schaltung. Resultat: je nach Mosfet und nach 
Anstiegs-/Abfallzeit kann der Strom aus dem Controllerpin (V1) größer 
+-20mA werden. Es könnte die Fähigkeit deines Controllers übersteigen.

Ergo: da gehört entweder ein Widerstand rein oder du verlangsamst anders 
die Anstiegs- und Abfallzeiten.

Da ist natürlich ein Fehler im Schaltplan: die SPule wird durch den 
Mosfet direkt an 12V gelegt, was weder Mosfet noch Spule in Realitas 
überleben würden (wenn das Netzteil das hergibt).

: Bearbeitet durch User
von Lukas (Gast)


Lesenswert?

Der Andere schrieb:
> Nimm den µC mal weg und hänge dein Messgerät im Messbereich
> Spannung 20V
> an Masse und dein (vermeintliches?) Gate. Was misst du für eine
> Spannung? Ich kenne jetzt die Daten dieses µC nicht, aber die meisten
> halten sogar einen Kurzschluss am I/O Pin aus.
> Wenn die abrauchen dann könnten da die 12V der Relaisversorgung
> anstehen.
> Wenn du keine Spannung misst, dann stelle das Messgerät auf den
> Strombereich und Messe was für ein Strom zwischen Gate und Masse bzw
> 3,3V fliesst.
>
> Das nennt sich systematische Fehlersuche statt probieren und vermuten.
> ;-)
Ich soll die Gate-Spannung messen, und falls da keine ist (was der Fall 
ist) den Strom messen?? Ich habe gelernt, dass ein Strom nur fließt wenn 
auch eine Spannung da ist... Mit einem Multimeter werde ich den Strom 
hier nicht sehen. Ich denke ich muss mir tatsächlich einen Vorwiderstand 
einbauen und dann mit dem Scope messen.

BTW: Es ist noch kein FET kaputt gegangen. Nur die µC IO.

Frank M. schrieb:
> Jetzt sag nicht, Du hättest den Pulldown nachträglich "luftverdrahtet".
> Das hättest Du auch mit dem Basiswiderstand am ursprünglich vorgesehenen
> Transistor machen können.
Genau so ist es aber. Einen Widerstand zwischen die Beinchen eines SOT23 
zu löten ist sehr viel einfacher als einen zwischen das Pad und das 
Beinchen. Geht alles, ist aber ein ganz schönes gefriemel.

Felix A. schrieb:
> Man kann das Problem sogar prima simulieren.
>
> Im Anhang die Schaltung. Resultat: je nach Mosfet und nach
> Anstiegs-/Abfallzeit kann der Strom aus dem Controllerpin (V1) größer
> +-20mA werden. Es könnte die Fähigkeit deines Controllers übersteigen.
>
> Ergo: da gehört entweder ein Widerstand rein oder du verlangsamst anders
> die Anstiegs- und Abfallzeiten.
Danke für deine Analyse, das wird das Problem sein.

> Da ist natürlich ein Fehler im Schaltplan: die SPule wird durch den
> Mosfet direkt an 12V gelegt, was weder Mosfet noch Spule in Realitas
> überleben würden (wenn das Netzteil das hergibt).

Das widerum versteh ich nicht. Die Spule wird auf 12V gelegt, und das 
soll doch auch genau passieren !? Oder meinst du die Simu?

von Felix A. (madifaxle)


Lesenswert?

In der Simu.

Die Spule hat bei einer DC-Messung 0 Ohm, also ein Kurzschluss. Dein 
relais hat einen Spulenwiderstand von 100 ... 500 Ohm?
In der Simu funktioniert es, weil die Bauteile nicht kaputt gehen. Ist 
aber ansich trotzdem falsch.

Ändert aber nichts am Strom aus dem/in den Controllerpin.

Ich hatte mal den Fall, dass die Spannungsänderung am Drain des Mosfet 
auf das Gate und dann den Controller durchschlug. Das dachte ich hier 
auch zuerst, konnte ich in der Simu mit einem dem BSH108 ähnlichen 
Mosfet aber nicht bestätigen.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Peter D. schrieb:
> Ein Widerstand verschleiert nur den Fehler, es muß auch ohne gehen.

Was heisst 'verschleiert den Fehler'? Immerhin bleibt mir so der 
Austausch eines MC erspart. Das der MOSFet hier auf Kante betrieben wird 
und bei 3,3V nicht voll durchsteuert, ist ja anscheinend die 
Hauptbaustelle, aber trotzdem muss ich nicht jedesmal einen MC opfern.

von Achim S. (Gast)


Lesenswert?

der gezeigte Schaltungsschnipsel sieht nicht so verkehrt aus. Im Layout 
kann allerdings noch was schief gehen, was man dem Schaltplan nicht 
ansieht.

Lukas schrieb:
> Leider ist es nun aber so, dass meine IO-Pins nach der Reihe abrauchen
> (HIGH-Pegel erst 3.3V, dann 0.6V, dann 0.0V). Zunächst habe ich das nur
> an den Pins beobachtet die auch mit einem AD-Eingang gemultiplext sind,
> nun ist aber auch ein anderer ausgefallen.

Wie tritt der Fehlerfall ein? Beim ersten Schalten des Relais? Oder 
kommt nach mehrstündigem Betrieb mal der eine mal der andere FET?
Sind die FETs nach dem Ausfall ebenfalls defekt oder funktionieren die 
weiter? Kannst du den FETs im Normalbetrieb anmerken, dass sie sich 
aufheizen oder bleiben sie völlig kalt?
Da die IOs mit ADC als alternate function stärker betroffen sind: nutzt 
du in deiner Software die ADCs? Kann in der Programmierung irgendwas 
faul sein? Kannst du mal ein Minimalprogramm ausprobieren das nichts 
anderes macht, als alle paar Sekunden das Relais umzuschalten und stirbt 
deine Hardware damit ebenfalls?

Lukas schrieb:
> Danke für deine Analyse, das wird das Problem sein.

glaube ich nicht: das ist ein Simulationseffekt der in der Relität nicht 
so auftritt. Die Begrenzung des Stromfluss durch den IO-Pin und durch 
den Widerstand der Relaisspule wurden nicht mitsimuliert. Selbst wenn 
dieser Ausfall an einem Leistungsrelais vielleicht denkbar wäre, dann 
kann es an deinem Halbleiterrelais mit 533Ohm Vorwiderstand sicher nicht 
zum Fehler führen. Welche (elektromechanischen) Relais benutzt du 
eigentlich?

Matthias S. schrieb:
> Was heisst 'verschleiert den Fehler'?

Irgendwas an deiner Schaltung ist faul (und zwar etwas, was man den 
bisher gezeigtem Schaltplan nicht ansieht). Mit einem Widerstand 
veränderst du zwar wahrscheinlich die Fehlerhäufigkeit, aber trotzdem 
bleibt damit was faul in deiner Schaltung.

von Achim S. (Gast)


Lesenswert?

Matthias S. schrieb:
> Was heisst 'verschleiert den Fehler'?

Ups, die Frage kam ja gar nicht vom TO. Ich denke Peter wollte darauf 
hinweisen, dass der eigentliche Grund für den Ausfall gefunden werden 
muss.

von Felix A. (madifaxle)


Lesenswert?

@Achim

Es ist kein Simueffekt, sondern einer, den man selbst mit Oszilloskop 
und einem kleinen Serienwiderstand messen kann.

Es geht auch nicht um den Strom durch das Relais. Der Controller muss 
den im Bild sichtbaren Strom beim Schalten treiben, und zwar in beide 
Richtungen. Das kann den schon töten. Und wie geschrieben liegt es an 
der Anstiegs-/Abfallzeit.
Ein Erhöhen des Spulenwiderstandes ändert an dem Pin-Strom nichts.

von Ulrich F. (Gast)


Lesenswert?

Erst auf dem Schaltplan habe ich gesehen, dass da ein ARM verwendet 
wird, kein AVR.
Beim AVR hätte ich gesagt: Der steckt das weg.

Aber die ARM sind oft viel empfindlicher.
Auch die Freilaufdiode...
Da könne man vielleicht auch eine schnellere verwenden.

von Felix A. (madifaxle)


Lesenswert?

Der Strom beim auf Masse ziehen wird nicht begrenzt. Oftmals auch nicht 
beim auf 3,3V hochziehen.

von Teo D. (teoderix)


Lesenswert?

Achim S. schrieb:
> Irgendwas an deiner Schaltung ist faul (und zwar etwas, was man den
> bisher gezeigtem Schaltplan nicht ansieht). Mit einem Widerstand
> veränderst du zwar wahrscheinlich die Fehlerhäufigkeit, aber trotzdem
> bleibt damit was faul in deiner Schaltung.

Da is sicher was am Aufbau falsch, 10-Ohm statt 10k, Diode / 
Transistor verkehrt eingebaut, ....

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


Lesenswert?

Felix A. schrieb:
> Im Anhang die Schaltung. Resultat: je nach Mosfet und nach
> Anstiegs-/Abfallzeit kann der Strom aus dem Controllerpin (V1) größer
> +-20mA werden. Es könnte die Fähigkeit deines Controllers übersteigen.
>
> Ergo: da gehört entweder ein Widerstand rein oder du verlangsamst anders
> die Anstiegs- und Abfallzeiten.

Das ist doch Bullshit. Ein µC-Ausgang hat viel mehr als 1R äquivalenten 
Innenwiderstand, eher so 50R. Der begrenzt den Spitzenstrom schon 
allein, ganz ohne Serienwiderstand. Und die Ströme die bei max. Ratings 
stehen, gelten alle für den statischen Fall, nicht für kurze Impulse.

Ganz allgemein können CMOS-Ausgänge kapazitive Lasten bis einige 100pF 
ganz problemlos direkt treiben. Wäre das nicht so, dann dürfte man auch 
keine CMOS-Eingänge an CMOS-Ausgänge schalten.

So lange man kein Trum von Leistungs-MOSFET mit einigen nF Gatekapazität 
anschließt und/oder mit einigen 10kHz umschaltet, braucht man keinen 
Gatewiderstand. Also zumindest nicht als Schutz für den µC. Aus 
EMI-Sicht kann so ein Widerstand natürlich schon sinnvoll sein.

Daß der TE seine µC-Ports zerschießt, liegt ziemlich sicher nicht an 
der Schaltung. Also nicht an der Schaltung die er (im gefühlt 100. Post 
dann endlich mal) gezeigt hat. Vermutlich hat er etwas ganz anderes 
gebaut. MOSFET verpolt. Oder statt dessen Bipolartransistoren bestückt. 
Oder irgendein Fehler im Aufbau. Alles nichts was man per Ferndiagnose 
finden könnte. Und da der TE zu systematischer Fehlersuche unfähig (oder 
doch zumindest unwillig) zu sein scheint, wird er es alleine wohl auch 
nicht rausfinden. PP - persönliches Pech!

von Soul E. (Gast)


Lesenswert?

Lukas schrieb:

> In diesem Layout hab ich die Widerstände einfach vergessen, vorgesehen
> war eigentlich ein BC846.

Dann baust Du halt einen DTC114 oder PDTC143 oder vergleichbares ein. 
Diese Informatiker-Transistoren haben die Basisvor- und 
ableitwiderstände integriert und lassen sich bei moderaten 
EMV-Anforderungen ohne jegliche externe Beschaltung verwenden.

von Peter D. (peda)


Lesenswert?

Lukas schrieb:
> Zunächst habe ich das nur
> an den Pins beobachtet die auch mit einem AD-Eingang gemultiplext sind,

Sind alle VSS, VDD, VSSA, VDDA auch angeschlossen?
Wie ist VDDA mit VDD verbunden?
Wie ist GND mit den FETs verbunden?
Wieviel mA ziehen die Relais an den 12V?
Was schalten die Relais (I, U)?

Wie gesagt, den fehlenden Gatewiderstand halte ich nicht für die 
wirkliche Ausfallursache.

von Lukas (Gast)


Lesenswert?

Peter D. schrieb:
> Lukas schrieb:
>> Zunächst habe ich das nur
>> an den Pins beobachtet die auch mit einem AD-Eingang gemultiplext sind,
>
> Sind alle VSS, VDD, VSSA, VDDA auch angeschlossen?
> Wie ist VDDA mit VDD verbunden?
> Wie ist GND mit den FETs verbunden?
> Wieviel mA ziehen die Relais an den 12V?
> Was schalten die Relais (I, U)?
>
> Wie gesagt, den fehlenden Gatewiderstand halte ich nicht für die
> wirkliche Ausfallursache.

Der µC hat nur VSS, VDD und VCC. Alle VDD sind an 3,3V angeschlossen, 
VCC an 5V. Das mechanische Relais (Finder 34.51.7.012) zieht 38mA, das 
elektrische ca 20mA. Die Relais schalten erst mal gar nichts, da ist nur 
ein Varistor dran.

@Achim S.: Die IOs sind direkt hinüber gewesen.

Axel S. schrieb:
> Und da der TE zu systematischer Fehlersuche unfähig (oder
> doch zumindest unwillig) zu sein scheint, wird er es alleine wohl auch
> nicht rausfinden. PP - persönliches Pech!
Diese Aussage finde ich unfair - hier gibt es 2 mögliche 
Interpretationen:
1. Du denkst, das Problem ist trivial genug das man kein Posting hier 
machen muss. In diesem Fall würde ich dich bitten deine Kommentare in 
Postings zu machen die deinem Fachlichen Anspruch genüge tun.
2. Du hast das Gefühl ich nehme die gegeneben Ratschläge nicht an. Dazu 
habe ich oben erwähnt, dass ich heute Abend schaue ob ich Zeit dazu 
habe. Ein paar Dinge habe ich ja schon getestet, den Rest werde ich 
sicher nachholen.

Teo D. schrieb:
> Da is sicher was am Aufbau falsch, 10-Ohm statt 10k, Diode /
> Transistor verkehrt eingebaut, ....

Dagegen spricht, dass die Schaltung an 5 von 8 Pins problemlos läuft und 
auch die ausgefallenen 3 Relais beim Beschalten der Gates mit 3,3V 
ordentlich arbeiten. Dabei habe ich zumindest mit dem Multimeter über 
einen Widerstand gemessen, dass kein Strom ins Gate fließt (0,3V an 
einem 1K widerstand, das sind 0,3mA die über den 10k Widerstand nach GND 
abfließen).

von Felix A. (madifaxle)


Lesenswert?

Axel S. schrieb:
> Das ist doch Bullshit. Ein µC-Ausgang hat viel mehr als 1R äquivalenten
> Innenwiderstand, eher so 50R. Der begrenzt den Spitzenstrom schon
> allein, ganz ohne Serienwiderstand. Und die Ströme die bei max. Ratings
> stehen, gelten alle für den statischen Fall, nicht für kurze Impulse.

Ich habe im Datenblatt mal nachgelesen. Es gibt in der Tat kein Maximum 
für die Ströme, die aus dem oder in den Pin fließen dürfen (außer die 
100mA maximaler Supplycurrent, die das begrenzen). Das bedeutet aber 
auch, dass ein Strommpuls, z. B. beim Einschalten der 12V die maximal 
erlaubte Spannung am Pin überschreiten und den Latchup auslösen KANN.

Angenommen, die 12V werden vom Netzteil genommen, so kann im ersten 
Augenblick beim Einstecken die 3,3V-Spannung fehlen und über die 
Mosfet-Kapazitäten ein Strompuls kommen, der den Latchup auslöst.

Zum Latchstrom, bei dem der Latchup eintritt, steht hier im DB dazu:
 -0,5*VDD < Vi < 1,5*VDD      max 100mA

Da das Layout unbekannt ist, kann natürlich auch eine gewisse 
Induktivität in Kombination mit der Gatekapazität und der 
Rise-/Fall-time von 3ns bis 5ns zu einem Schwingen führen, das den 
Latchup auslöst.

Ich persönlich glaube nicht daran, dass ein anderer Teil der Schaltung 
hier die Ursache sein kann, da es eben immer nur die Pins vom AD-Port 
betrifft. Ich würde daher vorschlagen, trotzdem einen Serienwiderstand 
zwischen Pin und Mosfet zu schalten. Stirbt der Pin dann nicht (sofort), 
lässt sich per Oszilloskop zumindest messen, was am Pin los ist. Man 
muss ja nicht noch mehr Pins killen und was anderes ist an denen ja 
nicht angeschlossen.

von Lattice User (Gast)


Lesenswert?

Felix A. schrieb:
> Axel S. schrieb:
>> Das ist doch Bullshit. Ein µC-Ausgang hat viel mehr als 1R äquivalenten
>> Innenwiderstand, eher so 50R. Der begrenzt den Spitzenstrom schon
>> allein, ganz ohne Serienwiderstand. Und die Ströme die bei max. Ratings
>> stehen, gelten alle für den statischen Fall, nicht für kurze Impulse.
>
> Ich habe im Datenblatt mal nachgelesen. Es gibt in der Tat kein Maximum
> für die Ströme, die aus dem oder in den Pin fließen dürfen (außer die
> 100mA maximaler Supplycurrent, die das begrenzen).

Dann musst du nochmal hinschauen. Es ist ein Kurzschlussstrom angegeben 
45 mA gegen Masse, 50 mA gegen Vdd. Und das geht dauerhaft solange der 
Gesamtstrom nicht überschritten wird. D.h. der uC kann beliebige 
Kapizitäten laden, halt nur langsam. (Zu langsam für Leistungs-MOSFETs).

Der Pin kann demnach nur durch einen Überspannungsspike kaputgehen, z.B. 
kapzitive Kopplung Gate/Drain oder durch ein schlechtes Layout. Es ist 
durchaus denkbar dass Pins mit Analogfunktion beim LPC einen Tick 
empfindlicher sind.


Felix A. schrieb:
> Der Strom beim auf Masse ziehen wird nicht begrenzt. Oftmals auch nicht
> beim auf 3,3V hochziehen.

Das ist eine Binsenweisheit aus der TTL Steinzeit. Gilt für moderne CMOS 
ICs schon lange nicht mehr.

von Michael B. (laberkopp)


Lesenswert?

Felix A. schrieb:
> Das bedeutet aber
> auch, dass ein Strommpuls, z. B. beim Einschalten der 12V die maximal
> erlaubte Spannung am Pin überschreiten und den Latchup auslösen KANN

Nein. Alle CMOS-Ausgänge begrenzen den Strom schon durch die 
Abschnürcharacteristik der MOSFETs.

Es gibt einen garantierten Strom (beim AVR 20mA) den liefern sie auf 
jeden Fall und einen maximalen Strom (beim AVR 40mA) den liefern die 
auch bei Kurzschluss nie, weil dazwischen der Abschnürbereich des 
MOSFETs einsetzt.
Beim LPC11C24 sind das wohl 4mA und 100mA, also ein weiter Bereich.
Die 100mA kann man nur erreichen, wenn man von aussen eine Spannung 
anlegt, die höher als VCC bzw. niedriger als GND ist, und DANN gibt, daß 
man nicht mehr reinschicken darf. Raus kommen so viel sowieso nicht.

Der LPC11C24 hat 5V tolerante I/O, also keine Diode vom Ausgang zu VCC; 
sondern eine UBEreverse-Strecke vom Ausgang nach Masse. Insgesamt sind 
die normalen I/O recht robust, ESD ist angegeben.

von Lukas (Gast)



Lesenswert?

So, hier nun Layouts mit dem gesammten Schaltplan. Ist wie schon erwähnt 
entwas unübersichtlich, es geht um die Transistoren Q3, Q6 (Top) und Q7 
(Bottom, direkt unterhalb von SW2).
Im Schaltplan ist hier wie schon beschrieben der BC846B vorgesehen, der 
Vorwiderstand ist vergessen worden. Der Klemmwiderstand für den BSH108 
ist einfach händisch zwischen die Pins am SOT23 gelötet.

Ich habe auch versucht zu messen. Habe einen 1 Ohm Widerstand unter das 
Beinchen gelötet und versucht einen Spannungsabfall zu messen. Dabei 
habe ich ein Interessantes Phänomen betrachtet: Sobald ich die Masse des 
Aktiven Tastkopfes an das eine Ende des Widerstands gehalten und dann 
eingeschaltet habe, hat das Relais bein einschalten diverse male 
geschaltet. Leider musste ich den Platz wieder räumen, ich hatte auch 
keine passende Software auf dem Prozessor um die Ausgänge verzögert zu 
schalten, deshalb kein Bild.

Die Spannung am Gate ist aber eher nach einer umgekehrten e-Funktion 
angestiegen. Ich schau ob ich gleich im Keller noch mal was aufnehmen 
kann, hab an meinem aber weder aktive Tastköpfe noch ein Interface für 
Screenshots dran.

von Felix A. (madifaxle)


Lesenswert?

Danke, das ist in Summe ziemlich informativ.

Wenn man sich anschaut, welchen Weg der Strom nehmen muss, um zu deinen 
Molex-RJ45-Buchsen zu kommen, dann ist leider schon gut sichtbar, dass 
deine Masseanbindung für hohe Frequenzen alles andere als niederohmig 
ist.
Und ohne alle Wege verfolgt zu haben, gilt das wohl auch für DC-Ströme.

Im Grunde genommen bedeutet diese Anbindung eine recht hohe 
Induktivität. Kombiniert mit der hohen Schaltgeschwindigkeit (trotz des 
auf 45mA begrenzten Stromes) könnte es zu Schwingungen beim Ein- und 
Ausschalten kommen, die so groß sind, dass es den Pin reißt.
Genaueres wird aber nur mit einem Oszilloskop zu sehen sein.

Ich würde weiterhin vorschlagen, einen Widerstand zwischen Pin und 
Mosfetgate zu schalten. Es ist ja der einzige Pfad, über den der Pin 
zerstört werden kann.

von S. K. (hauspapa)


Lesenswert?

Digitaltransistor wurde schon genannt, möchte das nur noch mal betonen.
>Dann baust Du halt einen DTC114 oder PDTC143 oder vergleichbares ein.

viel Erfolg
hauspapa

von Felix A. (madifaxle)


Lesenswert?

Das könnte auch gehen. Allerdings wird der ebenfalls schnell 
durchgeschaltet, was wiederum zu Schwingern führen könnte so das denn 
die Ursache für die sterbenden Pins ist.

von Lukas (Gast)


Lesenswert?

Felix A. schrieb:
> Genaueres wird aber nur mit einem Oszilloskop zu sehen sein.

Wie genau könnte ich das feststellen? Das Problem mit meinen passiven 
Tastköfen ist ja, das deren Kapazität schon in der Größenordnung meiner 
Gate-Kapazität liegt. Wie messe ich da wo am besten um sowas sehen zu 
können? (Man will ja was dabei lernen...)

Ich denke wenn ich nun eh schon Vorwiderstände einbauen muss werde ich 
die BC846B nehmen, dann spare ich mir den Widerstand nach GND. Ist zwar 
etwas fummelei, aber das kann ich auf der Arbeit unterm Mikroskop 
machen.

@rheydrich: sowas hat hier nix zu suchen.

von Lukas (Gast)


Lesenswert?

Oh, rheydrichs Posting schon weg. Danke.

von Felix A. (madifaxle)


Lesenswert?

Sein Kommentar (und der in nem anderen Thread) wurden schnell gelöscht, 
alles gut, einfach nicht darauf reagieren.

Bezüglich der Tastköpfe wäre das kein Problem. Du hast da vermutlich 
auch einen 1:10-Teiler-Einsteller dran, oder?
Dann Umstellen auf 1:10 und dann vom Tastkopf über einen Vorwiderstand 
(z.B. 1k) an das Gate. Ich würde aber trotzdem dazu raten, ERST einen 
Widerstand zwischen Gate und Controllerpin zu schalten und danach erst 
am Gate (dann ohne Vorwiderstand am Tastkopf) zu messen.

Wenn du über einen 1k am Tastkopf misst, flacht sich die Kurve ab, es 
könnte vielleicht sogar gar nichts zu sehen sein. Aber zumindest 
belastest du den Pin dann nicht noch extra.

Nebenbei bemerkt:
wenn da über den Mosfet zu deinem Pin Spannungsspitzen durchdringen, ist 
der Tastkopf mit seiner Kapazität sogar eine kleine Verbesserung.

von Lukas (Gast)


Lesenswert?

Woher Messe ich am sinnvollsten die Masse? Direkt am MOSFET oder am µC?

von Felix A. (madifaxle)


Lesenswert?

Ach ja, ich würde am GND dicht beim uC messen, da auf dessen Masse die 
vermutete "Problemspannung" bezogen wird.

von W.S. (Gast)


Lesenswert?

Lukas schrieb:
> Aber mal zum Topic: kleine MOSFETs ohne Vorwiderstand an µC zu bauen ist
> durchaus keine Seltenheit, auch in kommerziell vertriebener Elektronik -
> ich hab grad das Gefühl ich hätte einen der trivialsten Fehler der
> Elektrotechnik überhaupt begangen.

Ähemm.. ja.

Wenn du schon so wenig Zeit für's Hobby hast, dann versuche doch zu 
allererst, dein Zeugs zu durchdenken. Das hilft.

So, nun stell dir vor, du hast dein relais (oder SSR) eingeschaltet und 
nun schaltest du es aus. Also Pin auf Low. Was passiert? Nun in beiden 
Fällen schnippt die Spannung am Drain in die Höhe. Beim echten Relais 
mit konstantem Strom, beim SSR mit dem Strom, der durch den 
Vorwiderstand geliefert wird. Sagtest du 30..40 mA? OK, über die 
Gate-Drain-Kapazität landet eben dieser Strom direktemang im µC-Pin - 
allerdings deutlich gemildert durch den Miller-Effekt. Ich vermute mal 
ganz stark, daß dieser Strom auf Dauer für den Low-Ausgangstransistor 
des µC-Pins ein bissel zu viel ist und folglich wird selbiger gebraten. 
Das war's dann. Bei einem Transistor, der eine deutlich niedrigere 
Schwellspannung hat als dein BSH108 fällt dieser Effekt geringer aus und 
die Überlebenschancen für den Pintreiber steigen.

Was kann denn so ein Ausgang nach Low ziehen? Ich schätze, mehr als 8 mA 
sind das nicht, vielleicht 4..6 mA. Bei manchen µC kann man sowas auch 
noch per SW einstellen. Also solltest du deinen Widerstand zwischen Pin 
und Gate so dimensionieren, daß im schlimmsten Falle vielleicht 1 mA 
oder so in's Pin gedrückt wird, meine Schätzung wären 47k oder 
wenigstens 33k.

Also: rechne dir sowas lieber zuvor durch. Ich habe beim Basteln 
übrigens funktionierende Ergebnisse viel lieber als abgerauchte.

W.S.

von Lukas (Gast)


Angehängte Dateien:

Lesenswert?

Also, das Ergebnis sieht schon recht seltsam aus. Aber für mich jetzt 
nicht sonderlich Problematisch. Sieht das wer anders?

von Lukas (Gast)


Lesenswert?

Achso, vergessen: Das ist gemessen zwischen dem Gate von Q1 und dem 
VSS-Pin 41 am µC. Zwischen dem IO vom µC ist ein 1k Widerstand, außerdem 
sind 10k vom µC IO nach Masse geklemmt.

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


Lesenswert?

W.S. schrieb:
> So, nun stell dir vor, du hast dein relais (oder SSR) eingeschaltet und
> nun schaltest du es aus. Also Pin auf Low. Was passiert? Nun in beiden
> Fällen schnippt die Spannung am Drain in die Höhe. Beim echten Relais
> mit konstantem Strom, beim SSR mit dem Strom, der durch den
> Vorwiderstand geliefert wird. Sagtest du 30..40 mA? OK, über die
> Gate-Drain-Kapazität landet eben dieser Strom direktemang im µC-Pin -
> allerdings deutlich gemildert durch den Miller-Effekt.

Ähhm. Nein.

Zum einen ist der der Drainstrom irrelevant, denn der wird ja von der 
Freilaufdiode übernommen. Relevant ist der Sprung der Drainspannung von 
nahezu 0 auf reichlich 12V. Der wird über die Drain-Gate-Kapazität in 
der Tat auf das Gate zurückgekoppelt. Allerdings ist da auch noch die 
Gate-Source-Kapazität. Die bildet mit der Millerkapazität (Drain-Gate) 
einen kapazitiven Spannungsteiler. Es kommen also gar nicht die vollen 
12V am Gate an. Konkret hat der BSH108 C_rss=50pF und C_iss=190pF. 
Teilerfaktor ca. 5. Von den 12V kommen also nur ca. 2.5V am Gate an.
OK, ein bisschen mehr, denn das Gate ist noch nicht ganz auf 0 entladen 
wenn der FET abschaltet. Trotzdem: davon stirbt der LPC nicht.

von Michael B. (laberkopp)


Lesenswert?

Lukas schrieb:
> sieht schon recht seltsam aus.

Nö, normal,
http://electronics.stackexchange.com/questions/66660/why-is-the-gate-charge-curve-miller-plateau-of-mosfets-dependent-on-vds
das ist die Rückkopplung der steigenden bzw. sinkenden Drain-Spannung 
über die ca. 1nF des MOSFETs auf die Gate-Ladung.

Du hast 1us Umschaltzeit.

von Markus (Gast)


Lesenswert?

Könnte es evtl. sein, dass softwareseitig der IO-Pin nicht (immer) aktiv 
als Ausgang geschalten wird? Dass der Ausgang dadurch zeitweise als 
hochohmiger, offener Eingang definiert ist und dadurch zerstört wird.
Nur mal so ein Gedanke.

von Veit D. (devil-elec)


Lesenswert?

Hallo,

ich kenne genügend Leute die Mosfets jeder Art direkt an einen µC 
bammeln. Auch wenn ich das nicht machen würde. Laut Datenblatt zum NXP 
LPC11C24, kann dieser nach + und Masse pro Pin satte 100mA liefern. Und 
der Peakstrom darf ein 25fach höherer sein. Die meisten AVR's können nur 
20-40mA maximal.

Der fehlende Widerstand kann nicht das Problem sein.

Nimm mal den µC raus, bau dir einen Taktgen. den Du mit einen bipolaren 
an den Mosfet hängst mit kleinen Shuntwiderstand zum Gate, messe den 
Spannungsabfall am Oszi darüber und damit indirekt den Strom und guckst 
was da passiert.

Wegen allgemeinen Mosfet Gate Vorwiderstand am µC. Das ist ganz einfach. 
Man muß nur den maximalen Kurzschlussstrom begrenzen. Deine 100mA würde 
ich nun nicht ansetzen. Sagen wir 20mA lassen wir zu. Dein µC wird mit 
3,3V versorgt. Also 3,3V geteilt durch 20mA ergeben 165 Ohm. Nimmste 160 
Ohm zwischen µC Pin und Gate. Fertig.

Edit:
sehe gerade, das von Felix schon eine sinnvolle Antwort kam

von Achim S. (Gast)


Lesenswert?

@Lukas:
deine Oszi-Messungen sehen überhaupt nicht seltsam aus, sondern könnten 
als Lehrbuchbeispiel genutzt werden, wie ein MOSFET-Gate beim Umschalten 
aus einer strombegrenzten Quelle umgeladen wird. Mit den Messungen ist 
nun auch geklärt, dass hohe Spitzenströme aufgrund schneller 
Umladeprozesse nicht fürs Sterben der IOs verantwortlich sind (denn das 
Umladen läuft bei dir nicht im 10ns-Bereich ab sondern im 1µs-Bereich). 
Deshalb nochmal ein paar grundsätzliche Fragen, die auch oben schon 
gestellt aber (soweit ich gelesen habe) noch nicht beantwortet wurden.

Wie tritt der Fehler auf? Immer beim Einschalten der Versorgung (bzw. 
beim vorherigen Ausschalten)? Oder läuft die Schaltung beim Einschalten 
erst mal korrekt los aber verabschiedet sich dann während des Betriebs? 
Oder kannst du den Ausfall an einem bestimmten Betriebsfall festmachen 
(wenn z.B. 2 Relais fast gleichzeitig umgeschaltet werden)?

Kannst du Softwareprobleme völlig ausschließen? Ich habe grade keine 
richtig gute Idee, wie Softwareprobleme aussehen sollten, die zur 
Zerstörung der IOs führen, aber um es auszuschließen wäre eine 
abgespeckte Prüfsoftware nicht schlecht, die stur alle paar Sekunden ein 
Relais umschaltet. Tritt der Fehler dann auch noch auf?

Was für eine Last schalten deine Relais? Kann von dort (trotz der 
galvanischen Trennung) eine Störung auf die IOs zurückkommen? Wird der 
µC auch zerstört, wenn du die Last von den Relais abklemmst und nur die 
Relais selbst umschaltest?

Ulrich F. hat (imho zurecht) angemerkt, dass dass bei einigen ARM die 
IOs empfindlicher sein können als bei diversen althergebrachten 
8bittern. Im Datenblatt des LPC11C22 ist z.B. beschrieben, dass der 
Latchup-Current (der zu einer Zerstörung des IOs führt) mit 100mA gerade 
mal doppelt so groß wie der Kurzschlussstrom (50mA). Dieser Abstand kann 
durch nicht optimales Design der Versorgung evtl. noch verkleinert 
werden. In deinem Design sind die Stützkondensatoren für Vdd nicht 
wirklich optimal. (Ich habe auch schon schlimmere Layouts gesehen, die 
zuverlässig funktionierten, aber Fakt ist dass bei dir die µC sterben 
und dass das eine Ursache haben muss).

Beim µC Pinout sind immer ein Pärchen von Vdd und Vss Pins so 
nebeneinander gelegt, dass gerade ein SMD Keramikkondensator dazwischen 
passt. Genau so solltest du die Stützkondensatoren auch anschließen. Bei 
dir ist zwar der Abstand des Stützkondensators zum Vdd-Pin in Ordnung. 
Der Strom vom anderen Ende des Stützkondensators zum Vss-Pin muss aber 
einen ziemlich langen Weg über "weit entfernte" vias gehen, ehe er am 
Vss-Pin ankommt. Die damit verbundene parasitäre Induktivität könnte zu 
deinem Problem beitragen. Kannst du versuchen, mit einer fliegenden 
Verdrahtung 100nF Kerkos direkt an die Vdd-Vss Pinpärchen des µC 
anschließen und schauen, ob das hilft? Für die fliegende Verdrahtung 
können es bedrahtete Kerkos sein (Anschlussbeine ganz kurz abschneiden 
und direkt auf die Pins des µC löten.)

von Lukas (Gast)


Lesenswert?

Also, leider kann ich dazu keine präzise Aussage machen. Ich habe die 
Schaltung aufgebaut und die Funktion war beim ersten Nachmessen der 
Gate-Spannungen am FET nicht mehr gegeben. Meine Software schaltet die 
Relais (mit kleinem zeitlichen Versatz nacheinander) in der Init-Routine 
alle ein. Diese sind dann mindestens 20ms eingeschaltet bevor sie wieder 
ausgeschaltet werden. Leider kann ich nicht sicher sagen, ob ich vor dem 
Messen noch mal die Spannung weggenommen habe.

Ich habe mir am Scope mal die Spannung am Gate beim Ein- und Ausschalten 
der Spannungsversorgung angesehen. Hin und wieder waren da ein paar 
kleinere Schwinger beim einschalten zu sehen, aber alle im Bereich < 1V. 
Ich gehe dabei davon aus, dass das ein Prellen beim einstecken der Kabel 
war.

Eine Zerstörung duch die geschaltete Last kann ich in jedem Fall 
ausschließen, wie oben erwähnt war und ist da nichts angeschlossen.

Software-Probleme wären jetzt fatal - das ist eher mein Fachgebiet. Ich 
habe aber schon immer beim Initialisieren zusammen mit den Relais auch 
eine LED an Pin1_4(AD4) eingeschaltet, die arbeitet nach wie vor 
tadellos. Wüsste jetzt nicht was ich da noch prüfen könnte.

Alle weiteren vorgeschlagenen Tests werden definitiv in einem weiteren 
zerstörten µC enden - das würde ich mir gerade gern sparen, mir gehen 
die CPUs aus. Und wie lange die Pads den ständigen Wechsel mitmachen 
weiß ich auch nicht.

Ich habe mir nun vorgenommen (wie oben erwähnt), die MOSFETs wieder 
rauszuwerfen und die ursprünglich eingeplanten BC846B mit 
reingefriemeltem 10k Vorwiderstand einzubauen. Damit sollte ich Ruhe 
haben.

Oder hast du noch eine andere Idee wie ich mein Problem zerstörungsfrei 
eingrenzen könnte? Da ich die zerstörenden Spannungen/Ströme noch nicht 
gefunden habe, kann ich bei einer Veränderung der Schaltung/des Layouts 
auch nicht sagen ob die Ursache verschwunden ist wenn ich meine 
Schaltung so präpariere, dass nichts mehr kaputt geht...

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


Lesenswert?

Lukas schrieb:
> Ich habe mir nun vorgenommen (wie oben erwähnt), die MOSFETs wieder
> rauszuwerfen und die ursprünglich eingeplanten BC846B mit
> reingefriemeltem 10k Vorwiderstand einzubauen. Damit sollte ich Ruhe
> haben.

Da der Mechanismus der zur Zerstörung der IO-Pins führt nach wie vor 
nicht aufgeklärt ist, halte ich das für eine gewagte Annahme.

Systematische Fehlersuche sieht anders aus.

von Felix A. (madifaxle)


Lesenswert?

Wie wäre es dann mit derselben Messung an einem Nicht-AD-Pin, die nicht 
kaputt gehen?

Da den Tastkopf direkt dran und dann mal Spannung einschalten (durch 
Einstecken der Kabel, dann Pin toggeln lassen und wieder ausschalten.

Selbe Außenbeschaltung, also wenn der Fehler bei den Mosfets liegen 
sollte, sollte er dort sichtbar sein.

: Bearbeitet durch User
von Achim S. (Gast)


Lesenswert?

Lukas schrieb:
> Oder hast du noch eine andere Idee wie ich mein Problem zerstörungsfrei
> eingrenzen könnte?

ich würde mir speziell den Ein- und Ausschaltvorgang noch genauer 
anschauen (also nicht das Schalten der Relais sondern das 
Ein/Ausschalten der Versorgung): wie laufen welche Versorgungen hoch, 
kommt es währenddessen zu seltsamen Spannungen am IO. Den "typischen" 
Schaltprozess des Relais hast du ja mit dem Oszi angeschaut, und da ist 
nichts dabei, was ich als gefährlich ansehen würde.

Falls es nochmal zu einem Ausfall kommen sollte während du grade dabei 
bist: bitte die Versorgung anlassen und nachfühlen, ob der µC im Bereich 
der IO spürbar aufgeheizt wird (würde ich erwarten, wenn ein Latchup bei 
dem Defekt eine Rolle spielt).

Und fürs nächste Design würde ich dem Layouter vorgeben: die Gesamlänge 
der Leitung zwischen Pufferkondensator und Vss/Vdd Pinpaar darf nicht 
mehr als 8mm betragen.

von Lukas (Gast)


Angehängte Dateien:

Lesenswert?

Na sicher, solange hier Vorschläge zur Problemfindung sind werde ich 
mich da natürlich bemühen. Ich habe nun folgende Messung gemach:

MOSFET BSH108 an Q1 eingebaut, 10k von Gate nach GND, kein 
Vorwiderstand.
Messung zwischen dem Pin P3_1 und VSS-Pin 41 am µC (direkt angelötet).
1: Spannung einschalten
2: MOSFET eischalten
3: MOSGET ausschalten.
Beim Spannung Abschalten ist selbst ein 0,5V Trigger nicht gekommen.

Das Einschalten sieht hier erheblich schlechter aus als bei meiner 
Messung zuhause (mit UND ohne Vorwiderstand). Zu erwähnen ist, dass das 
Scope natürlich vor dem verdinden der Spannung auch keinen Massebezug 
hat.

Das wird mein Problem sein?

von Felix A. (madifaxle)


Lesenswert?

Ein derartiger Puls kann natürlich durch Einstrahlung in die Schleife, 
gebildet aus Tastkopf und Massekabel + Masseklemme kommen. Daher ist 
eine Messung, bei der die Masse mit einem Draht von der Masse an der 
Tastkopfspitze aus ganz kurz verbunden wird, viel besser.

Mich wundert etwas die Aussage, dass das Scope vor dem Verbinden der 
Spannung keinen Massebezug hat. Wie meinst du das genau?

von Lukas (Gast)


Lesenswert?

Ich versorge dne Schaltung ja über die RJ45 Buchse mit Stom. Beim 
Einschalten stecke ich den Stecker da rein. Ich verbinde also nicht nur 
die 12V, sondern auch die Masse gleichzeitig.

Wegen der Schleife beim messen: Das ist sicher richtig. Wenn ich nachher 
noch mal Zeit hab mess ich das noch mal mit nem aktiven Tastkopf den ich 
näher mit einer kleineren Schleife platzieren kann.

von Lukas (Gast)


Angehängte Dateien:

Lesenswert?

So, nun noch mal mit ner Massenadel direkt am Tip vom Probe. Hab ca. 25 
Einschaltvorgänge gemessen, bei der hälfte ist gar kein Trigger 
gekommen, häufiger im Bereich ~5V - das hier war absolutes Max.

von Felix A. (madifaxle)


Lesenswert?

Ich würde durch Abschätzen sagen, dass die Schwingung etwa 260MHz 
Frequenz aufweist (ca. 13 Schwinger in 50ns -> 260 Schwinger in 1us).
Es wird auch nicht geklippt, weil (wie ich jetzt vermute) die 
Schutzdioden da vielleicht nicht schnell genug sind oder das Schwingen 
zwar auf dem Oszilloskop sichtbar ist, aber aus Sicht des 
Mikrocontrollers vielleicht nicht am Pin anliegt.

Dennoch, sollten diese Pulse die IO-Pins tatsächlich treffen, wäre es 
zumindest vorstellbar, dass die AD-Ports da vielleicht deutlich 
empfindlicher reagieren und zerstört werden.

Eine (vor)letzte Prüfung wäre toll: einen Widerstand (z. B. 1k) zwischen 
IO-Pin und Gate vom Mosfet und dann mal am IO-Pin dieselbe Messung 
machen. Wenn dann das Schwingen deutlich kleiner wird, dann ist das ein 
"reales" Schwingen. Bleibt es in dieser Höhe, dann misst du da wohl 
einen anderen Effekt am Pin.

Eine letzte Idee wäre es, mal den Stromanstieg zu begrenzen, indem du 
einen Widerstand mit 1..10Ohm (falls der Stromverbrauch der Schaltung 
klein genug ist) in die +12V-Leitung zum Netzteil schaltest und dann die 
Spannung anlegst. Die hohen Frequenzen, durch das plötzliche Anlegen der 
Spannung, werden so etwas bedämpft, da der Strom nun nicht mehr derart 
hoch werden kann. Daraufhin müssten die Schwingungen weniger/kleiner 
werden.
Vielleicht werden die IO-Pins beim Einschalten zerstört. Abhilfe (wenn 
auch keine sonderlich gute Lösung) wäre dann ein Softstart (sofern 
realisierbar).

: Bearbeitet durch User
von Lukas (Gast)


Lesenswert?

So, hatte noch mal die Gelegenheit zu messen.

Als erstes habe ich eine Messung mit 13,2 Ohm Widerstand in der 12V 
Leitung. Damit habe ich keinen Peak mehr über 2V gemessen, meistens gar 
kein Trigger (0,5V)

Danach habe ich den Widerstand aus der 12V Leitung wieder entfernt, und 
einen 1k Widerstand als Gate-Vorwiderstand eingebaut. Hier waren noch 
Peaks zu sehen, aber nicht mehr in der Höhe wie ohne Vorwiderstand. 
(Max. 7 Volt).

Mit dem Ergebnis hab ich dann mal versucht die Masseführung meines µC zu 
verbessern. Ich habe die VSS-Verbindungen direkt vom Pin an den 
Blockkondensator gelötet um die Wege zu verkürzen. Mit dieser 
Modifikation habe ich dann noch mal gemessen, nun ohne Gate 
Vorwiderstände. Die Peaks die ich jetzt messen kann sind fast genau so 
wie mit dem Gate Vorwiderstand, bei ca. 20 Messungen war kein Peak über 
6V dabei.

von Felix A. (madifaxle)


Lesenswert?

Ich persönlich denke, dass du damit dann die wahrscheinliche Ursache 
gefunden hast. In der Folge sollten da zur Sicherheit die 
Gate-Vorwiderstände (oder Basis-Vorwiderstände, wenn du NPN-Transistoren 
einsetzen willst) eingebaut werden und beim Einschalten der Spannung 
eine Form von Softstart implementiert werden.

Ferner ist aber auch noch wichtig, vorher die Unterschiede besagter 
AD-Pins zu den normalen IO-Pins zu klären, da die AD-Pins ja um einiges 
empfindlicher zu sein scheinen. Allerdings kann ich da kaum helfen, da 
mir die Zeit für ein ausführliches Datenblattstudium fehlt.

Vielleicht gibt es ja noch weitere Ideen/Anregungen, was die Ursache 
angeht. Insofern erstmal viel Erfolg.

: Bearbeitet durch User
von Veit D. (devil-elec)


Lesenswert?

Hallo,

wieso Ursache gefunden? Es hat sich bis jetzt nichts geändert. Er hat 
die gleichen Peaks wie vorher, schreibt er.

von Felix A. (madifaxle)


Lesenswert?

Die Peaks sind mit Strombegrenzung und Gatewiderstand deutlich kleiner 
geworden. Ursache dürfte somit ein nicht EMV-gerechtes Design sein.

Warum die AD-Pins sterben und die normalen nicht, sollte sich aus dem 
Datenblatt nun ermitteln lassen. Dazu habe ich aber wie geschrieben 
nunmal nicht die Zeit (obwohl ich das gerne machen würde).

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.