Seltsamer Fehlercode mit DS18B20 (raspberrypi kernel: w1_slave_driver)

Begonnen von Dirkche, 22 Juli 2014, 19:35:04

Vorheriges Thema - Nächstes Thema

Dirkche

Hallo,

weder bei Google finde ich was noch hier in diesem Forum.

Ich habe zwischen 3,3V und GPIO4 4,7kOhm eingebaut.Ebenfalls hängt am GPIO 4 meine Sensoren (ca. 30m max Entfernt über CAT7 Kabel).Ground ist vorhanden und ich speise die Sensoren über 5V aufgrund der Länge.

folgendes erhalte ich im Syslog:
Jul 21 19:17:21 raspberrypi ntpd[2047]: Listening on routing socket on fd #19 for interface updates
Jul 21 19:17:21 raspberrypi ntpd[2047]: restrict: error in address '::' on line 41. Ignoring...
Jul 21 19:17:21 raspberrypi ntpd[2047]: restrict: error in address '::1' on line 45. Ignoring...
Jul 22 18:17:01 raspberrypi /USR/SBIN/CRON[2169]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)
Jul 22 18:22:21 raspberrypi kernel: [  694.910519] w1_slave_driver 28-0000060a34c6: Read failed CRC check
Jul 22 18:25:33 raspberrypi kernel: [  887.283291] w1_slave_driver 28-0000060a34c6: Read failed CRC check
Jul 22 18:26:41 raspberrypi kernel: [  955.514255] w1_slave_driver 28-0000060a34c6: Read failed CRC check
Jul 22 19:17:01 raspberrypi /USR/SBIN/CRON[2180]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)


Im Ordner in dem die Sensoren eigentlich aufgelistet sein sollten sieht es folgendermaßen aus:
pi@raspberrypi /sys/bus/w1/devices $ dir
w1_bus_master1
pi@raspberrypi /sys/bus/w1/devices/w1_bus_master1 $ dir
driver     uevent              w1_master_max_slave_count  w1_master_pullup  w1_master_slave_count
power      w1_master_add       w1_master_name             w1_master_remove  w1_master_slaves
subsystem  w1_master_attempts  w1_master_pointer          w1_master_search  w1_master_timeout


Bin nun etwas verwirrt. Mit 3,3V erkenne ich keine Sensoren über die lange Strecke.

lsmod erkennt auch die Module
modprobe wire
modprobe w1-pgio pullup=1
modprobe w1-therm

Jemand eine Idee?

Fhemeinsteiger

Hallo,
Im Verzeichnis des Pi  /sys/bus/w1/devices/ sollten Ordner mit den ID-Nr der Sensoren sein, wie z.b. 28-0000060a34c6
Soviel Sensoren auch soviel Ordner.
Sollte es nicht so sein, werden die Sensoren nicht erkannt.
Daß kann an der Anzahl der Sensoren liegen, drei werden meist ohne Probleme erkannt.
Aber bei einer Leitungslänge (30m) oder mehr Sensoren , sollte der pullup Widerstand reduziert werden (bei mir 2,2KOhm mit 5 Sensoren)
Einfach mal austesten.
Ich glaube gelesen zu haben, der Widerstand sollte zwischen 1,8 und 4,7 KiloOhm liegen.

Fhemeinsteiger

Dirkche

Hi,

da er nach dem Reboot keine Sensoren mehr gefunden hat, waren dann auch keine Ordner mit ID´s vorhanden.
Habe nun 3,5kOhm weil ich einen parallel Widerstand dazwischengeschaltet habe aber hat auch nichts gebracht.
Kaufe nun ein fertiges Modul in der Bucht.
Dirk


Fhemeinsteiger

Hallo Dirkche,
wenn du diese Schaltung im Anhang nutzt, sollte es ohne Probleme funktionieren.
Beachte wo der Widerstand angelötet wurde - bei kurzer sowie langer Leitung
Wie schon erwähnt kann der Widerstand noch geringer sein.
Ein fertiges Modul belegt nur unnütz einen USB Platz

Fhemeinsteiger


hexenmeister

ZitatEin fertiges Modul belegt nur unnütz einen USB Platz
Dem ist nicht so. Der verwendete Treiber-Baustein (DS2480B) erlaubt wesentlich längere Leitungen und deutlich mehr 1-wire-Devices. Und ESD Protection ist in dem Modul von locutus auch drin. Die Zweckentfremdete IO-Leitungen könen da nicht mithalten. Und mit 3,3V schon mal gar nicht.



sjentzsch

Hallo,

Auch ich habe meine Heizung per raspberry automatisiert. Bisher funktionierte alles super, bis das gute raspberry mal ausfiel und ich ein neues holte (B+). Nun bekomme ich ebenfalls diese netten CRC-Check Fehler im log.
Bei mir hängen 4 Sensoren mit Kabellängen zwischen jeweils 4-8m dran. Mit 3.3V findet er leider nix. Bei 5 V findet er alles sofort, kann aber offensichtlich die Temperatur nicht auslesen.

Momentan habe ich als Pullup 4.7k drin:

(http://www.kompf.de/weather/images/gpio_1wire.gif)


Wäre dankbar für einen Tip.

Danke

hexenmeister

Man kann da viel basteln und rumprobieren, die Lösung ist jedoch sehr einfach und effektiv...
Leute, kauft Euch ein gescheites Busmaster-Adapter!
Bei Leitungen, die länger als Teststrippen sind, ist bei diesem Aufbau der Ärger vorprogrammiert...

Fhemeinsteiger

Hallo sjentzsch,
Du nutzt ja nur eine 2 Draht Leitung.
Da wundert es, dass es bisher funktionierte.
Wahrscheinlich hat hexenmeister recht ein Busmaster Adapter wäre doch die bessere Lösung.
Der Pi+ hat ja jetzt 4xUSB
Ich habe neulich beim Gewitter den GPIO4 eingebüßt, jetzt ist der Rest ein Webradio und ein neuer Pi musste her.
Aber da gab es den Pi+ noch nicht.
Aber zurück zum Thema-nimm eine 3 Draht Lösung da funktioniert es auf alle Fälle.

Fhemeinsteiger

sjentzsch

Danke für das Feedback.

Ich habe jetzt den Pullup verringert und damit scheint es erst einmal zu funktionieren. Allerdings erhalte ich recht viele Fehlmessungen (Zimmertemperaturen von 85 Grad), die ich rausfiltere.
Wahrscheinlich habt ihr recht und ich sollte mir einen vernünftigen Busmaster anschaffen. Hat jemand irgendwelche Empfehlungen?

Danke