Forum: Mikrocontroller und Digitale Elektronik 1-Wire unter Linux


von Rudi L. (rudie)


Lesenswert?

hi

ich habe ein mini2440 mit debian am laufen.
dort habe ich jetzt 8 dallas ds18b20 sensoren angeschlossen.
1pin mit 5v, 1 pin mit grn und ein für data.

mit ein 10cm abgeschnittene floppykabel funktioniert alles wunderbar,
nur sehr selten bekomme ich falsche werte von 4095°C

jetzt habe ich das ganze mit ca 5m cat5 kabel und die sensoren 
unterschiedlich verteilt auf der leitung.

wenn ich dann unter userspace die sensoren abfragen bekomme ich diese 
meldungen

mini2440:~# tail '/sys/bus/w1/devices/w1 bus 
master/28-000002565965/w1_slave'
ff ff ff ff ff ff ff ff ff : crc=c9 NO
67 01 4b 46 7f ff 09 10 3b t=4095937
mini2440:~# tail '/sys/bus/w1/devices/w1 bus 
master/28-000002565965/w1_slave'
67 01 4b 46 7f ff 09 10 3b : crc=3b YES
67 01 4b 46 7f ff 09 10 3b t=22437
mini2440:~# tail '/sys/bus/w1/devices/w1 bus 
master/28-000002565965/w1_slave'
67 01 4b 46 7f ff 09 10 3b : crc=3b YES
67 01 4b 46 7f ff 09 10 3b t=22437
mini2440:~# tail '/sys/bus/w1/devices/w1 bus 
master/28-000002565965/w1_slave'
ff ff ff ff ff ff ff ff ff : crc=c9 NO
67 01 4b 46 7f ff 09 10 3b t=4095937

was bedeutet diese crc=c9 NO und warum schlägt das so oft fehl?
die 4 abfrage hier oben war so 2sec zeitversetz, sonnst greift nichts 
anderes auf der bus zu.

für ein hinweis wäre ich dankbar

gruß
rudi

von Richard B. (richard7)


Lesenswert?

Hast du lange Abzweigungen? Dies könnte Reflexionen verursachen - Oszi 
würde helfen...

Kennst du die Designguides von Dallas? Wenn du die Richtige Ansteuerung 
verwendest sollen 3km möglich sein.

Ich habe 1 wire für meine Solaranlage eingesetzt - Bus ist in Cat-7 
(Übertrieben ja ich weis - aber wieso nochmal die Mauer aufbrechen...)
Aktiv versorgt - keine Störungen am Bus mit V24 Abfrage.

von Andreas Z. (Gast)


Lesenswert?

Hallo Rudi,

welchen Treiber benutzt du denn als W1-Master ? Ich hatte das gleiche 
Problem mit einem BR-6104K-Router mit OpenWRT und einem 
GPIO-Master-Treiber. Mit einem Sensor hat es ganz gut funktioniert mit 
mehr Sensoren kann man es vergessen. Ich habe auch irgendwo im Netz eine 
Diplomarbeit hierzu gefunden, die das bestätigt, weiss leider nicht mehr 
wo. Der W1-Bus ist ziemlich zeitkritisch. Ich glaube Linux / Unix hat 
damit Probleme.

Ich habe dann einen DS2482-100 als W1-Master verwendet.Den gibts leider 
nur als SMD-Teil. Ist bischen fummelig. Als I2C-Master kann man 2 GPIOs 
verwendet. Funktioniert einwandfrei. Der I2C-Bus ist nicht zeitkritisch, 
da er eine Daten- und Clock-leitung verwendet.

Alternative wäre ein anderer W1-Master. Ich denke aber es muss ein 
Hardware-Master sein. Das Bitbanging unter Unix ist nicht so 
zuverlässig.

mfg

Andreas

von Uhu U. (uhu)


Lesenswert?

Andreas Z. schrieb:
> Das Bitbanging unter Unix ist nicht so zuverlässig.

Es gibt Echtzeitvarianten, die das schaffen. Ein normales *nix ist für 
Echtzeitanwendungen nicht geeignet.

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Nehmt für 1-Wire richtige Host-Treiber von Dallas DS2482 (I2C); DS2490 
(USB); DS2480 (RS232). Damit gibt es die wenigsten Probleme. Bitbanging 
ist immer nur eine Bastelsache.

Letztere werden entweder direkt vom Linux-Kernel oder von der 
Erweiterung OWFS (One-Wire FileSystem) unterstützt - wobei ich eher auf 
letzere setze, da dieses komfortabler ist.

von Uwe Bonnes (Gast)


Lesenswert?

