Default-Werte GPIO nach Boot

  • Hey,
    nach dem Booten sind die GPIO-Pins ja per Default auf INPUT/LOW gesetzt. Hat das irgendeinen Vorteil gegenüber OUTPUT/LOW.
    Ich programmiere gerade ein Projekt über das ich alle meine GPIO-Pins ansteuern kann und bin gerade dabei die Default-Werte von ungenutzten GPIO-Pins zu setzen. Hab das jetzt einfach auf OUTPUT/LOW gesetzt.. machts irgendeineinen unterschied obs INPUT oder OUTPUT ist? (z.B. Stromverbrauch o.ä.)

  • Ja natürlich hat das einen entscheidenden Vorteil. Stell Dir vor, Du hast eine Schaltung am GPIO, die einen Pin mit Highpegel treibt. Also nicht einfach ein Taster mit Pullup, sondern ein Logikgatter, oder ein Arduino. Und dann treffen der Ausgang des Arduinos mit High und der Ausgang des Raspi mit Low aufeinander. Was wird dann wohl passieren?

    Prinzipiell plädiere ich dafür, auch Eingangs-GPIOs immer mit einem 1kohm Widerstand in Serie zu beschalten. Denn sollte der GPIO zufällig auf Ausgang und High geschaltet werden und der Taster am GPIO gegen Masse schalten, kannst Du den GPIO damit ebenfalls zuverlässig erledigen.


  • Ja natürlich hat das einen entscheidenden Vorteil. Stell Dir vor, Du hast eine Schaltung am GPIO, die einen Pin mit Highpegel treibt. Also nicht einfach ein Taster mit Pullup, sondern ein Logikgatter, oder ein Arduino. Und dann treffen der Ausgang des Arduinos mit High und der Ausgang des Raspi mit Low aufeinander. Was wird dann wohl passieren?

    Prinzipiell plädiere ich dafür, auch Eingangs-GPIOs immer mit einem 1kohm Widerstand in Serie zu beschalten. Denn sollte der GPIO zufällig auf Ausgang und High geschaltet werden und der Taster am GPIO gegen Masse schalten, kannst Du den GPIO damit ebenfalls zuverlässig erledigen.


    Ja, aber was ist denn dann besser? Output oder Input? z.B. wird meine Raspi ja flöten gehen, wenn mein Relaisboard angeschlossen ist und ich als default-value Input hab (wenn ich den ULN nicht angeschlossen habe).

    Also low als default sollte ja logisch sein (die wahrscheinlichkeit dass ich ein low aktive Komponente anschließe ist geringer als ein high aktives) nur bei output/input weiß ich grad nicht, was ich da am besten einstellen soll.

    default auf high und output werd ich natürlich nicht setzten und wird dementsprechend nicht zufällig passieren. Die frage ist nur output/low oder input/low. Hab nicht wirklich verstanden warum input/low besser sein soll als output/low

    Einmal editiert, zuletzt von madman (27. April 2016 um 23:32)

  • z.B. wird meine Raspi ja flöten gehen, wenn mein Relaisboard angeschlossen ist und ich als default-value Input hab (wenn ich den ULN nicht angeschlossen habe).

    Warum sollte er das tun? Gehen zwei Glühlampen kaputt, wenn Du sie zusammenschaltest und keine Spannungsquelle angeschlossen ist?

    Zitat

    Also low als default sollte ja logisch sein (die wahrscheinlichkeit dass ich ein low aktive Komponente anschließe ist geringer als ein high aktives) nur bei output/input weiß ich grad nicht, was ich da am besten einstellen soll.

    Nein ist es nicht und Du solltest Dich darauf nicht verlassen: TxD an GPIO14 ist output und high, wenn Uart enabled. CE0 und CE1 an GPIO8 und 7 sind output und hight, wenn SPI enabled, MOSI und SCK sind dann output und low(?).


    Zitat

    default auf high und output werd ich natürlich nicht setzten und wird dementsprechend nicht zufällig passieren.

    So? Sicher? Immer? Du hast einen Schalter an GPIO7 angeschlossen, gegen GND. Weil Du SPI eh nicht nutzt und den Pin als normalen GPIO nimmst. Und jetzt bringt irgendeine Installation (zum Beispiel eine Homeautomation die SPI für nRF-Module nutzt) eine SPI-Komponente mit und aktiviert SPI. CE1 geht auf high, Dein Schalter schließt nach GND kurz und der GPIO7 geht in die ewigen Jagdgrunde ein.

    Das ist nicht wie bei einem Mikrocontroller, wo ein einziges Programm läuft und wenn das einmal läuft keiner mehr von außen reinpfuscht.

    Zitat

    Hab nicht wirklich verstanden warum input/low besser sein soll als output/low

    Weil das so ist. Fragst Du ernsthaft, warum es besser ist, wenn der Herd nach dem Anschließen nicht erstmal selbständig alle Herdplatten einschaltet?

  • die Frage ist schon falsch,

    was ist ein default Wert beim oder nach dem Booten mit vielerlei Kernel Versionen und unendlichen Möglichkeiten Treiber zu laden?

    Die Frage kann dir jetzt und zukünftig keiner beantworten!

    Du könntest genausogut die default Schuhgröße der Männer eines Landes erfragen.

    lasst die PIs & ESPs am Leben !
    Energiesparen:
    Das Gehirn kann in Standby gehen. Abschalten spart aber noch mehr Energie, was immer mehr nutzen. Dieter Nuhr
    (ich kann leider nicht schneller fahren, vor mir fährt ein GTi)

    Einmal editiert, zuletzt von jar (28. April 2016 um 10:38)

  • ja, danke für die Antworten. Habe zu spät gemerkt, dass die Frage komplett sinnlos ist. Mein Programm wird ja erst gestartet wenn das Betriebssystem gestartet ist, bis dahin macht die PI ja eh was sie will. Und bevor mein Programm gestartet ist, sind die Pins ja auf die Default-Werte der PI eingestellt (Input/Low). Wenn ich durch mein Programm das jetzt auf Output/Low schalte, kann das ja nur Nachteile haben.


    danke aber für die Antworten!

Jetzt mitmachen!

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