Forum: Mikrocontroller und Digitale Elektronik Arduino: max. Strom duch interne Schutzdioden


von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

mit einem 3,3V-Arduino baue ich gerade eine kleine Schaltung auf, bei 
der 5V an eine Last geschaltet werden müssen. Ich habe mal versucht, das 
zu zeichnen. Einen kompletten Treiber für den High-Side Schalter wollte 
ich mir der Einfachheit halber sparen, wenn das möglich ist.

Den Arduino Pin würde ich zwischen 0V (Schalter ein) und Input (Schalter 
aus) hin und her schalten.

Im letzteren Fall ist es dann aber so, dass am Input-Pin über eine 
Widerstand von 10k die 5V liegen. Dabei würden dann etwa I = (5-0,7)V / 
10k = 0,45 mA über die interne Schutzdiode fließen.

Im Datenblatt finde ich leider keine Angaben dazu, wieviel Strom da 
fließen darf. Da steht nur die max. Spannung am Pin von VCC + 0,5V, das 
wären hier 3,8V. Das ist wahrscheinlich, bevor die Schutzdioden leiten, 
also noch kein Strom fließt.

Vielleicht weiß jemand, ob ich das überhaupt so machen kann und wieviel 
Strom so eine Schutzdiode des Arduino verträgt.

Vielen Dank!
Gruß Manni

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Nochmal als gif.

von Georg G. (df2au)


Lesenswert?

Kannst du bitte das Schaltbild noch einmal kritisch betrachten? So macht 
es keinen Sinn. Der Port liegt permanent auf Masse.

von Manfred (Gast)


Angehängte Dateien:

Lesenswert?

Oh man, Manni...
So ist es richtig!
Danke für den wirklich freundlichen Hinweis! Nicht in dem Ton, den man 
hier leider sonst oft liest.

von HildeK (Gast)


Lesenswert?

Die Schutzdioden vertragen das - einzelne mA sind kein Problem.
Was jedoch eher problematisch ist: bei HIGH hast du 3.3V am Gate, die 
Source liegt aber auf 5V, also immer noch 1.7V Gatespannung. Je nach 
pMOS macht der dann nicht ganz zu.
Übrigens: es gibt unzählige Threads und Schaltungsvorschläge hier, siehe 
Artikel, wie man einen pMOS an HighSide mit höherer Spannung richtig 
beschaltet.

von Manfred (Gast)


Lesenswert?

Stimmt: Weil bei High (3,3V) der Transistor evtl. nicht völlig sperrt, 
wird er nicht so abgeschaltet, sondern indem der Arduino seinen Pin als 
Input schaltet. Dann liegt Source auf 5V und der Transistor sperrt.

Eine Spezifikation, wieviele mA so ein Pin verkraftet, gibt es wohl 
nicht, oder? Dann muss man sich auf Erfahrungswerte anderer verlassen.

Wie man so einen Transistor als Schalter verwendet, habe ich z.B. hier 
nachgelesen:
https://www.mikrocontroller.net/articles/Treiber
Das ist sicher die beste und sauberste Möglichkeit. Ich möchte aber den 
geringstmöglichen Aufwand betreiben, ohne aber Spezifikationen zu 
verletzen.

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


Angehängte Dateien:

Lesenswert?

Manfred schrieb:
> Ich möchte aber den
> geringstmöglichen Aufwand betreiben, ohne aber Spezifikationen zu
> verletzen.

Dann füge einen NPN und einen Basisvorwiderstand hinzu.

von Stefan F. (Gast)


Lesenswert?

Manfred schrieb:
> Weil bei High (3,3V) der Transistor evtl. nicht völlig sperrt

ja


> wird er nicht so abgeschaltet, sondern indem der Arduino seinen Pin als
> Input schaltet.

Das ändert nichts. Der Pin vom Arduino kann trotzdem nicht auf 5V hoch 
gehen, solange er mit 3,3V versorgt wird.

> Eine Spezifikation, wieviele mA so ein Pin verkraftet, gibt es wohl
> nicht, oder? Dann muss man sich auf Erfahrungswerte anderer verlassen.