Mit einer seriellen Schnittstelle laesst sich das 1-Wire Protokoll auch 
ohne Echtzeitanfordung  generieren
 http://www.maxim-ic.com/appnotes.cfm/an_pk/214

von Rudi L. (rudie)


Lesenswert?

hi,

sorry für die späte rückmeldung. :-(

verwende die gpio-master treiber, was wohl nicht so das dolle zu sein 
scheint.
mein gpio pin ist auch nicht 5v tolerant, bedeutet ich arbeite mit 3,3v,
ich weiss, nicht das gelbe vom ei, gerade bei längere leitungen.

die jungs von wiregate.de haben den DS9490R(usb) im einsätz mit owfs,
was scheinbar sehr "einfach" eingerichtet ist und sehr gut funktioniert 
unter linux

"einfach" usb dran, sensoren dran hängen, owfs starten und mit etwas 
glück kann man schon alle sensoren abfragen/ansprechen.

die DS9490R scheint momentan ausverkauft zu sein, kostet wenn lieferbar 
auch 30-35€ statt 22-24€ wie sonnst.

welche 1-wire master würde ihr denn so unter linux empfehlen?

ich bin nicht so der elektro fachmann, genau genommen ein noob,
daher tendiere ich zu ein "fertige" DS9490R.

aber wenn ihr meint a onder b wäre besser/zuverlässiger etc...
höre ich gerne meinungen und nehme auch was anderes.
ich kenne ja 2 elektro freaks die mir bei pullup, loten und konsorten zu 
hand stehen, die sind allerdings linux noobs.

freue mich auf meinungen.

ziel, ich wil "nur" 7-8 sensoren per cron(alle 5-10min) abfragen,
mit bisschen scripten werte in ein db packen und schöne rrd graphs 
erstellen,
und bei bedarf ein magnetventil an oder ausschalten. nichts 
kritisich/profesionelles.

gruß
rudie

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Frage:
Rudi L. schrieb:
> welche 1-wire master würde ihr denn so unter linux empfehlen?

Antwort:
Christian H. schrieb:
> Nehmt für 1-Wire richtige Host-Treiber von Dallas DS2482 (I2C); DS2490
> (USB); DS2480 (RS232).

Der DS2490 ist im DS9490R eingebaut und ist nicht wirklich kompliziert 
zu verwenden. SMD löten sollte man aber schon einmal gemacht haben.

Welche von beiden ICs du verwendest, hängt von der Interfaceausstattung 
des Rechners ab. Da ich in meinem Fall nur ein RS232-Interface als 
Konsole und sonst nur USB hatte, verwendete ich USB.

von O. H. (ohagendorf)


Lesenswert?

Der DS2482-100 mit einer I2C Schnittstelle funktioniert auch problemlos. 
Es gibt ihn u.a. als SOIC8 und ist mit ein wenig Löterfahrung und einem 
Adapterboard leicht verwendbar. Es gibt einen passenden Linux Treiber im 
Standardkernel.

Getestet habe ich das mit einem mini6410. Es sollte also evt. auch mit 
dem mini2440 problemlos funktionieren.

von Rudi L. (rudie)


Lesenswert?

hi,

danke ihr beiden.

könnte frei wählen zwischen usb/seriell, beide noch frei und controller 
ist auch für nichts anderes geplannt.

wo kriegt man denn ein DS2490 hier?
so auf der schnelle nichts gefunden.

i2c wäre komplett neuland für mich, owfs wäre mir vertrauter,
aber ich bin ja auch lernwillig ;-)

gruß
rudi

von Christian H. (netzwanze) Benutzerseite


Lesenswert?

Rudi L. schrieb:
> wo kriegt man denn ein DS2490 hier?

http://www.fuchs-shop.com/de/

von Rudi L. (rudie)


Lesenswert?

diplomarbeit habe ich jetzt auch dank google gefunden,
seite ist aber schwer erreichbar ;-)
http://elk.informatik.fh-augsburg.de/da/da-48/DA_Waffler_fdl.pdf

aus einfachheits- und zeitgründe kaufe ich mir die DS9490R,
denke damit komme ich recht schnell an mein ziel ohne noch zu löten 
etc., einfach drann stecken und gut.

das andere reiz mich aber auch kennezulernen und hinzbekommen,
das ist dann mehr eine aufgabe für die kommende winter monaten,
wenn der controller arbeitslos ist.

danke für eure nette/hilfreiche antworten!

gruß
rudi

von Rudi L. (rudie)


Lesenswert?

nabend

DS9490R ist angekommen und mittels owfs (owserver) und owget gibt es 
keine probleme mehr. :-)

gruß
rudie

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.