Komisches Verhalten (Spannung) bei GPIO als Eingang

  • Erstmal hallo zusammen.

    Ich verzweifel langsam.

    Ich nutze meinen Raspberry Pi 4 um durch einen Tastendruck in einem Python-Skript was auszulösen.

    Ich nutze jetzt z.B. GPIO 16 den habe ich per externen 10kOhm Pull-Up Widerstand an 3,3V verbunden. (Internen hatte ich auch schon genutzt, gleiches Verhalten)

    Der interne ist natürlich abgeschaltet.

    Habe auch schon mehrere GPIOs durch 21,20,26 und jetzt 16

    Nur nach einer bestimmten Zeit Fällt die Spannung am GPIO 16 auf 2.0V ab.

    Bis dahin wurde auch kein Tastendruck ausgelöst.

    Dies löst dann ein Low Event aus und meine "Funktion" fängt an zu laufen.

    Der GPIO bleibt dann dauerhaft bei 2V.

    Habe auch schon bei:

    /sys/class/gpio nach geschaut.

    Dort steht Direction auf "IN" also richtig.

    Bis die Spannung abfällt dauert es manchmal 1 Tag bis 1 Woche.

    Habe schon mehrere Arten versucht die GPIOs in Python zu handeln, aber überall das selbe Verhalten:

    PRi.GPIO , gpiozero, pigpio


    Hier ist mein Quelltext von RPi.GPIO

    GPIOZero:

    Python
    from gpiozero import Button, LED
    
    Gpio = Button(16,bounce_time=0.2,pull_up=False)
    Green_LED = LED(19)
    
    Gpio.when_pressed = Funktion

    PiGPIO

    Code
    import pigpio
    Gpio = pigpio.pi()
    
    Gpio.set_mode(16, pigpio.INPUT)
    Gpio.set_mode(19, pigpio.OUTPUT)
    Gpio.set_glitch_filter(16, 300000)
    Gpio.set_noise_filter(16, 100000, 0)
    Gpio.callback(16, pigpio.RISING_EDGE, Funktion)  <-- Da reagiert er nur auf die fallende Flanke 

    Das schlimme ist, das ganze System ist vorher 3 Jahre mit einem Raspberry Pi 2 ohne Probleme gelaufen mit der selben Konfiguration.

    Habe ein Update gemacht, da mir dort der RAM immer ausgegangen ist.

    Habt ihr eine Idee was das sein könnte?

    Ist der Pi vielleicht kaputt?

  • Komisches Verhalten (Spannung) bei GPIO als Eingang? Schau mal ob du hier fündig wirst!

  • Schaltplan habe ich gerade keinen. Wo kann man einen Quick and Dirty erstellen?

    Also die Verbindung zum Taster ist da gerade getrennt.

    Trotzdem liegen da nur 2,0V an.

    Habe es gemessen.

    Links vom Widerstand sind es 3,3V

    Rechts sind 2,0V

    Irgendwo her muss der GPIO ja auf 2,0V herunterregeln.

    Den Pi benutze ich mit dem Original Raspberry Pi Netzteil.

    Sieht ein bisschen wild aus, da ich anfangs keinen externen Pull-Up Widerstand genutzt habe war es so am einfachsten.

  • Pull Down ist natürlich ausgeschaltet.

    Oben im Code ist ja nix.

    Nur weil im Code kein pullup/pulldown verwendet wird, heisst das nicht, dass einer geschaltet ist.

    Beim Booten werden GPIO 0-8 (pullup) und GPIO 9-27 (pulldown) voreingestellt und bleiben solange in diesem Zustand bis nicht explizit eine Änderung veranlasst wird.

    Der interne Widerstand beträgt dabei min/max 50/56 kOhm.

    Servus !

    RTFM = Read The Factory Manual, oder so

  • Wenn ich den Widerstand den Farben zu ordne, Sw,Br,Sw,Sw, komme ich auf 10 Ohm und nicht auf 100 oder 1000 Ohm., bei wahrscheinlich 1% Toleranz.

    Soll heißen, Multimeter nehmen und den Widerstand mal ausmessen.

    Also mein Schätzeisen sagt genau 10kOhm

    Nur weil im Code kein pullup/pulldown verwendet wird, heisst das nicht, dass einer geschaltet ist.

    Beim Booten werden GPIO 0-8 (pullup) und GPIO 9-27 (pulldown) voreingestellt und bleiben solange in diesem Zustand bis nicht explizit eine Änderung veranlasst wird.

    Der interne Widerstand beträgt dabei min/max 50/56 kOhm.

    Servus !

    Ja aber wenn ich den internen Pull-Up Wiederstand aktiviere, dann ist das Verhalten ja genau so. Habe bis vor kurzem mit internen Pull-Ups gearbeitet und erst letzte Woche mal einen externen Pullup dran gehangen.

    Weil ich gedacht habe die internen haben vll. ne Macke.

  • Ich verwende das Originale Pi Netzteil für den Pi4

    Zeig mal bitte zur Sicherheit einen Link zum Netzteil.

    USB-Reciever für Wetterstation

    Hast Du evtl. einen aktiven USB-Hub, den Du testweise zwischen RPi und den USB-Reciever hängen könntest?

  • Moin,

    nur so eine Idde:

    Hast Du eventuell in der config.txt die Pulldowns aktiviert?

    siehe: https://www.raspberrypi.org/documentation/…fig-txt/gpio.md

    NACHTRAG: Hab nochmal nachgeschaut: Die internen Pulldowns haben ca. 65 KOhm, dürften die Spannung also nicht

    auf 2 Volt runterziehen wenn Du 10KOhm als Pullup benutzt. Dann ist es wohl doch ein anderer Fehler.

    Edited once, last by ait (February 11, 2021 at 12:46 PM).

  • Zeig mal bitte zur Sicherheit einen Link zum Netzteil.

    https://www.berrybase.de/raspberry-pi-c…3-0a-eu-schwarz

    Zeig mal bitte zur Sicherheit einen Link zum Netzteil.

    Hast Du evtl. einen aktiven USB-Hub, den Du testweise zwischen RPi und den USB-Reciever hängen könntest?

    Leider nicht.

    Habe jetzt die ganze Schaltung umgekehrt. Also Pull-Down gemacht. Und jetzt ist die Spannung Differenz auch 3,3V

    Habe jetzt wieder GPIOZero aktiviert.

    Mal gucken wie lange es jetzt läuft.

    Trotzdem ist das irgendwie komisch.

  • Mit dem HM-MOD-RPI-PCB könntest etwas Empfangsprobleme bekommen, denn der PI 4 stört sehr.

    Ich habe da eine externe Antenne dran.

    Bis jetzt läuft alles 1A.

    Sogar der IO-Broker läuft mal geschmeidig, was bei Pi2 leider nicht immer der fall war.

    Es scheint, dass ich nicht der einzige bin mit dem Verhalten:

    https://sourceforge.net/p/raspberry-gpio-python/tickets/168/

    Ganz unten beschreibt jemand was ähnliches.

    Am liebsten wäre mir ein Pi2 mit 2GB gewesen. Das Ding war noch schön kühl. Rechenleistung brauch ich eh keine. Nur der RAM war immer das Problem.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!