Raspberry Pi und DS2480 Onewire

Hallo,

Der OneWire Configurator gibt mir die Fehlermeldung „1-Wire nicht bereit!“

Normalerweise laeuft bei mir der DS9490R am Windows Rechner. Da dieser ja beim Pi noch nicht unterstuetzt wird und ich den Umweg ueber OWFS nicht prickelnd fand, habe ich einen meiner DS2480 aus der Schublade geholt und am seriellen Port des Pi (natuerlich mit Spannungsanpassung) angeschlossen. Das soll ja bereits funktionieren.

Mit OWFS funktioniert es auch, jedoch IPS will noch nicht…
OneWire Configurator nutzt den OneWire Gateway, der wiederum auf die serielle Schnittstelle (ttyAMA0) eingerichtet ist.
Im Debug sehe ich auch die Daten laufen:

12/08/2015 08:32:18.00 | TRANSMIT | C1
12/08/2015 08:32:18.00 | TRANSMIT | 17 45 5B 0F 91
12/08/2015 08:32:18.00 | RECEIVED | C9 16 44 5A 00 90
12/08/2015 08:32:18.00 | TRANSMIT | C1
12/08/2015 08:32:18.00 | TRANSMIT | 17 45 5B 0F 91
12/08/2015 08:32:18.00 | RECEIVED | C9 44 5A 00 90
12/08/2015 08:32:18.00 | TRANSMIT | E3
12/08/2015 08:32:18.00 | TRANSMIT | C5
12/08/2015 08:32:18.00 | RECEIVED | C9

Es ist uebrigens ein aelterer DS2480, daher ohne B! Ich konnte in den Datenblaettern keinen programmtechnischen Unterschied zwischen den beiden entdecken.

Habt Ihr eine Idee?

Du musst wenn du die Serielle Schnitstelle am PI nutzt diese erst von der Console befreien :slight_smile:

http://www.hobbytronics.co.uk/raspberry-pi-serial-port

Ich zitiere mich da mal selbst…

Dachte, wenn ich das schreibe…

und auch Daten empfange, dass diese Frage nicht aufkommen wuerde…

Habe natuerlich die serielle Schnittstelle von der Konsole befreit.

Was für Fehlermeldungen gibt es denn?

paresy

Vielleicht ein bisschen frueh heute :smiley:

Ah! Gleich im ersten Satz! :smiley:

Habe mir das ganze angesehen und der DS2480 (ohne B) sendet laut Protokoll auch etwas anderes, dass ich bisher nicht erlaube. Im nächsten Update wird es dafür einen Fix geben. Kann es aber mangels DS2480 (ohne B) nicht explizit testen. Somit freue ich mich auf Feedback!

paresy

Gut zu wissen. Habe schon an mir selbst gezweifelt :smiley:

Feedback gebe ich dann natuerlich!

Danke.

Der aktuelle Stand:

Sensoren wurden alle erkannt. Anfangs mehr als vorhanden sowie auch falsche IDs. Da waren manchmal Bit 3 des Halbbytes zu viel (0x88 statt 0x00, 0x80 statt 0x00 oder 0x9f statt 0x1f). Die 5V Versorgung hatte ich zu diesem Zeitpunkt vom PI (Pin 4, neben RxD/TxD) genommen.

Einige Temperaturen wurden auch eingelesen, jedoch nicht permanent, was teilweise auch des noch aktuellen Demo- Modus geschuldet ist (diesen Status zu aendern, ist ja gerade auch in Arbeit).

Beim Senden eines Test commands traten Fehler wie „ROM stimmt nicht ueberein on line 1“ oder „write verify error“ (oder so aehnlich) auf. Fuer die erste Fehlermeldung habe ich auch ein Debug der seriellen Schnittstelle erstellen koennen.
Da haben sich ja in der Response auch einige Bits eingeschlichen…

Eine Aenderung der 5V Versorgung brachte bisher keine Verbesserung, die will ich momentan als Fehlerquelle auch noch nicht ausschliessen.

