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
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.
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
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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.