Das kannst du den "Absolute maximum ratings" im Datenblatt entnehmen. 
Ich meine, es waren ca 40mA für einen einzelnen Pin und etwa 200mA für 
alle zusammen. Was nicht bedeutet, dass der Pin als Ausgang tatsächlich 
40mA liefern kann. Bei 5V tut er das im Kurzschlussfall, aber bei 3V 
vielleicht nicht mehr.

Was die Belastbarkeit der internen ESD Schutzdioden angeht: Dazu gibt es 
bei den mit bekannten AVR Mikrocontrollern leider keine Angabe. Es gibt 
eine Application Note, wo empfohlen wird, sie absichtlich nicht mehr als 
0,5mA zu belasten. Tatsächlich vertragen sie nach meinen Tests aber 
erheblich mehr. Aber das ist halt nicht garantiert.

Schau dir 
http://stefanfrings.de/mikrocontroller_buch/Einstieg%20in%20die%20Elektronik%20mit%20Mikrocontrollern%20-%20Band%202.pdf 
Kapitel 2.2 und 3.4 an, da siehst du wie man Transistoren digital als 
Schalter anwendet.

Matthias hat es korrekt gezeichnet. So darf die Spannung an "+ IN" 
allerdings nicht höher sein, als die maximale Gate Spannung des 
Transistors. Das PDF zeigt, wie man mit einem zusätzlichen Widerstand 
auch höhere Spannungen schalten kann.

von MaWin (Gast)


Lesenswert?

Manfred schrieb:
> mit einem 3,3V-Arduino

WELCHEN ?

Es gibt dutzende "Arduino" Platinen.

Diejenige, die man normalerweise mit Arduino vetbindet, ist der 5V 
Arduino Uno auf Basis des ATmega328.

Und, oh Wunder, es gelten dort dieselben Werte wie im Datenblatt des 
328.

Deine ist jedoch offenbar irgendeine andere.

von HildeK (Gast)


Lesenswert?

Manfred schrieb:
> Stimmt: Weil bei High (3,3V) der Transistor evtl. nicht völlig sperrt,
> wird er nicht so abgeschaltet, sondern indem der Arduino seinen Pin als
> Input schaltet. Dann liegt Source auf 5V und der Transistor sperrt.
Nein. Eben diese Schutzdioden verhindern, dass der Ausgang auf mehr als 
3.3V+0.7V geht.

> Eine Spezifikation, wieviele mA so ein Pin verkraftet, gibt es wohl
> nicht, oder? Dann muss man sich auf Erfahrungswerte anderer verlassen.
Manche Halbleiter sind spezifiziert, die meisten nicht.
Aber es soll eine AppNote von Atmel geben, wo sie nur mit hochohmigen 
Widerständen direkt an 230V gehen und den Rest die Schutzdiode machen 
lassen.

Manfred schrieb:
> Ich möchte aber den
> geringstmöglichen Aufwand betreiben, ohne aber Spezifikationen zu
> verletzen.

Dann mache das, was Matthias S. gezeichnet hat. Der Zusatzaufwand ist 
minimal und das Ergebnis passt. BTW: für den Basiswiderstand reichen 
auch 10k.

von S. Landolt (Gast)



Lesenswert?

K. Hilde schrieb:
> Aber es soll eine AppNote von Atmel geben ...

Und darin steht u.a. 'It is not recommended that the clamping diodes are 
conducting more than maximum 1mA'.

von Bauform B. (bauformb)


Lesenswert?

HildeK schrieb:
> Die Schutzdioden vertragen das - einzelne mA sind kein Problem.

Sehr leichtsinnige Behauptung, weil:

MaWin schrieb:
> Manfred schrieb:
>> mit einem 3,3V-Arduino
>
> WELCHEN ?
>
> Es gibt dutzende "Arduino" Platinen.

Wenn da ein STM32 drauf ist, muss man nicht nur das richtige Datenblatt 
zu genau dem Typ anschauen. Es ist bei jedem ein wenig anders 
spezifiziert. Und das Beste: es ist auch noch von Pin zu Pin 
unterschiedlich!

