Forum: Haus & Smart Home 1-Wire Atmega8 <-> DS2480B UART Problem


von Patrick .. (raptorsworld)


Lesenswert?

Hallo Leute,
habe vor mit dem 1Wire Busmaster DS2480B in Verbindung mit einem ATMega8 
mein Haus zu steuern. Die beiden Komponenten kommunizieren über die 
serielle Schnittstelle miteinander.
Konnte auch schon dem 1-Wire Slave DS2408 (8-Kanal I/O) Baustein 
Ausgänge setzten.
Ein weiterer Baustein dieser Art benutze ich für 8 Eingänge.
Bei der Abfrage der Eingänge passiert folgendes:
Ich selektiere den Baustein mit dem Match-Rom Befehl und Frage ihn ab 
mit dem Befehl Channel Access Read.
So weit so gut.

Ich benutze eine Interrupt Funktion um die Daten an der RX Leitung zu 
empfangen.

Ich empfange auch Daten, aber leider sind das immer die Daten vom 
vorherigem Empfang. Die Daten die ich empfangen möchte liegen wie es 
aussieht im Receive Shift Register und werden erst ins UDR geschrieben 
wenn erneut Daten empfangen werden.

Gibt es die Möglichkeit das Receive Shift Register zu deaktivieren?

Wenn ich ein Befehl sende, brauche ich unbedingt die Antwort direkt im 
Speicher(UDR) um damit weiter arbeiten zu können.

Freue mich über eure Antworten und Hilfestellungen
Patrick

von Ein (Gast)


Lesenswert?

Welche Programmiersprache?
Kommst du denn mit den Pollzeiten des 1Wire-Bus klar bei einem Hausbus?
Und was ist mit Störimpulsen bei einem 5Volt Pegel?
Die Kollision hat man ja durch Master mit div Slave im Griff.
Aber jeder 1Wire-Baustein braucht seine Zeit.

von Patrick .. (raptorsworld)


Angehängte Dateien:

Lesenswert?

Programmier-Sprache ist C und wird mit WinAVR programmiert.
Das ganze läuft auf einem AVR ATMega8.

Der 1-Wire Bus läuft im Overdrive Modus, das ist schnell genug für meine 
Anwendungen. Slave Bausteine sind mehrere DS2408, als Eingangs oder 
Ausgangs Bausteine.

Habe mal meine Testversion main.c angehängt.

Gibt es die Möglichkeit das Receive Shift Register zu deaktivieren?

Wenn ich ein Befehl sende, brauche ich unbedingt die Antwort direkt im
Speicher(UDR) um damit weiter arbeiten zu können.

Freue mich über eure Antworten und Hilfestellungen
Patrick

von Jens (Gast)


Lesenswert?

Hi Patrick,

das ist zwar schon ne Weile her, aber bist du damit weiter gekommen bzw. 
hast du einen funktionierenden Busmaster erstellen können?

Gruß
Jens

von Patrick .. (raptorsworld)


Lesenswert?

Hi Jens,
ja ich habe immer noch nicht vom 1-Wire die Hände lassen können. :-)

Bin gerade sehr in meiner Hausbauphase beschäftigt.
Aber es ist dort alles vorbereitet das ich dies dort als 
Rolladensteuerung einsetzen kann.

Ich habe das Protokoll so ziemlich komplett analysiert.
Und weiß nun schon im voraus was der Busmaster mir bei einem bestimmten 
Befehl antworten sollte.
D.h. ich habe einen anderen Weg eingeschlagen.
Die Idee mit der Interrupt Funktion am RX-Port hab ich verworfen.
Ich sende nun einen Befehl und warte auf die richtige Antwort vom 
Busmaster.
Somit wird vermieden das Befehle verloren gehen.
Mit der Geschwindigkeit bin ich sehr zufrieden, ich benutze keinen 
Overdrive, jedoch initialisiere ich die Seriellschnittstelle mit 57600 
baud.
Das bringt einiges an Speed. Die 1-Wire Bausteine alle separat mit 
Spannung versorgt und kann somit über 300m CAT5.E Kabel ohne Probleme 
überwinden.

Schönen Gruß aus Lünen

Patrick

von Helmut (Gast)


Lesenswert?

Hallo Patrick,

Habe ein bzw. mehrere Schalterdosenmodule für Rolladen- bzw Serien- 
Schalter gebastelt.

Gehe mal auf ipsymcon.de ins Forum. Unter 1Wire und Basteleien findest 
du den Kram.
Hutschienenmodule sind auch da.

Du weißt, dass DS2408 nicht mehr verwendet werden sollte?

Deshalb ist auch mal der DS2413 in dem Bastelkram drin.

Habe gerade den 1-Wire - Batteriewächter DS2438 mit einem Feuchtefühler 
gebastelt.

Der DS2438 hat auch ein Temperaturregister drin, deshalb ist das Teil so 
interessant.
Gruß Helmut

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.