Forum: Mikrocontroller und Digitale Elektronik Owfs liefert manchmal 85 grad ?


von Onewire (Gast)


Lesenswert?

Hallo, ich habe einen 1wire Bus mit 10 Stck ds18s20 über einen ds2482 an 
einem raspberry pi. Entkoppelt über ds 9503. Buslänge etwa 10 m,

Auf dem pi hab ich ein owfs installiert. Funktioniert soweit ganz gut, 
ich lese einmal pro Minute die Temperaturen über das filesystem und 
logge sie in eine Datei.

Dabei kommt es vor, dass ich unregelmäßig manchmal 85 grad als 
Temperatur bekomme.
Es sind dann meist nur ein oder zwei Sensoren, die die 85 gad anzeigen, 
nicht der ganze Bus.

Ich würde sagen es kommt weniger als 10 mal am Tag vor, also doch 
relativ selten bei 60x60x10 = 36000 Messwerten. Trotzdem nervt es.

Am Bus glaub ich irgendwie nicht, dass es liegt, da scheinbar alle 
Sensoren betroffen sein können. Es scheint gehäuft am Vormittag 
aufzutreten, tritt aber zu jeder zeit auf.

Kann man owfs irgendwie so konfigurieren, dass es beim 85 grad Fehler, 
noch mal neu liest?
Oder was kann ich sonst tun?

Danke für jeden Tipp !

von swessels (Gast)


Lesenswert?

Moin,

die 85° ist der Wert des Temperaturregisters nach anlegen der 
Betriebsspannung vor der ersten Wandlung.

Sieht nach einem Spannungsversorgungs- oder Timingproblem beim CONVERT_T 
- Kommando aus.

Gruß,
Stefan

von Peter D. (peda)


Lesenswert?

Onewire schrieb:
> Kann man owfs irgendwie so konfigurieren, dass es beim 85 grad Fehler,
> noch mal neu liest?

Warum schreibst Du nicht einfach ein C-Programm, was genau das macht?

Das RP ist generell nicht der Hardware-Crack.
Für Echtzeitsachen ist ein einfacher 8Bitter viel besser geeignet. Man 
könnte das 1W-Zeugs z.B. einen ATtiny2313 machen lassen und das RP fragt 
ihn dann über die UART ab.

von Davis (Gast)


Lesenswert?

Das Minimum wäre gewesen den Quellcode des Programms zu posten.

