GPIO vorbelegung beim Einschalten

  • Hallo Frank,

    Möglichkeit 1: Bare Metal - suche danach und Du wirst es nicht wollen.

    Möglichkeit 2: Da die meisten GPIO beim Booten als Eingang geschaltet sind (außer GPIO14 = TxD) wirst Du dieses Verhalten gar nicht explizit herbeiführen müssen, da es bereits schon so ist, wie Du es haben möchtest. Deine Anwendung hat dann alle Zeit der Welt, diesen GPIO als Ausgang zu setzen und LOW drauf zu legen.

    Möglichkeit 3: Konfiguration der DeviceTrees und Erstellung von DeviceTree-Blobs (sind hervorragende Stichworte für die Suchfunktion)

    Möglichkeit 4: Elektronik-Hack (Stichwort: Selbsterhaltungsschaltung)


    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (16. Februar 2017 um 10:03)

  • Hallo,

    ich glaube nicht, das dies möglich ist. Aber auch dafür gibt es eine Lösung:

    Wenn Du den Raspi einschaltest, kanst Du die Spannung an den Pins ja messen. Und wenn der Pin später mal als Ausgang verwendet werden soll, und Du dort Hi mist, schaltest Du direkt an den Pin den Eingang eines 74HC14. Den Ausgang des 74HC14 -Gatters verwendest Du als währe es ein ganz normaler GPIO. Die IS hat 6 Inverter mit Schmidttrigereingang. Die Spannungsversorgung des 74HC14 legst Du an 3,3V. Im Programm must Du die Pegel natürlich auch vertauschen.

    Du kanst die IS auch an 5 V Spannung legen, dann must Du aber für die Pegelanpassung einen 74HCT14 verwenden!!!!

    Wenn der Pin später als Eingang verwendet weden soll, kanst Du ebenfals einen 74HC14 verwenden. Spannung an 3,3V !! 5 Volt geht in dem Fall nicht! Ausgang des 74HC14 an den Pin und Eingang beschalten als währe es ein GPIO. Vom Eingang des 74HC14 natürlich ein R auf Masse.

    Für mehrere GPIO ggf. auch mehrere 74HC14.

  • Hallo Andreas,

    dass mit dem dt klingt gut.
    Ich möchte im speziellen Fall PIN18(GPIO24) so schnell wie möglich als Ausgang auf LOW gesetzt haben.
    Hast du bitte ein Link mit einem Beispiel für mich ?

    Gruß
    Frank

  • Hallo Frank,


    Hast du bitte ein Link mit einem Beispiel für mich ?


    Suche bitte nach

    Code
    Device Tree Tutorial
    Device Tree Blob Compiler

    Mir fallen da recht brauchbare Tutorials von der Foundation ein, der User Raspiprojekt hat mal eines geschrieben - und soweit ich mich entsinne, gab es zu dem Thema auch mal was bei elinux.

    Ursprung aller Device-Tree-Tutorials ist wohl das hier. Da gibt's auch einen Link zum Device Tree Blob Compiler.

    Dann berichte bitte, was Du probiert hast und ggf. mit welchem DeviceTree Du Erfolg hattest. Dann können andere hier auch was lernen.


    Viel Erfolg!

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

  • Hallo,

    ich denke nicht, das sofort bein Einschalten der Spannung auch sofort die notwendigen Aktionen eingeleitet werden, wie es gefordert war.

    Wen man warten kann bis das Betriebssystem oder wenigstens ein Teil davon hochgefahren ist, dann wird es klappen.

    Wenn es sofort erforderlich wird, dann hilft warscheinlich nur meine Hardwarelösung..

    Einmal editiert, zuletzt von Aro (16. Februar 2017 um 12:01)

  • Servus Frank,


    ich möchte dass ein GPIO Pin möglichst sofort nach dem einschalten der Stromversorgung des Raspi3 auf LOW liegt.

    hatten wir erst ... einfachste Lösung: 10 kOhm Pulldown mit dem I/O verbinden:
    "Ausgeschaltete" GPIO's beim Boot gesucht!


    ...
    Hardwarelösung mit Pulldowns auf Masse (10kOhm) funktioniert einwandfrei. Habe eine Messung mit dem Oszilloskop gemacht, der Transistor hat für ~15ms einen Durchgang. Das kann aber durch ein unsauberes Signal bzw. die Einschaltschwankung? kommen, also im Grundsatz schaltet der GPIO beim booten nicht durch und wird auf LOW gehalten.

    cu,
    -ds-


  • ich möchte dass ein GPIO Pin möglichst sofort nach dem einschalten der Stromversorgung des Raspi3 auf LOW liegt.
    Welche Möglichkeiten gibt es da ?
    Gruß Frank


    ich glaube nicht, das dies möglich ist.............

    ich glaube schon

    Der PI Tx Pin sendet immer Bootinfos als Terminal, low aktiv, ergo ist der default Pegel high unterbrochen von kurzen low Impulsen, diese kurzen low Zeiten kann man überbrücken hinter der Diode mit einem Kondensator!

    Wenn ich das über eine Diode auf einen Kondensator schicke bekommt man kein low heraus, dieses high kann einen NPN oder FET dauerhaft auf low GND halten, evtl. noch mit weiteren Dioden als wired OR von anderen GPIO.

    Wenn der PI gestartet wurde kann man Tx ja abschalten oder umkonfigurieren zu einem Port und dann länger low anlegen bis der Kondensator leer ist oder ein aktiver Port den Kondensator entleert.

    Man könnte auch mit einem Resetcontroller, monoFLOP, NE/TLC555 arbeiten der nach dem Power ON solange low hält bis der PI bereit ist und die Steuerung übernimmt.

    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)

Jetzt mitmachen!

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