Stromstärken am GPIO

  • Gestern flammte in einer fb-Gruppe das Thema Belastbarkeit der GPIOs auf. Daraufhin habe ich mich nochmal hingesetzt und die Dokumente wie Datenblätter und Korrekturen dazu gewälzt, schließlich stammt mein Wissen aus den Anfangszeiten des Raspberry Pi und da waren Angaben über den Chip schwer zu bekommen. Zudem habe ich einen alten RasPi B Rev.1 geopfert, um der Sache auf den Grund zu gehen. Das Thema wurde schon viel diskutiert, aber ich denke mal, den Entwicklern vom RasPi sollte man glauben schenken und für Neueinsteiger ist das allemal interessant.

    Zur Praxis:

    GPIO als Ausgang konfiguriert an Masse (über Amperemeter, also beinahe ein Kurzschluss), lief seit 12 Stunden mit 39 mA, keine Temperaturerhöhung.
    GPIO als Ausgang konfiguriert an 3,3V läuft seit 4 Stunden mit 36 mA, ebenfalls keine Temperaturerhöhung.
    Gestern kurzzeitig versucht beides zu gleich zu machen, mit der Folge, dass der BCM immer wärmer wird, habe dann abgebrochen.


    Zur Theorie:

    Nach etwas Recherche und dem Lesen des Datenblatts für den BCM2835 fand ich dieses Dokument von Gerd van Loo, einem Maßgeblichen Mitentwickler des RasPi: http://de.scribd.com/doc/101830961/GPIO-Pads-Control2

    Ich fasse mal die für mich wichtigsten Punkte aus meiner Übersetzung zusammen:

    Die Meinung, dass die programmierbaren Treiberstufen den Strom begrenzen ist falsch.

    Die im Bild gezeigten Stromstärken zeigen keine Begrenzung an, sondern den Wert, der im jeweiligen Modus zu den festgelegten Parametern passt.
    Es ist weder der Strom, den der Anschluss liefern kann, noch eine Begrenzung des Stroms! Der maximale Strom wird einzig und allein durch den Innenwiderstand der Bauteile begrenzt.

    Zitat

    If you drive the pad high and it is shorted to ground in due time it will blow up!The same holds true if you connect it to 3V3 and drive it low.

    Soll heißen: Liegt der Anschluss auf high und man schließt ihn mit GND kurz, explodiert er irgendwann :@ , das gleiche passiert wenn er low ist und gegen +3,3V kurzgeschlossen wird.
    Bemerkung: Das habe ich in der Praxis wie oben zusehen noch nicht geschafft, aber das wird :D . Dieses irgendwann ist natürlich nicht sehr konkret.

    Ich habe auch zum high- und low-Level gefunden, das dürfte aber bekannt sein. Alles unter 0,8V ist low, alles über 1,3V ist high, Bemerkung: alles über 3,3V ist tödlich!

    Warum sollten nicht alle Anschlüsse auf die maximal in der Konfiguration verfügbaren Werte gestellt werden?

    • Die Stromversorgung des Raspberry Pi wurde mit einer Stromstärke von ca. 3mA ausgelegt, bei vollen 16mA wären das 272mA, die 3,3V Versorgung würde zusammenbrechen. Insgesamt sollen nicht mehr als 50mA fließen. Bemerkung: Das wussten wir!
    • Bei (kapazitiven) Lasten entstehen Stromspitzen, die alle Stifte in der nähe zum "hüpfen" bringen. Es ist wahrscheinlich, dass sogar Interferenzen mit der SD-Karte oder dem SD-Ram auftreten können. Bemerkung: Kabel sind kapazitiv. Das haben wir oft gemerkt, jetzt wissen wir, wo es herkommt :thumbs1:


    Wie hoch ist die sichere Stromstärke?

    Die gesamte Elektronik des (einzelnen) Anschlusses ist für 16mA ausgelegt. Selbst wenn die Treiberstufe auf 2mA eingestellt ist, treten bis 16mA keine Schäden auf. Alles darüber bezeichnet Gerd von Loo als unsicher. Bemerkung: Ich glaube ihm das, obwohl hier immer noch 39mA fließen!

  • Super Jörg, vielen Dank ...

    ich denke, mit den altbekannten Methoden

    • Strombegrenzung-Widerstand am Ausgang
    • max. Strom pro Pin im Bereich 2 bis 3 mA
    • Freilaufdioden, KerKos und bla, bla, bla ... bei Kapazitäten

    waren wir immer im grünen Bereich und bleiben dort auch.
    Deine Spitzenwerte sind beeindruckend ... aber trotzdem sollte imho betont werden, dass dies nicht zur Nachahmung empfohlen ist ;)

    cu,
    -ds-

    • Strombegrenzung-Widerstand am Ausgang
    • max. Strom pro Pin im Bereich 2 bis 3 mA
    • Freilaufdioden, KerKos und bla, bla, bla ... bei Kapazitäten

    So sehe ich es auch! Ich bin selbst erstaunt über die Werte, zumal der RasPi bis jetzt so lief. Ich habe ihn jetzt normal runtergefahren. Wichtig ist auch die Aussage, dass um so höher die Stromstärke ist, die Störungen durch gegenseitigen Beeinflussungen größer werden!

  • Hallo,
    ich bin Raspi-Anfänger und habe zu dem hier Besprochenen eine Frage: Wenn ich per Befehl <pull-up-down=....> einen internen PullUp-Widerstand an einen Pin schalte, darf ich diesen dann direkt mit einem Taster auf GND ziehen um einen Vorgang aus zu lösen? Wie groß ist ein interner PullUp-Widerstand? Ich konnte dazu noch keine Angaben finden.

    Schon mal danke für eine Antwort
    Nehcil

  • Die internen Widerstände sind 50kOhm (50k) groß. Gem. Spezifikationen kann man einen als Eingang konfiguriertem GPIO gegen 3,3V oder GND verbinden. Aus der Erfahrung heraus rate ich Dir jedoch in Reihe zum Schalter einen Widerstand um die 500Ohm (500) zu schalten. Hast du doch mal eine Fehlprogrammierung ist so der GPIO geschützt. Ich würde auch externe Pull-Widerstände (10k) empfehlen. Wie es manchmal so kommt hat man noch mehr Ideen oder möchte seine externe Schaltung weitergeben, dann funktioniert die auch wenn in der Software Pulls gesetzt sind, weil 10k als paralleler Widerstand für die internen Widerstände OK ist, sind in der Software aber keine Pulls gesetzt und es sind keine externen da kann es sehr störanfällig werden, wenn nicht sogar ganz aufhören zu funktionieren.

  • Hallo Jörg,

    herzlichen Dank für die ausführliche Antwort, die mir voll einleuchtet. Ich werde also sowohl einen externen PullUp- als auch einen Serienwiderstand im Schaltkreis verwenden. Mal sehen, ob das mit einem MOSFET BS170 als Schlter geht weil der mit 3 V am Gate ja noch nicht so sehr geöffnet ist. Ich werde dann berichten.

    Beste Grüße
    nehcil

  • Ich hoffe ich bekomme jetzt keine "Schläge", aber ich dachte ich bringe es mal zur Sprache.

    Ich habe meinen ersten RPi (Model B Rev. 2) vor etwa 2,5 Jahren gekauft und der rennt noch immer ohne Schmerzen. Also ich hab bislang noch keinen RPi in Rauch aufgehen lassen. Das einzige was ich gemacht hab ist eine Externe Platte angeschlossen und dann das Datensystem dort hin übertragen. Also damit Schreibzugriffe auf Speicherkarte soweit wie möglich reduziert wird.


    Michael

    Der Raspberry Pi ist schon ein schönes Spielzeug mit dem man einiges anfangen kann.

    :angel: :wallbash:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!