Forum: Mikrocontroller und Digitale Elektronik MOSFET an µC - schaltet bei Init durch


von Lord Z. (lordziu)


Angehängte Dateien:

Lesenswert?

Hallo zusammen.

Ich habe - wie in der Abbildung zu sehen - einen IRLU024N am µC Ausgang. 
Dieser schaltete LEDs.

Der µC-Ausgang wird in der SW abgeschaltet.

Wenn ich nun den Controller flashe oder starte, leuchten die LEDs kurz 
auf, bevor der Ausgang in der SW abgeschaltet wird.

Das der Pin beim Start einen undefinierten Zustand hat ist mir klar. 
Allerdings dachte ich, dass durch die Verbindung des Pins mit GND über 
die Widerstände, der Pin definiert auf GND liegt!?

Wo ist mein Denkfehler?

von 12345 (Gast)


Lesenswert?

welcher µC ?

von Lord Z. (lordziu)


Lesenswert?

ATmega 1280

von Rolf M. (rmagnus)


Lesenswert?

Wie lautet denn der Name des Ports, an dem diese Konstellation hängt?

von Dietrich L. (dietrichl)


Lesenswert?

Eine Möglichkeit:
Beim Einschalten der Versorgungsspannung geht sie von 0 auf Nennspannung 
in endlicher Zeit. Im Bereich von 0 bis zu einem nicht näher bekannten 
Wert ist alles im µC noch undefiniert (der Reset kann dann noch nicht 
wirken). D.h.: in diesem Bereich kann ein Ausgang auch aktiv-High sein.
Je nachdem wie lange diese Zeit ist, könnte das die Ursache sein. Mess 
doch mal
- die Anstiegszeit der Versorgungsspannung
- den Ausgang beim Einschalten

Gruß Dietrich

von Lord Z. (lordziu)


Lesenswert?

Rolf Magnus schrieb:
> Wie lautet denn der Name des Ports, an dem diese Konstellation hängt?

PB5, dass ist der PWM Ausgang OC1A.

Dietrich L. schrieb:
> D.h.: in diesem Bereich kann ein Ausgang auch aktiv-High sein.
> Je nachdem wie lange diese Zeit ist, könnte das die Ursache sein.

Ich gehe davon aus, dass das die Ursache ist. Messen kann ich es gerade 
nicht. Was macht man dagegen?

von tom (Gast)


Lesenswert?

ein Widerstand von 3..5K Ohm vom Pin nach Gnd hilft. Nach Reset wirkt 
der interne PullUp von 20..50 K Ohm. Obiger Widerstand verhindert das 
die Spannung groß genug wird um den Fet aufzumachen.

von Lord Z. (lordziu)


Lesenswert?

Okay, das werde ich mal ausprobieren. Dachte, dass der bereits 
existierende R nach GND ausreicht. Aber 100K sind wohl zu groß!?

von (prx) A. K. (prx)


Lesenswert?

Lord Ziu schrieb:

> Ich gehe davon aus, dass das die Ursache ist. Messen kann ich es gerade
> nicht. Was macht man dagegen?

Fuses für Brownout-Detector auf passenden Minimalpegel programmieren.

Allerdings spricht dagegen, dass es bei dir bei jeder Programmierung 
geschieht, nicht nur beim Einschalten der Versorgungsspannung.

von Rolf M. (rmagnus)


Lesenswert?

tom schrieb:
> Nach Reset wirkt der interne PullUp von 20..50 K Ohm.

Das sollte eigentlich nicht sein. Das Datenblatt meint in 2.3.4:

The Port B pins are tri-stated when a reset condition becomes active,
even if the clock is not running.

von LordZiu (Gast)


Lesenswert?

tom schrieb:
> ein Widerstand von 3..5K Ohm vom Pin nach Gnd hilft

Klappt super (3,3K). Danke

von Michael S. (michael8192)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe ein ähnliches Problem, weshalb ich nochmals in diesen Beitrag 
poste.
Bei mir findet ein PIC 16F913 Verwendung, mit dem ich einen P-Kanal 
Mosfet ansteuere (IRLML6401, siehe Schaltung im Anhang).
In der Software wird der Port (RA1) sowie das Tristate-Register (TRISA) 
korrekt initialisiert.
(Der PIC-Pin ist beim Initialisieren zuerst Tristate und wird dann als 
digital output auf High gesetzt. Sollte eigentlich auch funktionieren. 
Die Umschaltung von analogem Eingang auf Digital I/O macht der Compiler 
selber.)

