mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik MOSFET Gate mit Spannungsteiler


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 Johnny S. (sgt_johnny)


Bewertung
-7 lesenswert
nicht lesenswert
Die Auswahl an kostengünstigen Mosfets in kleiner Bauform ist schon 
klein genug. Nun ist das Problem das diese alle einen sehr niedrigen 
Vgs(th) haben.

Um einen GPIO-Pin zu verstärken setze ich aktuell den DMN2300 ein, 
welcher einen VGs von min. 450mV und max. 950mV hat.

Besteht hier die möglichkeit den GPIO Pin über einen passenden 
Spannungsteiler anzusteuern, damit erst ab 3.0V am Gate um die 1.1V 
erreicht werden, damit der Mosfet die angesteuerte Anzeige-LED nicht 
"flackern" lässt. Wenn der IC der das GPIO enthält mit Strom versorg 
wird, machen die Outputs für einige uS was sie wollen, es treten 
Spannungen bis rund 2V auf, aber nie mehr als 3. Wird der GPIO 
geschalten, sind es saubere 3.3V.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
Johnny S. schrieb:
> aber nie mehr als 3. Wird der GPIO geschalten, sind es saubere 3.3V.
Du bräuchtest zum "Drumherumbasteln" also einen Mosfet, der bei 3V noch 
sicher ausgeschaltet, bei 3,3V aber garantiert eingeschaltet ist?

> Wenn der IC der das GPIO enthält mit Strom versorg wird, machen die
> Outputs für einige uS was sie wollen, es treten Spannungen bis rund 2V
> auf, aber nie mehr als 3. Wird der GPIO geschalten, sind es saubere 3.3V.
Vermutlich ist der GPIO des geheimen "IC" solange einfach hochohmig 
und das Gate macht, was es will. Mach einen 10k-Pulldown vom Gate nach 
Source.

