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
Kannst du bitte das Schaltbild noch einmal kritisch betrachten? So macht es keinen Sinn. Der Port liegt permanent auf Masse.
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.
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.
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.
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.
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.
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.
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.
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'.
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 ;)
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.
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 :(
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.
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
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.
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?
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
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.
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.
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
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 ...
Hallo, Danke. Die Erklärung macht Sinn. Ob ich es so machen würde? Ich glaube eher nicht. ;-)
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.
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...
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.
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"?
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 ;-)
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.
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!
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.