Wer sich nur so eine pauschale Regel wie oben merken will:
Die STM32-Pins haben keine Schutzdioden, es sind trotzdem nur VDD+0.3V 
erlaubt.

Und die Krönung: Auch sogenannte 5-Volt-tolerante Pins vertragen keine 5 
Volt sondern nur VDD+3V, aber sicher keine 6.3 Volt. Vor allem verträgt 
kein STM32-Pin 5 Volt, wenn VDD = 0V ist.

Ja, es ist so kompliziert, nur das richtige Datenblatt für genau den 
fraglichen Pin gilt! Aber kochen können sie, die Franzosen und Italiener 
;)

von HildeK (Gast)


Lesenswert?

S. Landolt schrieb:
> Und darin steht u.a. 'It is not recommended that the clamping diodes are
> conducting more than maximum 1mA'.

Ok, dann ist es dort weniger. Xilinx hat mal 10mA genannt, selten gibt 
es bei anderen sogar noch größere Werte in den Maximum Ratings.
Wenn ich Clamping machen will/muss, dann nehme ich externe 
Schottky-Dioden. Das ist hier aber nicht das Problem.

von Bauform B. (bauformb)


Lesenswert?

HildeK schrieb:
> Xilinx hat mal 10mA genannt

Arduino jetzt auch von Xilinx ;)
Die 74HC-Familie ist offiziell mit ±20mA spezifiziert, fast alle neueren 
74er-Familien nur mit -20mA. Offenbar finden alle diese neumodische 
5-Volt-Toleranz wichtiger als einen definierten Eingangsschutz :(

von Stefan F. (Gast)


Lesenswert?

Bauform B. schrieb:
> Wer sich nur so eine pauschale Regel wie oben merken will:
> Die STM32-Pins haben keine Schutzdioden, es sind trotzdem nur VDD+0.3V
> erlaubt.

Auch das kommt wieder auf den Pin an. Einige haben eine "obere" 
Schutzdiode aber noch lange nicht alle. Der Teufel steckt im Detail - 
bei STM32 noch viel mehr als bei den klassischen AVR.

von Wolfgang (Gast)


Lesenswert?

Stefan ⛄ F. schrieb:
> Es gibt eine Application Note, wo empfohlen wird, sie absichtlich nicht
> mehr als 0,5mA zu belasten.

Atmel empfiehlt in der AppNote AVR182 einen Wert von maximal 1mA (S.5).
Das sollte sich doch inzwischen rumgesprochen haben.
http://ww1.microchip.com/downloads/en/Appnotes/Atmel-2508-Zero-Cross-Detector_ApplicationNote_AVR182.pdf

von Georg G. (df2au)


Lesenswert?

Bauform B. schrieb:
> Die STM32-Pins haben keine Schutzdioden

Kannst du bitte erläutern, wie man das hinbekommt? Die Diodenstrecken 
entstehen imho parasitär im Herstellungsprozess und sind nur schwer zu 
vermeiden, wenn der Ausgang PP sein soll. Bei OC bzw OD wäre es 
einfacher.

von Wolfgang (Gast)


Lesenswert?

Georg G. schrieb:
> Kannst du bitte erläutern, wie man das hinbekommt?
> Die Diodenstrecken entstehen imho parasitär ...

Deine Meinung dazu ist ziemlich egal. ;-)
Warum nimmst du nicht einfach ein Multimeter und misst nach, ob da 
Diodenstrecke an den GPIOs vorhanden sind?

von Veit D. (devil-elec)


Lesenswert?

Hallo,

warum spricht man hier von Schutzdioden? Warum wurden die ins Spiel 
gebracht? Der µC Pin fungiert als Ausgang mit seiner Push-Pull Stufe. 
Wenn der Pin auf Masse liegt wird der Strom vom 10k begrenzt. 5V / 10k. 
Wenn der Pin auf 3,3V High liegt, dann wird wiederum der Strom durch den 
10k begrenzt nur diesmal für nur 1,7V / 10k (5V-3,3V). Ich sehe keine 
Schutzdiode involviert. Oder?

