Infrarot Empfänger Spannung vom Raspberry runter gezogen

  • Hallo Gemeinde,

    ich habe leider nichts passendes gefunden, deshalb hier mal mein explizites Problem. Ich habe mit mehreren Infrarotempfängern experimentiert. Unter anderem mit einem TSOP 1138 und einem kleinen mit Kugel vorn sowas hier OS0038K.
    Bei allen hatte ich das Problem, dass die Ausgangsspannung, die ja ungeschalten auf Betriebsspannung liegen sollte nach ein paar Versuchen auf ca 2,5-2,7V absinkt. Das bleibt dann so. Bei zwei von den Empfängern scheinbar so niedrig, dass man nicht einmal noch eine Reaktion am Oszi sieht. Hat einer dieses Phänomen schon mal gehabt oder kann es erkären? Beim "Kugelkopf" hat es noch gereicht und die Signale kommen an.

    Gruß Hendi

  • Infrarot Empfänger Spannung vom Raspberry runter gezogen? Schau mal ob du hier fündig wirst!

  • Ja stimmt, aber es gibt ja schon den internen Pullup. In anderen Datenblättern wird der immer als optional genannt. Nichts destotrotzhabe ich das auch schon probiert. Bei den Empängern wo nichts mehr ging, hat er dann zwar die 3v3 gehalten, aber Pulse waren nicht wahr zu nehmen. Wenn der Empfänger nicht auf den PIN des PIs verbunden ist, dann kommen die Pulse ohne Pullup immer.


  • Wenn der Empfänger nicht auf den PIN des PIs verbunden ist, dann kommen die Pulse ohne Pullup immer.


    Ähm, hast Du vielleicht den internen Pulldown des Raspi GPIO aktiviert? Dann ziehen hier nämlich zwei Kräfte in zwei Richtungen :)

    So wie Marketing und Entwicklung schön an einem Strang ziehen - nur eben an unterschiedlichen Enden :D

  • Hi Schnasseldag, vll. habe ich den aktiviert, wenn dann nicht bewusst. Ich habe eigentlich nur eine Anwendung, die auf GPIOs zugreift. Das mache ich mit der C Bibliothek von Wiring PI und da habe ich den Pin nicht drin. Den Pin benutze ich explizit in LIRC. Mal ne andere blöde Frage, wozu braucht man einen Pulldown am Pin? Oder meinst du den Pin als Eingang konfiguriert und dann den Pullup ausgeschalten?
    LIRC konfiguriert doch, bzw. die zeile in der boot.conf, die Benutzung der jeweiligen Pins für die Infraroteingänge/ -ausgänge, oder?

    Ich habe mal noch ein Schaltbild angehängt.

    Gruß Hendi

  • Vielleicht war ich mit meiner o.g. Frage etwas zu knapp.

    Also, Deine Schaltung (also Dein IR Empfänger) besitzt bereits einen Pullupwiderstand. Mittels ungeänderter Schaltung kannst Du Signale sehen.
    Verknüpfst Du Deinen Schaltungsausgang mit dem Raspi, dann ist das Signal weg (und Du mißt irgendeine nahezu konstante Spannung zwischen 0..3,3V). D.h. irgendetwas zieht Deinen Spannungspegel Deiner Schaltung etwas runter. Das kann durch einen GPIO-Pin passieren, der fälschlicherweise als Ausgang definiert ist (und auf low steht) oder durch einen GPIO-Pin, welcher zwar als Eingang konfiguriert ist, jedoch den internen Pulldownwiderstand aktiviert hat.

    Wenn Du Dich in WiringPi nicht aktiv zu den Widerständen (Pullup, Pulldown, nix von beidem) äußerst, dann kann es gut möglich sein, daß bei Dir dennoch ein Pulldown konfiguriert ist. Die Einstellungen zu den Pullup/down Widerständen überleben laut BCM Datenblatt auch einen Powercycle des Raspi. D.h. sie sind (ggf.) nach dem nächsten Einschalten wieder so eingestellt, wie sie vorher standen.
    Ich schreibe bewußt "ggf. wieder so eingestellt" weil man nie weis, was das Betriebssystem bzw. dessen Kerneltreiber beim Booten mit dem GPIO Pin so alles veranstalten. Um auf der sicheren Seite zu liegen sollte man sich als Anwendungsprogrammierer jedoch nie auf irgendwelche Anfangsbedingungen verlassen, sondern seine Voraussetzungen aktiv schaffen. In Deinem Fall wäre das entweder:
    a.) allein auf den in Deiner Schaltung (IR-Empfänger) bereits integrierten Widerstand setzen oder (besser noch)
    b.) für den verwendeten GPIO den internen Pullup Widerstand zu setzen.

    Die Variante b.) hat den Vorteil, daß im Falle eines Kabelbruchs (oder Kabel ist abgezogen) der GPIO-Eingang nicht floatet. Es gibt eine geringe, also relativ unwahrscheinliche Chance, daß der Treibertransistor im IR Empfänger nicht mehr in der Lage ist, gegen beide Pullups anzukommen - das ist aber bei der Hochohmigkeit der internen GPIO-Pullups des Raspi ziemlich unwahrscheinlich.

    Ich hoffe, ich war jetzt ein wenig klarer - sorry.

  • Hallo Schnasseldag,

    Zitat

    Ich hoffe, ich war jetzt ein wenig klarer - sorry.

    Um Einiges ;-). Kein Problem, ich weiß jetzt was du meinst. Ich werde mal im Wiring PI, bzw. der Anwendung die Pins konfigurieren. Mindestens mal die, die ich nutze. Ich mach das normalerweise auch, aber da LIRC wieder eine extra Anwendung darstellt wollte ich da nicht rein funken.
    Ansonsten ist das Problem wie du es verstanden hast.
    Kann man denn irgendwo etwas über den Zusammenhang zwischen LIRC und dem Input/Output sehen, oder nachlesen? Ich finde immer nur Turorials die beschreiben was man tun muss, aber keins das sagt warum. Z.B. warum es diese eine Zeile in der /boot/config.txt "dtoverlay=lirc-rpi,gpio_in_pin=23,gpio_out_pin=22". Ich habs gemacht, es hat im Grunde genommen funktioniert, aber ich habe keine Ahnung was ich da tue. Es sieht aus also würde ich irgendeinen Wert an einen Treiber, oder ein anderes Softwaremodul übergeben.
    Danke erst mal für die Antwort.

  • Hallo hendi062,


    Kann man denn irgendwo etwas über den Zusammenhang zwischen LIRC und dem Input/Output sehen, oder nachlesen?


    Ja, kann man. Suche mal nach

    Code
    Device Tree Tutorial raspiprojekt


    oder auch nur

    Code
    Device Tree Tutorial


    um auch englischsprachige Originale zu finden.

    Dort wird Dir alles rund um das Thema DeviceTrees, was die Basis Deiner Frage darstellt, beantwortet.

    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.

  • Hallo Schnasseldag, das mit denPullups war der richtige Tip. Nicht ganz nachvollziehbar, eigentlich sollten die PINs ja unkonfiguriert sein. Aber du hast natürlich recht, sauberer ist es so. BTW die Reichweite der Fernbedienung hat sich unheimlich erhöht. Das geht jetzt im ganzen Zimmer. Die Zeile für WiringPI ist

    Code
    pullUpDnControl(3, PUD_UP);

    . Ich hab also den Pullup aktiviert.
    Andreas: Danke, hab mir was dazu durchgelesen, recht komplex, aber im Ansatz verstanden. Trotzdem bin ich der Meinung, dass man auch über LIRC die zur Funktionalität notwendige PULLUP/-DOWN Funktion setzen müsste, oder entsprechend ausschalten, ja nachdem was vorgesehen ist.
    Naja, mein Thema ist gelöst, vielen Dank dafür. Bei active low Receivern muss man halt den Pulldown aktivieren, behaupte ich mal.

    Gruß

    Hendi

Jetzt mitmachen!

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