von Florian V. (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Das RP ist generell nicht der Hardware-Crack.
> Für Echtzeitsachen ist ein einfacher 8Bitter viel besser geeignet. Man
> könnte das 1W-Zeugs z.B. einen ATtiny2313 machen lassen und das RP fragt
> ihn dann über die UART ab.

Das musst Du näher erläutern.
- Der OP benutzt eine I2C-1wire Bridge von Maxim, um seine 1-wire 
Devices an den I2C-Bus des Prozessors zu koppeln.
- Du schlägst jetzt vor, eine UART-1wire Bridge in Form eines µC zu 
benutzen, um 1-wire Devices an den UART des Prozessors zu koppeln.

In beiden Fällen werden Hardware-Schnittstellen des RPi benutzt, also 
nicht etwa ein Software-emulierter 1-wire Bus. Wo liegt da der Vorteil?

von Uwe B. (boerge) Benutzerseite


Lesenswert?

MoinMoin,

viel interessanter ist die Frage, in welchem Mode zur 
Spannungsversorgung (parasitär oder nichtparasitär) die DS18S20 am Bus 
angeschlossen sind. Und, ob bei ersteren die Anschlüsse eins und drei 
des IC mit GND verbunden sind (was man machen sollte).

Grüße Uwe

von Onewire (Gast)


Lesenswert?

J

swessels schrieb:
> Moin,
>
> die 85° ist der Wert des Temperaturregisters nach anlegen der
> Betriebsspannung vor der ersten Wandlung.
>
> Sieht nach einem Spannungsversorgungs- oder Timingproblem beim CONVERT_T
> - Kommando aus.
>
> Gruß,
> Stefan

Ja, das ist soweit klar. aber wie kann ich mit owfs darauf einfluß 
nehmen?

von Onewire (Gast)


Lesenswert?

Davis schrieb:
> Das Minimum wäre gewesen den Quellcode des Programms zu posten.

Dumme Antworten kann man sich sparen, wenn man keine Ahnung hat.

http://owfs.org/

Der Quellcode ist offen und nicht nur drei Zeilen lang. Ich glaube nicht 
dass sich jemand drüber freut, wenn man das hier postet.

von Onewire (Gast)


Lesenswert?

Florian V. schrieb:
> Peter Dannegger schrieb:
>> Das RP ist generell nicht der Hardware-Crack.
>> Für Echtzeitsachen ist ein einfacher 8Bitter viel besser geeignet. Man
>> könnte das 1W-Zeugs z.B. einen ATtiny2313 machen lassen und das RP fragt
>> ihn dann über die UART ab.
>
> Das musst Du näher erläutern.
> - Der OP benutzt eine I2C-1wire Bridge von Maxim, um seine 1-wire
> Devices an den I2C-Bus des Prozessors zu koppeln.
> - Du schlägst jetzt vor, eine UART-1wire Bridge in Form eines µC zu
> benutzen, um 1-wire Devices an den UART des Prozessors zu koppeln.
>
> In beiden Fällen werden Hardware-Schnittstellen des RPi benutzt, also
> nicht etwa ein Software-emulierter 1-wire Bus. Wo liegt da der Vorteil?

Ja das sehe ich genauso, der Raspberry ist hier IMHO ebenso gut geeignet 
wie jeder andere Controller. Zudem ist im DS2482 ja ein kompletter 
1-Wire Controller drin, der das ganze Timing macht. Man hat also da auch 
nicht wirklich Einfluß. Die I2C ist denke ich zeitunkritisch.

von Onewire (Gast)


Lesenswert?

Uwe Berger schrieb:
> MoinMoin,
>
> viel interessanter ist die Frage, in welchem Mode zur
> Spannungsversorgung (parasitär oder nichtparasitär) die DS18S20 am Bus
> angeschlossen sind. Und, ob bei ersteren die Anschlüsse eins und drei
> des IC mit GND verbunden sind (was man machen sollte).
>
> Grüße Uwe

Ja danke für diesen konstruktiven Beitrag, aber daran hab ich auch schon 
gedacht, weil im Parasitärmodus sind die DS18S20 ja ein bischen zickig.

Der Bus ist 5V powered, also sollte es kein Problem sein.
Zudem habe ich an den DS1820 jeweils ne Schottky Diode in Sperrichtung.

Mir kommt es so vor als ob das owfs die Daten abholen möchte, obwohl die 
Wandlung noch nicht fertig ist.

von Peter D. (peda)


Lesenswert?

Florian V. schrieb:
> Der OP benutzt eine I2C-1wire Bridge von Maxim, um seine 1-wire
> Devices an den I2C-Bus des Prozessors zu koppeln.

Dann sollte der doch alle kritischen Timings machen können.

Ich hab 1-wire immer nur direkt mit nem IO-Pin eines 8Bitter gemacht, 
kann dazu also nichts sagen.

von Uwe B. (boerge) Benutzerseite


Lesenswert?

MoinMoin,

vielleicht doch ein Stromversorgungsproblem. Bei 10m Leitungslänge kann 
es schon mal vorkommen...

Onewire schrieb:
> Mir kommt es so vor als ob das owfs die Daten abholen möchte, obwohl die
> Wandlung noch nicht fertig ist.
>
Wie fragst du die Daten auf der Linuxkiste ab? Welches Verzeichnis 
benutzt du dazu? Benutzt du die Realwerte (hier werden die Sensoren erst 
beim Auslesen der entsprechenden virtuellen Datei ermittelt) oder liest 
du den cached-Verzeichnisbaum? Bei letzteren werden die Werte 
automatisch zyklisch (Zyklus ist einstellbar, wenn ich mich nicht 
täusche) ermittelt und bereitgestellt...

Grüße Uwe

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.