Damit es überhaupt funktioniert muss wie schon angesprochen noch ein NPN 
/ N-Channel rein.

: Bearbeitet durch User
von Einer K. (Gast)


Lesenswert?

Veit D. schrieb:
> Ich sehe keine
> Schutzdiode involviert. Oder?
Mag sein, dass Auch Strom über die DS Strecke fließt, wenn der Der Pin 
High ist.
Aber spätestens im Rest ist ende damit.

von Wolfgang (Gast)


Lesenswert?

Veit D. schrieb:
> warum spricht man hier von Schutzdioden? Warum wurden die ins Spiel
> gebracht? Der µC Pin fungiert als Ausgang mit seiner Push-Pull Stufe.

Die Dioden würden unabhängig von der Portkonfiguration davor schützen, 
dass U_GS unter -1.4V sinkt - egal was R1 macht und wie sinnvoll das 
ist.

von Einer K. (Gast)


Lesenswert?

Arduino Fanboy D. schrieb:
> Aber spätestens im Rest ist ende damit.
Reset!

von Veit D. (devil-elec)


Lesenswert?

Hallo,

wenn der Pin Ausgang ist sehe ich kein Problem, auch nicht für die 
Schutzdioden, weil der Strom durch die Pin Endstufe fließt. Aber den 
Resetzustand (Eingang) hatte ich vergessen zu bedenken. Alles klar. 
Danke. Weitermachen.  :-)

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Veit D. schrieb:
> Hallo,
>
> warum spricht man hier von Schutzdioden? Warum wurden die ins Spiel
> gebracht? Der µC Pin fungiert als Ausgang mit seiner Push-Pull Stufe.

Der TO hat angemerkt, dass er zum Ausschalten des Highside-FETs den 
Ausgang hochohmig schalten will:

Manfred schrieb:
> Den Arduino Pin würde ich zwischen 0V (Schalter ein) und Input (Schalter
> aus) hin und her schalten.
In dem Fall wirken die dann schon.
Wenn sein High-Side-FET bei 1V Gatespannung gut genug sperrt und bei 5V 
den gewünschten Strom kann, dann werden die 10k (1V/10k=100µA) den 
Schutzdioden nichts antun und er kann es so machen.

Ob sie bei eingeschaltetem pFET der Ausgangsstufe tatsächlich überbrückt 
werden und dieser FET dann den Strom nach VCC ableitet, ist denkbar. 
Leider bin ich mir nicht sicher, ob all die Bilder zu den 
CMOS-Ausgangsstufen nicht nur Prinzipbilder sind und möglicherweise auch 
bei HIGH die Dioden belastet werden, wenn man den Ausgang mit einem R 
weiter nach oben zieht. Müsste man mal messen ...

von Veit D. (devil-elec)


Lesenswert?

Hallo,

Danke. Die Erklärung macht Sinn. Ob ich es so machen würde? Ich glaube 
eher nicht.  ;-)

von Einer K. (Gast)


Lesenswert?

HildeK schrieb:
> den Schutzdioden nichts antun und er kann es so machen.
Was aber immer noch passieren kann...
Die 3,3V werden angehoben.

Und/Oder bei Wegnahme der 3,3V, also µC Powerdown, schaltet der 
Transistor durch.

von Manfred (Gast)


Lesenswert?

Tut mir leid, konnte nicht früher antworten.

Also, es ist ein Arduino Pro Mini mit 3,3V und einem ATmega328P.

Und es ist tatsächlich so, dass meine Idee falsch war, den Pin auf Input 
zu schalten. Er wird dann gerade wegen der Schutzdioden gerade mal auf 
4V hoch kommen. Es wird also noch ein n-channel Transistor benötigt. 
Oder ein npn.

Aber bipolare Transistoren verstärken doch den Strom der Basis. Ein Gate 
nimmt keinen Strom auf. Dann wohl doch besser ein FET.

