Forum

Einloggen | Registrieren | RSS  

roterroller60(R)

02.01.2023,
17:30
 

Kein Ordner für DS18B20 in /sys/devices angelegt (Computertechnik)

Hallo zusammen, zunächst einmal zur Info: ich bin Anfänger, sowohl in Sachen RaspberryPi als auch mit Linux ohne Desktop.
Ich versuche nach einer Anleitung aus dem Netz https://www.kompf.de/weather/pionewiremini.html eine Temperaturmessung mit DS18B20 Fühlern hinzubekommen.
Etwas ähnliches gibt es hier mit einem RaspberryPico.

Jedoch wird der entsprechende Ordner 28-... nicht angelegt.
ich habe schon alles mögliche ausprobiert, leider ohne Erfolg.
Ich hoffe hier kann mir jemand weiter helfen.

Die Hardware:
cat /sys/firmware/devicetree/base/model
Raspberry Pi 3 Model B Rev 1.2

Das OS:
cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

Die Schaltung wie in der oben verlinkten Anleitung unter "Aktive Speisung (dreiadriges Kabel)" zu finden (zunächst nur mit einem Fühler).

Der Befehl: lsmod | grep w1
zeigt folgendes Ergebnis:
w1_gpio 16384 0
w1_therm 28672 0
wire 36864 2 w1_gpio,w1_therm

bastelix(R)

02.01.2023,
20:53

@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo,

der Ordner sollte /sys/bus/w1/devices sein. Sicher, dass du nicht nur unter dem falschen Pfad geschaut hast?

roterroller60(R)

03.01.2023,
17:39

