GPIO PullUp an 5V? (DHT22 und langes Kabel)

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    ich möchte einen AM2302 (DHT22) an einem ca. 15m langem Kabel auslesen.

    In der Produltbeschreibung von AOSONG (Hersteller) steht:
    "1.Typical application circuit recommended in the short cable length of 30 meters on the 5.1K pull-up resistor pullup resistor according to the actual situation of lower than 30 m.
    2.With 3.3V supply voltage, cable length shall not be greater than 100cm. Otherwise, the line voltage drop will lead to the sensor power supply, resulting in measurement error."

    Also schließe ich den Sensor an 5V an, den PullUp-Widerstand von 4.7KOhm aber zwischen 3.3V und GPIO (GPIO25), wie z.B. unter
    http://www.raspiprojekt.de/anleitungen/sc…howall=&start=1
    beschrieben.

    Das ganze funktioniert perfekt bei 20cm Kabellänge, auch überwiegend bei einem ungeschirmten 10m Kabel, aber bei einem 20m Cat6-Kabel nicht mehr. Das Cat6-Kabel soll auch endgültig zum Einsatz kommen, wobei ich zur Senkung des Leitungswiderstands (?) für jede der drei Leitung jeweils 2 Adern (ein Paar) des Cat6-Kabels nehme, die Paare sind jeweils einzeln geschirmt, ein Gesamtschirmung aus Metallgeflecht gibts ebenfalls.

    Was kann ich tun, laut Beschreibug sollten ja sogar 30m möglich sein?

    Kann oder soll ich (wie in Beschreibung) einen 5.1KOhm PullUp zwischen 5V und GPIO einsetzen?
    Müsste ich da wie in http://tansi.info/rp/interfacing5v.html beschrieben noch eine Diode einsetzen? Wäre da eine Besserung zu erwarten?

    Irgendwo hier im Forum habe ich gelsen, dass bei längeren Kabeln ein kleinerer PullUp genommen werden soll. Stimmt das, wie gross muss er sein? Soll ich das einfach durchtesten?

    Ist bei einem anderen GPIO-Pin etwas anders (GPIO4 wollte ich später noch anders nutzen)?

    Womit soll ich die Schirmung des Kabels verbinden? GND, Schutzerde des Hauses oder gar nichts?

    Bitte keine Vorschläge, dass ich das auch per Funk machen könnte, das ist keine Option.


    Danke,
    Marc

    Einmal editiert, zuletzt von ThomasBernd42 (23. März 2014 um 12:21)

  • Wie hast Du das Kernelmodul für 1w geladen?

    Code
    modprobe w1-gpio pullup=1


    wäre gut.
    Mit dem Pullup kann man so weit runter gehen, dass 17mA Stromfluss zwischen GPIO und 3,3V nicht überschritten werden. Aber obacht, ist der zu klein, kann es passieren, dass sich der Temperatursensor im DHT22 selbst erwärmt. Musst mal im Datenblatt schauen, welcher Strom am open drain empfohlen ist. Du kannst auch, wenn die Dämpfung des Kabels zu groß ist, den Pullup an 5V setzen, das musst Du aber vorher messen, da die Spannung am GPIO nicht größer als 3,3V werden sollte.

    Der GPIO4 ist der einzige GPIO, der vom Kernel als 1w unterstützt wird. Willst du das ändern, musst Du die Source anpassen und den Kernel neu kompilieren.

    Abschirmung kommt einseitig an Masse (GND). Du kannst zusätzlich die Masse mit der Erdung verbinden, musst dann aber sicher sein, dass da kein Potential von z.B. anderen Geräten drauf liegt. Im Zweifelsfall also lieber nicht.

    Hiermit schlage ich nicht vor, die Sache per Funk zu regeln :cool:

  • ich würde keine GPIO pullups nach 5V irgendwie ohne Schutzschaltung am GPIO anbinden

    sind nur meine 2ct

    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)

  • Der DHT22 hat einen open drain an der Datenleitung. 5V über einen Pullup tun dem GPIO nichts, ausser das er auf high gezogen wird. 5V direkt am GPIO würden natürlich schaden. Der DHT22 zieht den Pegel dann entsprechend dem Datenverlauf auf low. Es kann also nichts passieren, auf der Datenleitung kommen keine 5V.


  • Der DHT22 hat einen open drain an der Datenleitung. 5V über einen Pullup tun dem GPIO nichts, ausser das er auf high gezogen wird.....

    jane is klar :lol:

    du weisst das es dem PI nix tut, aber weiss das auch der PI ? (kann jeder halten wie er will)

    der PI hat im Gegensatz zum Atmel keinerlei Schutzdioden nach Vcc und GND an den Ports wollte ich nur mal angemerkt haben.

    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)

  • Es ist nicht die Spannung die tötet, es ist der Strom. Wenn man sich die interne Schaltung der GPIO's ansieht und die Schaltung des DHT22, kann man sehen, dass da nichts passieren kann. Eine gesunde Vorsicht ist ja nicht schlecht. Aber Du selbst bemängelst oft, dass Behauptungen aufgestellt werden, die dann Gesetz sind und überall weiter getragen werden. Richtig ist, dass 5V am GPIO schaden anrichten, falsch ist, dass man einen Pegel nicht mit 5V über einen Pullup auf high ziehen kann.


  • ....Richtig ist, dass 5V am GPIO schaden anrichten, falsch ist, dass man einen Pegel nicht mit 5V über einen Pullup auf high ziehen kann.


    mit einem niederohmigen R ist das nicht falsch, die Grenzen kennt genau keiner, hier sind schon PIs gestorben wegen pullup an 5V am GPIO durch solche merkwürdigen Beschaltungen

    du kannst auch des Admins Beschreibung mit pullup auslöten für absurd erklären
    Realtime Clock (RTC DS1307) am Raspberry Pi betreiben

    wenn du Recht hättest, wäre ja alles andere unnötig .......

    sag mal liegt es heute am Datum oder .... ich jedenfalls habe nix davon wenn PI überleben :fies:


    Es ist nicht die Spannung die tötet, es ist der Strom.


    PS hatte letztens ein 200A Netzteil hier, da habe ich mich bedenkenlos an die Kontakte getraut (6V) , bei 60 kV möchte ich das nicht, auch wenn es nur 5mA könnte

    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 (1. April 2014 um 11:51)

  • Ich würde über den RasPi keine Aprilscherze machen, erst recht nicht, wenn dabei was zerstört werden könnte. Aber es ist tatsächlich so, dass auch bei dem DS1307 ein open drain dafür sorgt, dass man mit 5V arbeiten könnte, wenn da nicht die internen Pullups am I²C des RasPi wären. Die Begründung im Thread ist nicht ganz richtig, die Widerstände müssen wegen der Potentialunterschiede die an den parallelen Widerständen auftreten ausgelötet werden.

    Können wir uns darauf einigen, dass wir jedem Anfänger davon abraten mit 5V an den GPIO's zu spielen?

    Du hast natürlich recht, dass, wenn der Pullup zu klein wird, schäden auftreten können. Man muss also genau wissen was man tut. Erst recht, wenn man nicht weiß, was im jeweiligen Schaltkreis abläuft. Nicht alles wird gegen Masse gezogen. Es können bei anderen Schaltungen auch mal tatsächlich 5V als high anliegen. Das ist dann nicht schön für den RasPi.

    PS: Da wären wir wieder beim Thema Widerstand, nicht welcher Strom fließen kann ist entscheidend, sondern welcher Strom fließt und das hängt bekanntlich vom Widerstand ab (bei uns vom Hautwiderstand, da sagt man wohl das bei 50V der Spaß aufhört, weil dann ein schädlicher Strom fließt, bei 60kV sind wir wohl mit unserem Hautwidersand am Ende :shy: ).


  • .....Du hast natürlich recht, dass, wenn der Pullup zu klein wird, schäden auftreten können. Man muss also genau wissen was man tut. Erst recht, wenn man nicht weiß, was im jeweiligen Schaltkreis abläuft. Nicht alles wird gegen Masse gezogen. Es können bei anderen Schaltungen auch mal tatsächlich 5V als high anliegen. Das ist dann nicht schön für den RasPi.

    jau wir sind uns einig :thumbs1:

    nochmal der ATmega verzeiht viel mehr Dank interner Schutzbeschaltung, der PI nimmt recht schnell übel und pullup verkleinern war hier auch das Thema, deswegen nur deswegen bin ich der Spassverderber und Bedenkenträger und das gerne ;)

    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!