Bin ich der "TO"? Muss wohl eine englische Abkürzung sein...

von HildeK (Gast)


Lesenswert?

Veit D. schrieb:
> Ob ich es so machen würde? Ich glaube
> eher nicht.  ;-)

Nein, eher nicht. Entweder wird LOW-Side geschaltet oder ein Transistor 
spendiert.
Aber eine 5V Rail mit 3.3V über pMOS schalten könnte mit passendem FET 
auf die Art gerade noch gehen: immerhin bleibt bei AUS nur noch 1V für 
UGS übrig.
Gerade mal in ein paar Datenblätter angeschaut und den gefunden:
Der AOD409 hat UGS_th mit min. 1.2V @250µA) und kann bei 4.5V bereits 
20A leiten. Das wäre ein mögliches Beispiel ...
Es fließen also im AUS-Zustand weniger als 250µA.

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Und es ist tatsächlich so, dass meine Idee falsch war, den Pin auf Input
> zu schalten. Er wird dann gerade wegen der Schutzdioden gerade mal auf
> 4V hoch kommen. Es wird also noch ein n-channel Transistor benötigt.
> Oder ein npn.
Du könntest den Reset Pin für den Zweck verwenden.
Der hat das Problem nicht.

Manfred schrieb:
> Bin ich der "TO"?
Bist du der "Thread Owner"?

von Manfred (Gast)


Lesenswert?

Naja, eigentlich habe ich mehrere solcher "Schalter" zu bedienen, 
Reset-Pin gibt's nur einen.

Thread Owner wäre wohl eher meine Frau, die näht gerne. In meinem Fall 
als Löter wäre das eher Solder Owner ;-)

von Einer K. (Gast)


Lesenswert?

Manfred schrieb:
> Thread Owner wäre wohl eher meine Frau, die näht gerne. In meinem Fall
> als Löter wäre das eher Solder Owner ;-)
Darum gibts ja auch oben den Menuepunkt: Threadliste
Weil deine Frau hier so aktiv ist.

von Manfred (Gast)


Lesenswert?

Jetzt habe ich zumindest für das Relais eine Lösung gefunden. Ich nehme 
so eines hier:
http://wiki.sunfounder.cc/index.php?title=2_Channel_5V_Relay_Module

Da löte ich die LED am Input aus und ändere den Vorwiderstand des 
Optokopplers, dann geht das mit 3,3V.

Für die andern Module muss ich eben einen echten Treiber mit je 2 
Transistoren verwenden.

Danke für alle eure Hilfe!

von Stefan F. (Gast)


Lesenswert?

Manfred schrieb:
> Da löte ich die LED am Input aus und ändere den Vorwiderstand des
> Optokopplers, dann geht das mit 3,3V.

Die LED überbrücken müsste genügen.

von Bauform B. (bauformb)


Angehängte Dateien:

Lesenswert?

Apropos Schutzdioden, es gibt immer noch eine Steigerung des Wahnsinns: 
man kann sich auch nicht mehr auf die Dioden gegen GND verlassen! Zum 
Beispiel beim STM32G030.

von Georg G. (df2au)


Lesenswert?

Bauform B. schrieb:
> Dioden gegen GND

Das könnte man auch anders lesen: Die Dioden sind vorhanden. Du darfst 
nur keinen Strom reindrücken. Es gibt ICs, die mit einer Ladungspumpe 
das Substrat negativ vorspannen, um gegen Latchup Effekte besser 
gewappnet zu sein.

von Manfred der echte (Gast)


Lesenswert?

Auf den Titel "max. Strom duch interne Schutzdioden" würde ich eher grob 
antworten, keinen Strom. Die Schutzdioden heißen Schutzdioden, weil sie 
das IC schützen sollen, für einen regulären Betrieb verlässt man sich 
nicht auf diese.

Manfred schrieb:
> So ist es richtig!

Vom Ansatz her unpassend, so steuert man keinen P-FET.

Was hält Dich eigentlich davon ab, den µC mit 5 Volt zu betreiben, 
ProMinis habe ich in beiden Varianten hier.

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.