@ bastelix

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo,
nein leider nicht, da bin ich mir sicher. In dem von Dir genannten Order würden sich lediglich Verknüpfungen befinden, die gibt es aber auch nicht. :-(

pedder59(R)

Bochum im Kohlenpott,
03.01.2023,
20:06

@ bastelix

Kein Ordner für DS18B20 in /sys/devices angelegt

» Hallo,
»
» der Ordner sollte /sys/bus/w1/devices sein. Sicher, dass du nicht nur unter
» dem falschen Pfad geschaut hast?

So, hallo ersma.
Ich bin neu hier. wünsche Euch ein frohes Neues gehabt zu haben.
Zum Thema:
in
"/sys/bus/w1/devices" findet sich nur ein link. auf den Ordner z.B. bei mir "28-0317713763ff"
Der richtigen Pfad lautet:
"/sys/devices/w1_bus_master1/28-0317713763ff"
Da drin sind weitere Verzeichnisse und Dateien wie die "w1_slave"
Inhalt:
51 01 4b 46 7f ff 0c 10 ab : crc=ab YES
51 01 4b 46 7f ff 0c 10 ab t=21062

bastelix(R)

03.01.2023,
23:26

@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo,

ok, und unter /sys/devices/w1_bus_master1 ist dann ein Link driver -> ../../bus/w1/drivers/w1_master_driver da soll man den Überblick behalten...

Hast du die Verkabelung nochmal geprüft, externer Pullup zwischen den richtigen Leitungen, interner Pullup abgeschaltet und auch sonst richtig angeklemmt? Die elektrischen Verbindungen sind auch stabil (kein Wackelkontakt, was auf dem Steckbrett schon mal vorkommen kann).

Funktioniert der DB18B20 überhaupt? Hast du den mal an was anderen (z.B. Arduino) getestet oder hast du mehrere DB18B20 da?

Ich hab nochmal meine Konfiguration nachgeschaut, aber das hilft nur bedingt weiter, weil ich das ganze mit Armbian auf einem Banana PI betreibe. Eventuell ist es einen Versuch wert. Ich habe in meinem Pin-Mapping den Eintrag stehen

pin 226 (PH2): onewire@0 1c20800.pinctrl:226 function gpio_in group PH2

Auf meine Raspberry PI3 liegt die Datei unter /sys/kernel/debug/pinctrl/3f200000.gpio-pinctrl-bcm2835/pinmux-pins
schau mal ob da irgendwas bzgl. onewire drin steht und wenn ja prüfe nochmal ob der GPIO-Pin den du angeklemmt hast auch dazu passt.

roterroller60(R)

04.01.2023,
18:17

@ bastelix

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo, und herzlichen Dank für deine Hinweise.

Ja, ich habe die Verkabelung mehrfach geprüft bzw. neu aufgebaut. An der roten Ader lassen sich 3,3V messen und an der Gelben gegen GRD ca. 2V.
Was bedeutet "externer Pullup zwischen den richtigen Leitungen" genau?
Der Eintrag in /boot/config.txt:
dtoverlay=w1-gpio,gpiopin=4
Der Eintrag in : /etc/modules:
w1-gpio
w1-therm

Ich habe es bereits mit einem 2. Fühler getestet, die Fühler sind neu, ich habe jedoch keine andere Möglichkeit zu testen.
Wie oder wo kann man ein "Pin-Mapping" einsehen?
Der Ordner /sys/kernel/debug ist bei mir leer.

Danke und Gruß Matthias

roterroller60(R)

04.01.2023,
18:22

@ pedder59

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo nach Bochum,
ja, genau so wie Du es zeigst und beschreibst hätte ich es erwartet.
Aber leider entstehen dort immer nur kurzfristig wechselnde Ordner mit 00-... oder 40-... die alle paar Minuten wieder verschwinden oder andere auftauchen.
Komme da EINFACH NICHT WEITER.
Der Eintrag in /boot/config.txt:
dtoverlay=w1-gpio,gpiopin=4
Der Eintrag in : /etc/modules:
w1-gpio
w1-therm

Ich habe es bereits mit einem 2. Fühler getestet, die Fühler sind neu. Aber ohne Erfolg :-(

pedder59(R)

Bochum im Kohlenpott,
04.01.2023,
20:17
(editiert von pedder59
am 04.01.2023 um 20:54)


@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

» Hallo nach Bochum,
» ja, genau so wie Du es zeigst und beschreibst hätte ich es erwartet.
» Aber leider entstehen dort immer nur kurzfristig wechselnde Ordner mit
» 00-... oder 40-... die alle paar Minuten wieder verschwinden oder andere
» auftauchen.
» Komme da EINFACH NICHT WEITER.
» Der Eintrag in /boot/config.txt:
» dtoverlay=w1-gpio,gpiopin=4
» Der Eintrag in : /etc/modules:
» w1-gpio
» w1-therm
»
» Ich habe es bereits mit einem 2. Fühler getestet, die Fühler sind neu. Aber
» ohne Erfolg :-(
Was spricht da gegen einen pullup von 4k7 auf die Datenleitung zu setzen.
habe ich gemacht. läuft stabil.
Anhang:
Ausschnitt aus einem meiner Raumthermostate.

bastelix(R)

04.01.2023,
22:51

@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo,

» Ja, ich habe die Verkabelung mehrfach geprüft bzw. neu aufgebaut. An der
» roten Ader lassen sich 3,3V messen und an der Gelben gegen GRD ca. 2V.
Das ist komisch. Also du hast es so verkabelt wie in dem Schaltplan von dem Tutorial unter "Aktive Speisung (dreiadriges Kabel)"?
Da ist ein 4k7 Ohm Widerstand zwischen der Datenleitung (DQ, Gelb) und der VDD (Rot), ich hab den mal markiert. Eigentlich solltest du dann 3V3 messen, außer es läuft gerade eine Datenübertragung, dann misst ein DMM meistens Mist. Das sollte aber nicht so lange dauern.



Hab eben mal bei mir nachgemessen, die meisten Zeit 3V3 zwischen DQ und GND. Nur mal kurz etwas über 2V was ein Messfehler oder eine Datenübertragung gewesen sein kann. Grob reicht es aber wenn du für eine Minute misst und in der Zeit meistens etwas über 3V angezeigt bekommst. Zumindest wenn der Pullup Widerstand korrekt angeklemmt ist.

» Was bedeutet "externer Pullup zwischen den richtigen Leitungen" genau?
Der Pullup Widerstand ist in dem Fall der Widerstand zwischen DQ und VDD. Extern eben weil da wirklich ein Widerstand zwischen die Leitungen gehängt wird. Man kann auch via Software einen internen Pullup Widerstand einschalten. Diese sind aber meistens sehr groß (z.B. 50k bis 100k Ohm) und damit wird das ganze störanfälliger als mit einem 4k7 Widerstand.

Allgemein wird ein Widerstand als Pullup bezeichnet, wenn er eine Leitung auf die Versorgungsspannung hoch zieht und als Pulldown wenn er auf GND runter-zieht. https://www.elektronik-kompendium.de/public/schaerer/pullr.htm

In deiner Konfiguration ist der interne Pullup Widerstand nicht eingeschaltet, das sollte also passen. Du musst nur noch extern einen 4K7 zwischen DQ und VDD hängen, falls noch nicht geschehen.

» Ich habe es bereits mit einem 2. Fühler getestet, die Fühler sind neu, ich
» habe jedoch keine andere Möglichkeit zu testen.
Ich teste alle Sensoren die ich kaufe immer erst mit einem Arduino Nano weil ich da sicher sein kann, dass es am Sensor liegt wenn er nix tut. Hab ich mir angewöhnt nachdem ich mal eine Woche lang einen Fehler gesucht habe bis sich dann die vier der fünf bestellten Sensoren (müssten DHT22 gewesen sein) defekt waren.
Einen defekten DS18B20 hatte ich aber noch nie, also stellen wir den als mögliche Fehlerquelle mal hinten an.

» Wie oder wo kann man ein "Pin-Mapping" einsehen?
» Der Ordner /sys/kernel/debug ist bei mir leer.
Das muss ich dann auch erst nachlesen, bei meinem Rasperry 3 gibt es den Ordner und ich kann mich nicht erinnern da irgendwas großartig konfiguriert zu haben, da laufen aktuell auch nur Server-Dienste drauf und die GPIO wird nicht verwende. Vermutlich liegt es an den unterschiedlichen Versionen von Raspbian.
Konzentrieren wir uns lieber erst mal auf die Hardware, deine Konfiguration schaut ja soweit gut aus und passt zu dem Tutorial.

roterroller60(R)

05.01.2023,
16:49

@ pedder59

Kein Ordner für DS18B20 in /sys/devices angelegt

Ja, im Prinzip habe ich es genau so aufgebaut:

Pin1(3,3V) auf die rote Ader am Fühler,
Pin7(GP4) auf die gelbe Ader am Fühler,
zwischen roter und gelber Ader 4k7 Widerstand,
Pin39(GND) auf die schwarze Ader am Fühler.
Kann es an irgendwelchen grundsätzlichen Änderungen im OS liegen?
Kann es an irgendwelchen Berechtigungen liegen?

In der Datei /sys/devices/w1_bus_master1/w1_master_pullup steht eine 1.
Ist das so richtig? Oder muss der pullup hier irgendwie ausgeschaltet werden?

Für weitere Anregungen wäre ich sehr Dankbar.

roterroller60(R)

05.01.2023,
16:53

@ bastelix

Kein Ordner für DS18B20 in /sys/devices angelegt

Ja, im Prinzip habe ich es genau so aufgebaut:

Pin1(3,3V) auf die rote Ader am Fühler,
Pin7(GP4) auf die gelbe Ader am Fühler,
zwischen roter und gelber Ader 4k7 Widerstand,
Pin39(GND) auf die schwarze Ader am Fühler.
Habe aufgrund deinem Hinweis noch einmal den Widerstand geprüft, und es war tatsächlich der falsche (470k) aber auch nach dem ersetzen durch den richtigen Wert hat sich nichts getan.

Kann es an irgendwelchen grundsätzlichen Änderungen im OS liegen?
Kann es an irgendwelchen Berechtigungen liegen?

In der Datei /sys/devices/w1_bus_master1/w1_master_pullup steht eine 1.
Ist das so richtig? Oder muss der pullup hier irgendwie ausgeschaltet werden?

Für weitere Anregungen wäre ich sehr Dankbar.
Gruss Matthias

bastelix(R)

06.01.2023,
01:02

@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

» In der Datei /sys/devices/w1_bus_master1/w1_master_pullup steht eine 1.
» Ist das so richtig? Oder muss der pullup hier irgendwie ausgeschaltet
» werden?
Ich würde das so interpretieren, dass der interne Pullup aktiv ist (was er eigentlich nicht sein sollte). Damit hast du halt zwei parallele Widerstände die zusammen den Wert des Pullup bestimmen. Hab das eben kurz nachgelesen, der Interne Pull-Up liegt zwischen 50k und 65k macht dann || zu 4k7 irgendwas zwischen 4k3 und 4k4. Alles im grünen Bereich.

Und jetzt zur schlechten Nachricht: Der Pullup ist nicht das Problem :no:

Ich habe mal meinen Raspberry 3 auf die aktuelle Version von Raspbian gehoben und mal das Tutorial ausprobiert.

root@raspberrypi:~# cat /sys/firmware/devicetree/base/model
Raspberry Pi 3 Model B Rev 1.2

root@raspberrypi:~# cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)"
NAME="Raspbian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

root@raspberrypi:~# vi /boot/config.txt
dtoverlay=w1-gpio,gpiopin=4

root@raspberrypi:~# shutdown -r now

root@raspberrypi:~# lsmod | grep w1
w1_gpio 16384 0
wire 36864 1 w1_gpio

root@raspberrypi:~# cat /sys/devices/w1_bus_master1/w1_master_pullup
1

Und hier wird es interessant

root@raspberrypi:/sys/bus/w1/devices# ls -la
insgesamt 0
drwxr-xr-x 2 root root 0 5. Jan 23:39 .
drwxr-xr-x 4 root root 0 5. Jan 23:39 ..
lrwxrwxrwx 1 root root 0 6. Jan 00:10 00-440000000000 -> ../../../devices/w1_bus_master1/00-440000000000
lrwxrwxrwx 1 root root 0 6. Jan 00:09 00-840000000000 -> ../../../devices/w1_bus_master1/00-840000000000
lrwxrwxrwx 1 root root 0 5. Jan 23:39 w1_bus_master1 -> ../../../devices/w1_bus_master1

Was bitte sind die beiden Devices mit der 00-* Adresse? Vor allem wenn noch nichts am Bus hängt. Ich habe dann zwei DS18B20 getestet, einer davon ist seit Jahren in Gebrauch, also hinreichend getestet. Die werden nicht erkannt, dafür ändern sich bei mir dir 00-* Devices immer mal wieder.

Zum Vergleich mein Banana PI mit vier Sensoren

root@bananapi:/sys/bus/w1/devices# ls -la
total 0
drwxr-xr-x 2 root root 0 Dez 30 19:17 .
drwxr-xr-x 4 root root 0 Dez 30 19:17 ..
lrwxrwxrwx 1 root root 0 Jan 6 00:37 28-000007296d4d -> ../../../devices/w1_bus_master1/28-000007296d4d
lrwxrwxrwx 1 root root 0 Dez 30 19:17 28-00000729fbaa -> ../../../devices/w1_bus_master1/28-00000729fbaa
lrwxrwxrwx 1 root root 0 Dez 30 19:17 28-0000072a583d -> ../../../devices/w1_bus_master1/28-0000072a583d
lrwxrwxrwx 1 root root 0 Dez 30 19:17 28-0000072a8bf2 -> ../../../devices/w1_bus_master1/28-0000072a8bf2
lrwxrwxrwx 1 root root 0 Dez 30 19:17 w1_bus_master1 -> ../../../devices/w1_bus_master1

Das scheint etwas mit der Software nicht zu stimmen.

Bei mir ist das Verzeichnis für das Pin-Mapping vorhanden, vermutlich weil ich kein neues Image gezogen habe sondern mein bestehendes System aktualisiert habe. Das schaut aber gut aus:

root@raspberrypi:/sys/bus/w1/devices# cat /sys/kernel/debug/pinctrl/3f200000.gpio-pinctrl-bcm2835/pinmux-pins | grep wire
pin 4 (gpio4): onewire@4 pinctrl-bcm2835:4 function gpio_in group gpio4

Hast du solche ghost devices mit einer 00-* Adresse?
Der erster google treffer beim Suchbegriff "1-wire device 00-800000000000" geht auf https://forums.raspberrypi.com/viewtopic.php?t=106041 also irgendwas scheint es da zu eben. Hab das nur überflogen; für heute reichts mir.

Als nächstes wäre mal interessant die Doku für den 1-Wire-Bus unter Linux/Debian/Raspbian zu lesen und zu schauen was in dem Tutorial eigentlich gemacht wird. Oder einfach mal ein anderes Tutorial suchen und vergleichen was da gemacht wird. Ein Blick in die Bugtracker der beteiligen Komponenten wäre auch ein Ansatz.

roterroller60(R)

06.01.2023,
17:38

@ bastelix

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo erstmal und herzlichen Dank für deine ausführliche Recherche.

Ja, ich habe solche "Geisterverzeichnisse, die sich auch immer mal wieder ändern.

Ich bin deinem Link zum Raspberry Forum mal gefolgt, konnte dort aber auch keine klare Lösung erkennen, Schade :-( .

Ich bin inzwischen mehrfach auf Hinweise mit " using device tree" gestoßen, kann damit jedoch nichts anfangen.

Evtl. wäre es ein lösungsansatz mit einem deutlich älteren OS einen Versuch zu wagen.
Bin in jedem Falle Dankbar für weitere Hinweise.
Gruß Matthias

bastelix(R)

06.01.2023,
22:35

@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo
» herzlichen Dank für deine ausführliche Recherche.
Ach, das dist-upgrade war eh überfällig und der Rest war ein bisschen rumspielen aus Neugier ;-)

» Ich bin inzwischen mehrfach auf Hinweise mit " using device tree" gestoßen,
» kann damit jedoch nichts anfangen.
Du verwendest schon device tree, das ist die Methode wie die Hardware-Komponenten konfiguriert werden: https://docs.kernel.org/devicetree/usage-model.html
Das dtoverlay steht für Device Tree Overlay.

» Evtl. wäre es ein lösungsansatz mit einem deutlich älteren OS einen Versuch
» zu wagen.
Ich hab heute mal den issue tracker von Raspbian durchsucht und bin dabei auf das Ticket gestoßen: https://github.com/raspberrypi/firmware/issues/1143
Da steht was von einem merge conflict... Ich sollte im Urlaub keine tickets lesen, das wars dann mit der Erholung :-D

Mit einer älteren OS Version wäre es einen Versuch wert. Irgendwas vor September 2022, wenn das nur schnell zum ausprobieren ist würde ich sogar das Image aus dem Jahr 2021 nehmen: https://downloads.raspberrypi.org/raspios_oldstable_armhf/images/

Ein weiterer Versuch wäre eine andere Distribution, z.B. Armbian https://www.armbian.com/rpi4b/

roterroller60(R)

08.01.2023,
16:39

@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

Hallo, das Problem ist gelöst!
Mit dem Image vom 02.12.2021 (und einem irgendwo gefundenen Hinweis unbedingt Pin6 als GND zu benutzen hat es jetzt endlich funktioniert.:-)
Herzlichen Dank noch einemal für Deine / Eure Tipps und Hinweise.
Muss ich hier im Forum den Fall noch irgendo als gelöst markieren?

bastelix(R)

08.01.2023,
21:22

@ roterroller60

Kein Ordner für DS18B20 in /sys/devices angelegt

» Muss ich hier im Forum den Fall noch irgendo als gelöst markieren?
Danke für dein Feedback. So einen "Gelöst"-Funktion gibt es hier nicht, aber du hast ja deine (temoräre) Lösung geschrieben.