Sobald die Versorgungsspannung eingeschaltet wird, steuert der MOSFET 
kurz durch und die Last (High-Power LED) blitzt kurz auf. Bei erneutem 
Einschalten ist der Effekt weg. Erst wenn längere Zeit ausgeschalten 
wird und alle Kapazitäten entladen sind, tritt das Problem wieder auf.
Ich habe einen Test gemacht und den Vorwiderstand entfernt. Sobald ich 
mit einer Messspitze auf das Gate komme steuert der MOSFET wieder kurz 
durch (Schaltung war vorher wieder länger aus).
Also habe ich vermutet, dass der Pull-up Widerstand zu hochohmig ist, 
und ich mit meinen Streukapazitäten das Gate kurzzeitig runterziehe und 
den MOSFET kurzzeitig einschalte. Aber auch mit einem 10k Widerstand ist 
das Problem immer noch vorhanden.

Was könnte es sonst noch sein?

Besten Dank

von Michael S. (michael8192)


Lesenswert?

Ok,

ich habs inzwischen selbst gelöst.
Rvor = 1k und C=100nF parallel zum Pull-up Widerstand.

von Hubert G. (hubertg)


Lesenswert?

Jetzt musst du zusätzlich zur Gate-Kapaztät auch noch den Kondensator 
umladen. Solange du nur mal Ein- und Ausschaltest spielt das keine große 
Rolle, PWM ist damit aber nicht möglich.
Ist der PIC-Pin wenn er auf Ausgang geschaltet wird erst auf low?

von Michael S. (michael8192)


Angehängte Dateien:

Lesenswert?

Ja, die Kapazität muss mit umgeladen werden, aber für meine Anwendung 
funktionierts und eine andere Lösung habe ich noch nicht gefunden. Mit 
dem MOSFET wird die Versorgungsspannung für den LED-Treiber geschaltet. 
Durch den grösseren Vorwiderstand von 1k wird der Strom, der aus dem 
Gate in den Pic fliesst reduziert. Ohne diesen Kondensator müsste ich 
den Vorwiderstand Faktor 5..10 grösser machen um den gleichen Effekt zu 
erreichen, dass die LED nicht aufblitzt, aber dann steuert der MOSFET 
nicht mehr richtig durch --> was gar nicht geht

Ich hab noch folgende Kombinationen getestet:
Rvor=1k und Rpull-up=10k == LED blitzt kurz auf --> zusätzl. C=100nF =ok
Rvor=1k und Rpull-up=100k == gleiches Ergebnis --> zusätzl. C=100nF =ok
Rvor=10k!! und Rpull-up=4.7k == Blitzen ist weg, aber MOSFET steuert 
auch nicht mehr richtig durch, da die Gatespannung nicht mehr negativ 
genug ist

Der Pin (RA1) ist beim Startvorgang des PIC zunächst ein Analogeingang. 
Wird dann auf Digital Input umgeschaltet (den Code dafür generiert der 
CCS-Compiler selbst, die Umschaltung passiert beim Einsprung in main()). 
Innerhalb von main() wird der Pin als Ausgang initialisiert und auf High 
gesetzt, um den MOSFET zu sperren. In der Zeit bis zur Initialisierung 
ist der Pin hochohmig (Tristate-Register auf High). D.h. der Pin hat in 
diesem Moment den Spannungspegel von der Source des MOSFET eingeprägt.

Der ungewünschte Spike (LED-Blitz) entsteht nach ca 20..40us nach 
Einschalten und dauert so 20..60us. Ich vermute, dies liegt daran, das 
eine gewisse Ladungsmenge in den Pin des PIC fliesst evtl. in dem 
Moment, wenn dieser noch kurzzeitig auf Analogeingang gesetzt ist (was 
ich nicht beeinflussen kann). Der Analogeingang ist ja eine 
Sample&Hold-Stufe. Je nachdem ob der Switch geschlossen ist oder nicht 
wirkt die Eingangskapazität am Pin (5pF) und die Holdkapazität (10pF)+1k 
Ric (siehe Bild Anhang) in welche die Ladung aus dem Gat fliessen 
könnte.

An einem anderen Pin habe ich ebenfalls einen MOSFET (N-Channel). Dieser 
wird mit PWM angesteuert (1kHz). Der Serienwiderstand ist hier 100R und 
der Pull-down Widerstand zwischen Gate und Source ist 100k. Funktioniert 
bestens. Klar bei höheren PWM-Frequenzen würde ich wahrscheinlich 
Probleme mit den Kapazitäten am Gate bekommen.

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.