wer nutzt hier 1w DS18B20 ?

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • bin ich der einzige der das mit parasitärer Versorgung haben möchte ? :wallbash:

    ich installiere mir einen Wolf und nix klappt und finde darüber:

    http://forum.fhem.de/index.php?t=rview&goto=62724&th=10892

    ich habe genau den Fehler, der Sensor wird erkannt liefert aber 85° :s

    es gibt einen patch der beim nächsten Kernel update wieder weg sein dürfte :irre:

    also muss ich doch meinen funktionierenden source vom AVR zum PI bringen ? =(

    was meint ihr dazu ?

    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 (24. August 2013 um 23:43)

  • Der Sensor kriegt nicht genug Strom. Du musst einen Strong-Pullup in Hardware einbauen (wenn ich mich recht erinnere). Mir war das zu aufwendig, deshalb habe ich ein 3adriges Kabel genommen.


  • Der Sensor kriegt nicht genug Strom. Du musst einen Strong-Pullup in Hardware einbauen (wenn ich mich recht erinnere). Mir war das zu aufwendig, deshalb habe ich ein 3adriges Kabel genommen.

    das lasse ich nicht gelten, ich habe hier schon 6 Sensoren auf parasitärer Versorgung an verschiedenen Stellen bis 25m Kabel liegen und es funktioniert !

    warum sagen alle immer das geht nicht ?

    entweder einer erklärt mir wie ich mein C-Source auf den PI bringen kann oder aber vermutlich die beste Lösung einen AVR mega 168 dem armen PI zur Seite stellen, dann hat der auch mal AD-Wandler für die Spannungen :auslachen::angel:

    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 (25. August 2013 um 01:10)

  • Hallo jar,

    Zitat


    ich habe hier schon 6 Sensoren auf parasitärer Versorgung an verschiedenen Stellen bis 25m Kabel liegen und es funktioniert !


    Genügen die 3.3 V des Pi? Ich hab's (entsprechend allgemeiner Empfehlung) probiert, meiner macht keinen Mucks. :(

    Gruß, mmi


  • Hallo jar,


    Genügen die 3.3 V des Pi? Ich hab's (entsprechend allgemeiner Empfehlung) probiert, meiner macht keinen Mucks. :(

    Gruß, mmi

    das kann ich momentan noch nicht beantworten, es hängt grad nur 1 Sensor ohne Kabel direkt auf dem GPIO, das verrückte die ID wird ja richtig gelesen nur die Temperatur nicht und da vermute ich Timingprobleme im Zugriff, kenne ich ja schon vom AVR, deswegen habe ich alle existierende SW selber umgeschrieben und nun funktioniert es am AVR und ich bin guter Dinge das es am PI genauso gehen müsste, zumindest mit dem ersten Sensor auf der GPIO ohne Kabel.

    Sollte das später am Kabel mit den 3,3V hapern muss Plan B her, aber erst mal soll der kabellose Sensor auf dem GPIO mit 3,3V spuren.

    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 (25. August 2013 um 02:48)

  • Dann halte mich bitte auf dem Laufenden bei der 3.3V Lösung. Muß natürlich simpel bleiben, sonst bleibe ich auch lieber bei 3 Drähten.

    Timingprobleme beim Zugriff sollte es eigentlich nicht geben, wird ja vom 1w Kernelmodul gemanaged. Ich lasse bei Temperaturwechsel eine Audioausgabe machen - funktioniert absolut zuverlässig.
    Allerdings hängt da auch nur ein DS18B20 an kurzem Kabel dran. Vermutlich sollte man bei mehreren Sensoren darauf achten, daß sie nacheinander (und nicht gleichzeitig) abgefragt werden. Wie das Kernelmodul sonst reagieren würde, weiß ich nicht - es müßte ja eine queue bilden, daran glaube ich mal eher nicht (ist eigentlich auch nicht die Aufgabe eines Kernelmoduls bei einem Bus wie w1).

    Gruß, mmi.

  • Der DS18B20 funktioniert bei 3 Volt, auch mit parasitärer Versorgung, man muß es nur richtig machen.

    Der Sensor braucht bei der Messung 1,5mA und wenn während der Messung die Spannung einbricht gibt es 85°. 3,3Volt Versorgung ist nah an der Grenze und bei zu langer Leitung und Übergangswiderständen an den Kontakten ist man schnell zu niedrig. Es spricht aber nichts dagegen den Sensor mit 5Volt zu versorgen und den PullUp-Widerstand an 3,3 Volt zu legen damit der Bus mit Pi-verträglichen 3,3Volt läuft.

    Bei parasitärer Versorgung liegt der Pullup-Widerstand in Reihe mit dem PI und während der Messung fällt an ihm zuviel Spannung ab. Bei den vorgeschlagenen 4,7k währen das theoretisch 7,05 Volt. Da bleibt nicht viel übrig zum Messen. Deßhalb muß der Widerstand während der Messung (für min 750ms bei voller Auflösung) überbrückt werden. Das wird im Datenblatt als 'Strong PullUp' bezeichnet.

    Im Kerneltreiber ist zwar die Erkennung und Sonderbehandlung für parasitär versorgte Sensoren eingebaut, die Ansteuerung eines IO-Pins für den Transistor der den Widerstand überbrückt aber nicht.
    Parasitäre Versorgung funktioniert an PI nur über einen zusätzlichen Bustreiber oder einen Wandler auf einen anderen Bus, z.B. über den i2c-Bus mit dem DS2482 oder den DS2480 für den seriellen Anschluß.

    Jars Problem ist, daß er konsequent Datenblätter ignoriert und seine Lösung beim AVR 'Ich lese 10 Werte, einer wird schon richtig sein' für ganz toll und funktionierend hält.

  • Diese Erfahrungen sind für mich sehr wertvoll.
    Parasitär klingt schon irgendwie unsauber finde ich. 100 m 3-poliges Kabel (3*0.25 qmm) sind für ca 20 Euronen zu haben. Ich habe es nicht gewagt, das Abenteuer des 2-poligen Anschlusses zu versuchen. Ich schließe die Sensoren immer 3-polig an. Keine Probleme bis jetzt, obwohl mein Kabel mit 3*0.07qmm eigentlich zu dünn ist.
    Sollte ich einen Sonderfall haben, z.B. vorhandenes 2-poliges Kabel ohne Möglichkeit das zu ändern, werde auch ich parasitär anschließen und dann beten das es klappt. 3-polig und 2-polig soll auch mischbar sein.

    Bei mir ist eher die Zeit und die Nervenstärke knapp als alles andere, wenn ich mir mit Hardware das Leben erleichtern kann, dann mach ich das.

  • so mal der Reihe nach


    Genügen die 3.3 V des Pi? Ich hab's (entsprechend allgemeiner Empfehlung) probiert, meiner macht keinen Mucks. :(
    Gruß, mmi

    die Anwort liefert Oliver:


    Der DS18B20 funktioniert bei 3 Volt, auch mit parasitärer Versorgung, man muß es nur richtig machen.

    das unterschreibe ich, nur wer macht das nicht richig ?
    dazu dürft ihr hier mal lesen:
    http://forum.fhem.de/index.php?t=rview&goto=62724&th=10892
    Zitat:
    "Das geht aber nur mit gepatchten Treibern.
    http://www.raspberrypi.org/phpBB3/viewtop…=243064#p243064

    OK ich habe momentan 2,2k vielleicht versuche ich mal 1,8k


    Im Kerneltreiber ist zwar die Erkennung und Sonderbehandlung für parasitär versorgte Sensoren eingebaut

    bezweifel ich das da es auch andere versucht haben, aber wenn der Wechsel 2,2k zu 1,8k die Lösung bringt bin ich still


    Parasitäre Versorgung funktioniert an PI nur über einen zusätzlichen Bustreiber oder einen Wandler auf einen anderen Bus, z.B. über den i2c-Bus mit dem DS2482 oder den DS2480 für den seriellen Anschluß.

    na ja, wenn ich einen zusätzlichen Chip an den PI bringe dann mit Sicherheit keinen Bustreiber sondern einen Atmel der auch gleichzeitg noch AD Wandlung macht


    Jars Problem ist, daß er konsequent Datenblätter ignoriert und seine Lösung beim AVR 'Ich lese 10 Werte, einer wird schon richtig sein' für ganz toll und funktionierend hält.

    Quark, ich lese maximal 3mal den Sensor und ich habe das Datenblatt studiert, wie hätte ich sonst den im Netz schwirrenden DS18 Code umschreiben können also prüfe ich CRC.
    Das eine "Lesung" mal daneben hauen kann bei soviel Leitung im netzspannungsverseuchter Umgebung unter Putz (dort liegen ja mehr als ein Kabel) ist was völlig normales, sonst gebe es bei Ethernet nicht soviel overhead oder bei USB, dann wären alle Protokolle und Paketwiderholungen unnötig ;)


    Parasitär klingt schon irgendwie unsauber finde ich. 100 m 3-poliges Kabel (3*0.25 qmm) sind für ca 20 Euronen zu haben. Ich habe es nicht gewagt, das Abenteuer des 2-poligen Anschlusses zu versuchen. Ich schließe die Sensoren immer 3-polig an. Keine Probleme bis jetzt, obwohl mein Kabel mit 3*0.07qmm eigentlich zu dünn ist.
    Sollte ich einen Sonderfall haben, z.B. vorhandenes 2-poliges Kabel ohne Möglichkeit das zu ändern, werde auch ich parasitär anschließen und dann beten das es klappt. 3-polig und 2-polig soll auch mischbar sein.

    Bei mir ist eher die Zeit und die Nervenstärke knapp als alles andere, wenn ich mir mit Hardware das Leben erleichtern kann, dann mach ich das.

    verstehe ich, nur alle Leitungen liegen hier schon, ich könnte auch eine dritte Ader (nur nicht überall) aktivieren aber neuinstallieren tue ich mit Sicherheit nicht und ich weiss ja das es geht. Auch bei Ethernet ist Paketwiderholung gang und gebe ergo wenn 2-Draht funktioniert und wenn dazu mal ein Sensor für Temperatur ! nochmal ausgelesen werden muss wen störts ? mich weniger als wenn ich bei download von 3GB länger warten muss :D

    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 (25. August 2013 um 10:13)

  • Du willst es nicht verstehen. Was Du versuchst ist pfusch und kein parasitärer Betrieb. Dir bricht bei der Wandlung die Spannungsversorgung weg und da ist es egal ob Du 2,2k (3,3Volt Spannungsabfall) oder 1,8K (2,7 Volt Spannungsabfall) nimmst.
    Und nur weil Du Glück hast, daß es bei Dir am AVR bei jedem dritten Mal funktioniert mußt Du nicht rumheulen, daß so ein Unsinn am Pi nicht geht.

    Außerdem ist es ganz schlechte Stil mein Posting Zeilenweise zerrissen zu Quoten um die Aussagen zu verfälschen.


  • Du willst es nicht verstehen. Was Du versuchst ist pfusch und kein parasitärer Betrieb. Dir bricht bei der Wandlung die Spannungsversorgung weg und da ist es egal ob Du 2,2k (3,3Volt Spannungsabfall) oder 1,8K (2,7 Volt Spannungsabfall) nimmst.
    Und nur weil Du Glück hast, daß es bei Dir am AVR bei jedem dritten Mal funktioniert mußt Du nicht rumheulen, daß so ein Unsinn am Pi nicht geht.

    Außerdem ist es ganz schlechte Stil mein Posting Zeilenweise zerrissen zu Quoten um die Aussagen zu verfälschen.

    und ich verstehe immer noch nicht warum du hier Falschaussagen verbreitest:


    Jars Problem ist, daß er konsequent Datenblätter ignoriert und seine Lösung beim AVR 'Ich lese 10 Werte, einer wird schon richtig sein' für ganz toll und funktionierend hält.

    Code
    if(retry>2)    // jar_retry
                {    _ret = OW_PRESENCE_ERR;    // jar_retry
                    usart_write("No Sensor found \r\n");
                    break;        // jar_retry


    ich sagte doch mehr als 2x lesen muss ich nicht und ausserdem sind Wiederholungen bei Computerdatenaustausch was völlig normales

    wenn die Zeiten zwischen den 1w Cyclen nicht eingehalten werden ist es ein Problem der software, deswegen habe ich sie ja selbst angepasst, schade das du immer noch sauer auf mich bist (kleine Anmerkung dein Stil mich hier so zu diffamieren finde ich kaum besser)

    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)

  • Wieso dürft ihr so einen scharfen Ton benutzen und andere dürfen das nicht?

    Wenn ich das anmerken darf, wenn man mit 9 Bit statt 12 Bit Auflösung auskommt, soll die Messzeit und vermutlich damit auch die Stromaufnahme geringer sein. Ich könnte mich natürlich irren.

    Einmal editiert, zuletzt von punk (25. August 2013 um 13:59)

  • Zitat


    Wenn ich das anmerken darf, wenn man mit 9 Bit statt 12 Bit Auflösung auskommt, soll die Messzeit und vermutlich damit auch die Stromaufnahme geringer sein.


    Ja, bei 9 Bit reduziert sich die Zeit für die Wandlung auf ein Achtel, also etwa 94ms. Damit Muß der eingebaute Kondensator die 1,5mA auch nur ein Achtel der Zeit aufbringen.

    Aber auch dann läuft die Messung nur stabil wenn man einen StrongPullUp verwendet.

  • Ich kann mir diesen StrongPullup sogar irgendwie vorstellen, wie sieht denn das in der Praxis aus? Wenn damit das Problem zu beseitigen wäre, wäre es doch einen Versuch wert, sich diese Einrichtung einzubauen.

    Ich habe jetzt einen dicken Widerstand vor Augen, so ein 1/2 Watt Teil. Es ist vermutlich etwas komplizierter?

  • Der StrongPullUp sorgt dafür, daß die Versorgungsspannung für den Sensor nicht zusammenbricht. Das tut sie weil am PullUp-Widerstand zuviel Spannung abfällt.
    Einfachste Lösung? Man überbrückt den PullUp solange viel Strom gebraucht wird und nimmt die Brücke weg wenn Daten übertragen werden und er gebraucht wird. Das wird normal mit einem MosFet gemacht der parallel zum Widerstand geschaltet wird. Das soll etwa 10µs nach Messbeginn passieren, solange kann der eingebaute Kondensator die Wandlung sicher versorgen, und wird für die Dauer der Wandlung gehalten.
    Um den Transistor zu schalten braucht man einen I/O-Pin am Prozessor, das ist beim Linux-Treiber aber nicht vorgesehen, man müßte ihn also anpassen und neu compilieren oder einen Treiberbausten einsetzen, der das schon eingebaut hat.
    Das ist übrigens einer der Gründe warum das FHEM-Projekt OneWire auf dem Pi nur über den DS2482 oder USB-Wandler unterstützt (oder unterstützt hat, ich verfolg das nicht mehr).

  • Ich verstehe.
    Das ist mir zu schwierig, ich muss das schon vorher geahnt haben. Jedenfalls benutze ich einen recht teuren Baustein der im USB-Anschluss steckt und dazu noch owfs. Ich mache daher wohl nichts selbst und sitze einfach auf den Schultern von anderen. Immerhin ist mein größtes Problem bisher gewesen, dass der USB-Stecker nicht ordentlich eingesteckt war und damit owfs nicht erschienen ist beim Mounten.
    Vielen Dank für diese Auskunft :)

  • also es geht mit parasitärer Versorgung der DS18B20 also echter 2-Draht !
    ich wusste es

    https://www.forum-raspberrypi.de/Thread-muss-di…=28981#pid28981

    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. August 2013 um 11:34)

  • Ja, ein typischer Jar. Wieder was geschrieben ohne wirklich darüber bescheid zu wissen.

    Dieser passive Adapter funktionierte mit den DS1820. Seit 2005 gibt es aber nur noch die Nachfolger, DS18S20 und DS18B20. Bei denen funktioniert der nicht richtig, weil, oh wunder, die parasitäre Versorgung damit nicht klappt. Er findet die Sensoren mißt aber meist 85°.

    Aber Du wusstest es.

  • ja ne is klar das kann nicht funktionieren weil du es sagst. Ich weiss natürlich nicht bescheid obwohl diese Sensoren DS18B20 bei mir seit 1,5 Jahren laufen, glücklicherweise lesen die Sensoren bei mir deine Postings nicht.

    Ich weiss ja bereits das es mit der 1w Lib nicht klappt weil die Erholzeit für parasitäre Versorgung zu kurz ist in Verbindung mit zu hohem Abfrageintervall, es liegt nur an der Software da was zu ändern.


    wer selber nachlesen möchte:
    http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

    Seite 5

    dort behauptet auch der Hersteller das auch bei dem DS18B20 parasitäre Versorgung möglich ist, natürlich muss man die Timings einhalten und auf Seite 18 der Hinweis, wenn der CRC erfolglos war Messung wiederholen, natürlich unvorstellbar ist für manche hier ;)

    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. August 2013 um 13:28)

  • Lieber Jar,
    Für parasitäre Versorgung brauchst du eine Art Treiber (Hardware) die dir den Pullup kurzfristig überbrückt, da dort sonst eine zu hohe Spannung abfällt (R=U/I etc...) und der Sensor nicht ausreichend versorgt wird. Die Ansteuerung dieses Treibers (man könnte wohl einen Transistor nehmen) ist im Kernel (essentieller Bestandteils des Betriebssystems deines RaspberryPi) nicht implementiert. 1wire wird (wenn ich mich jetzt nicht grob täusche) beim RPi über GPIO Pin 4 "simuliert". Das einfachste für dich wäre einen I2C to 1wire Baustein zu verwenden, zB den DS2482.

    Einmal editiert, zuletzt von c-st (28. August 2013 um 16:59)

Jetzt mitmachen!

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