mikrocontroller.net

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


Autor: Patrick ... (raptorsworld)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ein (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Patrick ... (raptorsworld)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Jens (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Patrick ... (raptorsworld)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Helmut (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.