dump rom stimmt nicht ueberein.txt (34 KB)

Hat ein wenig gedauert, da einige Fehler aufgetreten sind, die den Raspberry zum Absturz gebracht haben, was aber nicht zu diesem Thema passt. Werde diesbezüglich einen neuen Thread aufmachen…

Die 5V werden jetzt über einen 78S05 gespeist mit entsprechenden Kondensatoren, wie hier im Forum empfohlen (sorry, gerade keinen Link auf den entsprechenden Beitrag zur Hand). Seitdem läuft der 1 wire Bus stabil.

Das einzige merkwürdige ist, die Temperaturen enden alle auf ??.75 Grad Celsius und springen immer um 1 Grad nach oben oder unten. Habe mal einen entsprechenden Dump von der seriellen Schnittstelle drangehängt.

31/08/2015 09:17:05.00 |             TRANSMIT | 55 
31/08/2015 09:17:05.00 |             RECEIVED | 55 
31/08/2015 09:17:05.00 |             TRANSMIT | 10 9E FF 3B 00 00 00 4C 
31/08/2015 09:17:05.00 |             RECEIVED | 10 9E FF 3B 00 00 00 4C 
31/08/2015 09:17:05.00 |             TRANSMIT | 44 
31/08/2015 09:17:05.00 |             RECEIVED | 44 
31/08/2015 09:17:05.00 |             TRANSMIT | C1 
31/08/2015 09:17:05.00 |             TRANSMIT | 17 45 5B 0F 91 
31/08/2015 09:17:05.00 |             RECEIVED | 00 00 00 5B 0F 91 

Soweit ich das verstehe, wird jetzt die Anforderung gesendet, die Temperatur zu digitalisieren, womit dieser noch nicht fertig ist (Ergebnis 00), was ja klar ist, da dies die erste Anfrage ist.

Dann folgt ein Reset und dann:

31/08/2015 09:17:06.00 |             TRANSMIT | 55 
31/08/2015 09:17:06.00 |             RECEIVED | 55 
31/08/2015 09:17:06.00 |             TRANSMIT | 10 9E FF 3B 00 00 00 4C 
31/08/2015 09:17:06.00 |             RECEIVED | 10 9E FF 3B 00 00 00 4C 
31/08/2015 09:17:06.00 |             TRANSMIT | BE FF FF FF FF FF FF FF FF FF 
31/08/2015 09:17:06.00 |             RECEIVED | BE 1D 00 0F 00 FF FF 10 
31/08/2015 09:17:06.00 |             RECEIVED | 50 02

wird schon die Temperatur abgefragt, die, wenn ich es richtig deute 15 Grad Celsius beträgt.

IP Symcon sagt mir aber, es wären 13.75 Grad Celsius.
OWFS zeigt eine Temperatur von 14.6125 Grad Celsius an (12 bit conversion)

Habe ich da etwas falsch verstanden?

Ich setze den DS1820 (ohne S oder B) ein, der ja kompatibel mit dem DS18S20 sein soll. Wird auch entsprechen in IP Symcon als Typ angezeigt (DS1920, DS1820, DS18S20).

tempdump.txt (28.6 KB)

Ich denke das Problem gefunden zu haben. Magst du es mit dem nächsten Update mal ausprobieren?

paresy

Klar :slight_smile:

Sieht auf jeden Fall schon besser aus. Die Werte sind anders und aendern sich haeufiger.
Werde es weiter beobachten und berichten.

Die Werte sehen irgendwie komisch aus. Die Temperatur „springt“ manchmal um 2 Grad hin und her. Habe auch neu aggregiert mit dem Script für Datenbankwiederherstellung, um das auszuschließen.
Es sind alle Sensoren betroffen, wobei der vom Tank ganz merkwürdig ist.

Irgendwelche Ideen?

Habe gerade festgestellt, dass ich eine Version (fb3b84ddb34f) im Rückstand bin. Konnte aber im Changelog nicht erkennen, dass diesbezüglich Veränderungen vorgenommen wurden.