: Bearbeitet durch Moderator
von Horst (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Üblicherweise löst man diese undefinierten Momente beim Einschalten mit 
einem einfachen Pulldown am Gate. So um die 100k sind verbreitet.

Ein Spannungsteiler verlangsamt den Schaltvorgang.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Wenn der IC der das GPIO enthält mit Strom versorg
> wird, machen die Outputs für einige uS was sie wollen

Sagen wir mal lieber wenn dein Mikcrontroller aus dem Reset kommt dann 
vergehen ein paar Mikrosekunden bis er seinen Port initialisiert. Der 
ist dann natuerlich als Eingang geschaltet.
Mach einfach einen Pulldown an das Gate, sagen wir mal 10k oder 100k und 
alles wird gut.

Olaf

von Johnny S. (sgt_johnny)


Angehängte Dateien:

Bewertung
-2 lesenswert
nicht lesenswert
Lothar M. schrieb:
> Johnny S. schrieb:
>> Um einen GPIO-Pin zu verstärken setze ich aktuell den DMN2300 ein,
>> welcher einen VGs von min. 450mV und max. 950mV hat.
> Gibt dein GPIO-Pin im low-Zustand mehr als 450mV aus? Warum?

Das weiss keiner, ich habe bereits ein Support-Request an den Hersteller 
gesendet. Wird das IC (MFRC630) aus dem PowerDown erweckt, "flackern" 
die GPIO kurz auf bis zu 2V herauf (Spannung ist immer vaiabel), das 
passiert auch wenn der Mosfet entlötet wird. Der Mosfet ist aktuell auf 
100k Pull-Down. Ebenfalls ist das Signal auch belastbar. Ich habe 
versucht die 5ms mit einem 220n Kondensator und einem 1k Widerstand in 
Serie "zu schlucken", aber auch das nützt nur bedingt.

Leider gibt es im Datenblatt keinerlei Schaltbild der Eingänge. Das 
Einzige was man im Datenblatt sieht ist das die Register jeweils 0 als 
Default enthalten.



>
>> Wenn der IC der das GPIO enthält mit Strom versorg wird, machen die
>> Outputs für einige uS was sie wollen, es treten Spannungen bis rund 2V
>> auf, aber nie mehr als 3. Wird der GPIO geschalten, sind es saubere
>> 3.3V.
> Vermutlich ist der GPIO des geheimen "IC" solange einfach /hochohmig/
> und das Gate macht, was es will. Mach einen 10k-Pulldown vom Gate nach
> Source.

von Michael B. (laberkopp)


Bewertung
0 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Besteht hier die möglichkeit den GPIO Pin über einen passenden
> Spannungsteiler anzusteuern,

Warum sollte man so einen Quatsch machen ?

Bei 1.1V ist der DMN2300 noch gar nicht eingeschaltet, das Datenblatt 
geht erst bei 1.5V los.

Der DMN2300 schaltet selbst bei 3V nur 1A durch.

Unter 0.45V lässt er garantiert weniger als 250uA durch.

Die Frage muss lauten: Wie kann man es erreichen, daß der GPIO bei low 
weniger als die 0.45V liefert.

Das ist einfach: Er darf keinen Strom nach Masse ableiten müssen.
Welchen Strom überhaupt ? Es hängt ja wohl nichts anderes an diesem 
GPPIO dran, also nur den über das Gate des MOSFETs, also den Leckstrom, 
das sind maximal 10uA. Also reicht ein 43k Widerstand nach Masse vom 
Gate des MOSFETs

von Johnny S. (sgt_johnny)


Bewertung
-1 lesenswert
nicht lesenswert
Michael B. schrieb:
> Johnny S. schrieb:
>> Besteht hier die möglichkeit den GPIO Pin über einen passenden
>> Spannungsteiler anzusteuern,
>
> Warum sollte man so einen Quatsch machen ?
>
> Bei 1.1V ist der DMN2300 noch gar nicht eingeschaltet, das Datenblatt
> geht erst bei 1.5V los.

In meinem Datenblatt leitet er bei Vgs =1.2V von bei einer Spannung von 
VDS=3V um die 300mA.


> Der DMN2300 schaltet selbst bei 3V nur 1A durch.

Die angesteuerte Led hat 30mA


> Unter 0.45V lässt er garantiert weniger als 250uA durch.
>
> Die Frage muss lauten: Wie kann man es erreichen, daß der GPIO bei low
> weniger als die 0.45V liefert.
>
> Das ist einfach: Er darf keinen Strom nach Masse ableiten müssen.
> Welchen Strom überhaupt ? Es hängt ja wohl nichts anderes an diesem
> GPPIO dran, also nur den über das Gate des MOSFETs, also den Leckstrom,
> das sind maximal 10uA. Also reicht ein 43k Widerstand nach Masse vom
> Gate des MOSFETs

Ja nur der Gate, und ein 100k Pulldown

von Falk B. (falk)


Bewertung
3 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Die Auswahl an kostengünstigen Mosfets in kleiner Bauform ist schon
> klein genug.

Was für ein Gejammer und Unsinn!

> Nun ist das Problem das diese alle einen sehr niedrigen
> Vgs(th) haben.

Dafür haben viele Leute lange hart gearbeitet!

> Um einen GPIO-Pin zu verstärken setze ich aktuell den DMN2300 ein,
> welcher einen VGs von min. 450mV und max. 950mV hat.

Falsch. VG ist die aktuell anliegende Gate-Source Spannung, die kann 
sonstwas sein. Du meinst V_GS_Threshold, das ist die Schwellenspannung, 
ab welcher der MOSFET langsam anfängt zu leiten.

https://www.mikrocontroller.net/articles/FET#Gate-Source_Threshold_Voltage

> Besteht hier die möglichkeit den GPIO Pin über einen passenden
> Spannungsteiler anzusteuern, damit erst ab 3.0V am Gate um die 1.1V
> erreicht werden,

Warum sollte man das tun? Die meisten IOs können problemlos auf 0V 
runter ziehen, erst recht wenn bloss ein kleines MOSFET-Gate dranhängt.

>damit der Mosfet die angesteuerte Anzeige-LED nicht
> "flackern" lässt. Wenn der IC der das GPIO enthält mit Strom versorg
> wird, machen die Outputs für einige uS was sie wollen, es treten
> Spannungen bis rund 2V auf, aber nie mehr als 3. Wird der GPIO
> geschalten, sind es saubere 3.3V.

Schon mal was von einem Pull-Down Widerstand gehört? Den bracuht man 
immer am Gate, vor allem wenn das von einem Mikrocontroller direkt 
angesteuert wird. Der hält das Gate sicher auch 0V, wenn eben jener im 
Reset ist.

von Falk B. (falk)


Bewertung
1 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Das weiss keiner, ich habe bereits ein Support-Request an den Hersteller
> gesendet. Wird das IC (MFRC630) aus dem PowerDown erweckt, "flackern"
> die GPIO kurz auf bis zu 2V herauf (Spannung ist immer vaiabel), das
> passiert auch wenn der Mosfet entlötet wird.

Das sieht nach einem unsauberen Aufwachen des ICs auf, der treibt die 
Ausgänge hart.

> Der Mosfet ist aktuell auf
> 100k Pull-Down.

Klingt Zuviel. Nimm mal 10k oder 1k.

> Ebenfalls ist das Signal auch belastbar.

Wie stark denn? Wie hast du das gemessen?

> Ich habe
> versucht die 5ms mit einem 220n Kondensator und einem 1k Widerstand in
> Serie "zu schlucken", aber auch das nützt nur bedingt.

Schon mal gerechnet? 1k x 220nF = 220us

Dein Störpuls ist 5ms breit . . .

> Leider gibt es im Datenblatt keinerlei Schaltbild der Eingänge.

Wozu auch, du hast ja hier ein Problem mit einem Ausgang.

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Nun ist das Problem das diese alle einen sehr niedrigen Vgs(th) haben.
Dir würde auch eine größere Vgsth nicht helfen, denn dann variiert sie 
z.B. von 2..4V. Das ist ja keine "Schaltkonstante mit 
Schmittriggerfunktion".

Johnny S. schrieb:
> Ich habe versucht die 5ms mit einem 220n Kondensator und einem 1k
> Widerstand in Serie "zu schlucken"
Wundert mich im Grunde nicht so arg bei einer resultierenden 
Zeitkonstante von R*C = 220µs und einem Störsignal, das 25 mal länger 
dauert...
Probier da mal einen 10k Widerstand und einen 1µF Kondensator. 
Allerdings musst du dann aufpassen, dass dein Mosfet recht langsam 
schaltet. Du musst da einen Blick auf die SOA werfen.

Abhilfe wäre hier sowas wie ein "Totzeitglied", das kurze High-Impulse 
unterdrückt und erst dann einschaltet, wenn der Ausgang sicher über 5ms 
high ist.

: Bearbeitet durch Moderator
von Johnny S. (sgt_johnny)


Bewertung
0 lesenswert
nicht lesenswert
Ich habe Rückmeldung vom Hersteller erhalten:

Da die Pins mit denen vom Boundary-Scan Interface geshared sind, müssen 
Sie nach dem Reset auf VCC hochgezogen sein und nehmen hald erst den 
"realen" Stand an wenn Sie angesprochen werden

Der Pull up ist zwischen 50 und 120k, typisch 72k nach Datenblatt

Ich werde nun morgen mal ein Poti statt dem 100k Pulldown am Gate 
einlöten und etwas testen.

: Bearbeitet durch User
von Falk B. (falk)


Bewertung
2 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Da die Pins mit denen vom Boundary-Scan Interface geshared sind,

Soso, geshared . . .

AUA!

Hast du ne Share im Kopf?

http://kamelopedia.net/wiki/Denglisch

: Bearbeitet durch User
von Jens G. (jensig)


Bewertung
0 lesenswert
nicht lesenswert
Johnny S. (sgt_johnny) schrieb:

>Das weiss keiner, ich habe bereits ein Support-Request an den Hersteller
>gesendet. Wird das IC (MFRC630) aus dem PowerDown erweckt, "flackern"
>die GPIO kurz auf bis zu 2V herauf (Spannung ist immer vaiabel), das

Wo hat der MFRC630 ein GPIO? So wie ich es im DB sehe, hat das Ding 
überhaupt keine allgemein verfügbare Ports, sondern alle sind 
irgendwelchen speziellen Aufgaben zugewiesen? Wie kommst Du also auf die 
Idee, daß man da einfach irgendeinen Mosfet anbammeln kann, ohne die 
Funktion der Ports zu verstehen?

von Sebastian S. (amateur)


Bewertung
0 lesenswert
nicht lesenswert
Mit der Ausgangsspannung eines Controllerpins kannst Du machen was Du 
willst.

Also auch die Spannung irgendwie "teilen".

Meist wird dabei aber der Ausgangswiderstand erhöht, was beim Schalten 
eines FET ein paar Pferdefüße ins Spiel bringt.

: Bearbeitet durch User
von Gerd E. (robberknight)


Bewertung
0 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Da die Pins mit denen vom Boundary-Scan Interface geshared sind, müssen
> Sie nach dem Reset auf VCC hochgezogen sein und nehmen hald erst den
> "realen" Stand an wenn Sie angesprochen werden

ok, das ist doch mal ne saubere Ansage und passt zu Deiner Messung.

> Der Pull up ist zwischen 50 und 120k, typisch 72k nach Datenblatt
>
> Ich werde nun morgen mal ein Poti statt dem 100k Pulldown am Gate
> einlöten und etwas testen.

Ich weiß nicht ob ich mich auf solche Spielchen einlassen würde.

Warum packst Du nicht ein Logikgate dazwischen, welches die Pins erst 
nach einem bestimmten Zeitpunkt nach Powerup freigibt?

Also z.B. 74LVC1G123 fürs Timing und dahinter dann ein 74LVC125 um die 
GPIOs freizugeben?

von Lothar M. (lkmiller) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Jens G. schrieb:
> Wo hat der MFRC630 ein GPIO? So wie ich es im DB sehe, hat das Ding
> überhaupt keine allgemein verfügbare Ports, sondern alle sind
> irgendwelchen speziellen Aufgaben zugewiesen?
Auf der zweiten Seite steht da "Up to 8 free programmable input/output 
pins". Und die sind dann auch (mehrfach verwendeten) Pins zugeordnet, 
die sich über das PinOut und das PinIn Register (siehe Kapitel 8.16) 
ansprechen lassen.

: Bearbeitet durch Moderator
von Jens G. (jensig)


Bewertung
0 lesenswert
nicht lesenswert
Lothar M. (lkmiller) (Moderator) Benutzerseite

>Jens G. schrieb:
>> Wo hat der MFRC630 ein GPIO? So wie ich es im DB sehe, hat das Ding
>> überhaupt keine allgemein verfügbare Ports, sondern alle sind
>> irgendwelchen speziellen Aufgaben zugewiesen?
>Auf der zweiten Seite steht da "Up to 8 free programmable input/output

Ahhja - ich hatte gestern im DB einfach nur nach "GPIO" gesucht, und das 
kam dummerweise da nicht vor :-(

von jemand (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Lothar M. schrieb:
>> Johnny S. schrieb:
>>> Um einen GPIO-Pin zu verstärken setze ich aktuell den DMN2300 ein,
>>> welcher einen VGs von min. 450mV und max. 950mV hat.
>> Gibt dein GPIO-Pin im low-Zustand mehr als 450mV aus? Warum?
>
> Das weiss keiner, ich habe bereits ein Support-Request an den Hersteller
> gesendet. Wird das IC (MFRC630) aus dem PowerDown erweckt, "flackern"
> die GPIO kurz auf bis zu 2V herauf (Spannung ist immer vaiabel), das
> passiert auch wenn der Mosfet entlötet wird. Der Mosfet ist aktuell auf
> 100k Pull-Down. Ebenfalls ist das Signal auch belastbar. Ich habe
> versucht die 5ms mit einem 220n Kondensator und einem 1k Widerstand in
> Serie "zu schlucken", aber auch das nützt nur bedingt.
>
> Leider gibt es im Datenblatt keinerlei Schaltbild der Eingänge. Das
> Einzige was man im Datenblatt sieht ist das die Register jeweils 0 als
> Default enthalten.

Als Workaround kann man Buffergates mit Enable dazwischenschalten, wie 
ein 74HCT1G125. Man schaltet das Signal erst dann zum FET durch, wenn 
der IC seinen Schluckauf beendet hat.
Den Enable muss man selbstverständlich mit einem Signal bedienen, das 
kein solches Verhalten hat.
Zur Not muss man das mit einem Resetbaustein wie einem LM809 verzögern.

Solche Dinge sind der Grund, warum trotz aller Simulationsmöglichkeiten 
Prototypen gebaut werden müssen. Der Buffer ist nur Hasenfutter, aber 
wenn man ihn nicht drauf hat, hat man ein Redesign am Hals...

von Michael B. (laberkopp)


Bewertung
0 lesenswert
nicht lesenswert
Johnny S. schrieb:
> In meinem Datenblatt leitet er bei Vgs =1.2V von bei einer Spannung von
> VDS=3V um die 300mA.

Uff, immer diese Leute, die typical Kurven mit garantierten Schaltwerten 
verwechseln.

Wenn sowieso nur 1 LED geschaltet wird: Freu dich daß sie flackert und 
das Funktionieren des Boundary Scan anzeigt.

Ansonsten: Nein, es gibt keine Spannungsteiler, weil es keinen MOSFET 
gibt der bei über 3V voll ein und bei unter 2V voll aus ist, das UGS 
ein/aus Verhältnis beträgt mindestens 1:2, dazwischen die lineare 
Region, und ist dann auch noch exemplarabhängig um 1:2 in anderer 
Spannungslage.

Dein Ansatz ist also Murks.

Ein UND-Gatter könnte das Problem beheben, oder eben eine Verzögerung, 
auch in simpler RC Form, aber beide Methoden erfordern zusätzliche 
externe Bauteile.

von Bauform B. (bauformb)


Bewertung
0 lesenswert
nicht lesenswert
Gerd E. schrieb:
> Warum packst Du nicht ein Logikgate dazwischen, welches die Pins erst
> nach einem bestimmten Zeitpunkt nach Powerup freigibt?

jemand schrieb:
> Als Workaround kann man Buffergates mit Enable dazwischenschalten, wie
> ein 74HCT1G125. Man schaltet das Signal erst dann zum FET durch, wenn
> der IC seinen Schluckauf beendet hat.
> Den Enable muss man selbstverständlich mit einem Signal bedienen, das
> kein solches Verhalten hat.
> Zur Not muss man das mit einem Resetbaustein wie einem LM809 verzögern.

Michael B. schrieb:
> Ein UND-Gatter könnte das Problem beheben, oder eben eine Verzögerung,
> auch in simpler RC Form,

In diesem Fall reicht auch ein einfacher Inverter ohne Widerstand und 
ohne Kondensator. Das macht sehr genau das Richtige. Man muss halt in 
der Software nochmal invertieren.

von jemand (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Bauform B. schrieb:
> In diesem Fall reicht auch ein einfacher Inverter ohne Widerstand und
> ohne Kondensator. Das macht sehr genau das Richtige. Man muss halt in
> der Software nochmal invertieren.

Der Inverter hilft nur, wenn der Ausgang beim Spinnen nur aktiv HIGH und 
Tristate macht. Dann kann man den Inverter nehmen, und einen Pullup 
davor tun.

Das Oszi-Bild will mir aber nicht so aussehen. Das sieht eher aus wie 
aktiv high-> aktiv LOW-> aktiv High.

In dem Fall hilft ein Inverter nicht weiter. Man wird das oben genannte 
UND-Gatter, das RC, oder den Tristatebuffer brauchen.

von Bauform B. (bauformb)


Bewertung
0 lesenswert
nicht lesenswert
Johnny S. schrieb:
> Ich habe Rückmeldung vom Hersteller erhalten:
>
> Da die Pins mit denen vom Boundary-Scan Interface geshared sind, müssen
> Sie nach dem Reset auf VCC hochgezogen sein und nehmen hald erst den
> "realen" Stand an wenn Sie angesprochen werden

jemand schrieb:
> Das Oszi-Bild will mir aber nicht so aussehen. Das sieht eher aus wie
> aktiv high-> aktiv LOW-> aktiv High.

Wem soll ich jetzt glauben? JTAG-Pins werden ja normal nicht von sich 
aus aktiv.

von Johnny S. (sgt_johnny)


Bewertung
0 lesenswert
nicht lesenswert
Bauform B. schrieb:
> Johnny S. schrieb:
>> Ich habe Rückmeldung vom Hersteller erhalten:
>>
>> Da die Pins mit denen vom Boundary-Scan Interface geshared sind, müssen
>> Sie nach dem Reset auf VCC hochgezogen sein und nehmen hald erst den
>> "realen" Stand an wenn Sie angesprochen werden
>
> jemand schrieb:
>> Das Oszi-Bild will mir aber nicht so aussehen. Das sieht eher aus wie
>> aktiv high-> aktiv LOW-> aktiv High.
>
> Wem soll ich jetzt glauben? JTAG-Pins werden ja normal nicht von sich
> aus aktiv.

Der Pullup der GPIO's ist zwischen 50 und 100k, der Gate Pulldown ist 
100k

damit enstehen folgende Spannungen am Gate:

V+ = 3.3V

Rpu = 50k , Rpd = 100k = 2.2V
Rpu = 72k , Rpd = 100k = 1.9V
Rpu = 100k, Rpd = 100k = 1.65V

Das passt ganz gut zu den gemessenen Werten von ~2V

von Johnny S. (sgt_johnny)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun einen 8,2k Widerstand eingesetzt (wundert euch nicht über 
den komischen wert, der wurde benutzt da er auf der selben Platine 
bereits 4 mal vorhanden ist)

Somit entsteht im diese Konstellation:

Rpu = 50k, Vgs = 0.465V
Rpu = 72k, Vgs = 0.337V
Rpu = 100k, Vgs = 0.25V

Wie man auf den beiden Scope Screenshots sehen kann ist der Pegel nun 
viel niedriger und das flackern ist verschwunden und die LED beginnt 
erst dann zu leuchten, wenn es nötig ist

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.

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