Hi, folgendes, schon mal ansatzweise diskutiertes Problem: Ich muss mehrere ATMELs zum kommunizieren zusammen schalten. Allerdings sind einige Protokolle dafür nicht geeignet, denn ich brauche folgende Voraussetzungen: - Bussystem, "einfach" mehrere Atmels hintereinander - Automatische Terminierung - Automatische Meldung am Mastergerät mit ebenso automatischer Adresszuweisung, (fast) beliebig viele Slave-Geräte hintereinander. - Bidirektionale Kommunikation - evtl. Hot-Swap-fähig (nicht zwingend erforderlich) Die Schnelligkeit der Kommunikation ist dabei nicht ganz so wichtig, wenige Bytes pro Sekunde reichen aus. Ich habe eine theoretische Lösung, bei der zwischen jedem Gerät drei Kabel verbunden werden müssen, außerdem "reichen" da zwei normale Ports und ein Interrupt-Port aus. Nun meine Frage: Gibt es vielleicht für diese Anforderungen schon eine fertige Lösung, die vielleicht sogar mit zwei Datenleitungen auskommt? I2C scheidet wegen der benötigten automatischen Adressvergabe leider aus... Gruß Sebezahn
Deinen I2C Ausschluss kann ich nicht verstehen. Solange du nur programmierte Geräte hast kannst du selbstverständlich dynamisch Adressen vergeben. Beispiel: Slave wird eingeschaltet und melded sich an den Master, welcher eine feste Adresse hat und bittet bei Nennung seiner Seriennummer um eine Adresse. Gibt natürlich auch viele andere Wege. 2. Beispiel: SMbus - in der aktuellen Version ist eine automatische Adressvergabe definiert.
Hi, oh ok, das geht bei I2C? Die Informationen, die ich gelesen habe, sagten immer aus, man müsse die Adresse von vorne herein festlegen. Dann werde ich noch mal in dieser Richtung weiter suchen... SMBus sagt mir gar nix, aber google.de spuckt da ja gewaltig viel aus. Vielen Dank für die Anregung! Gruß Sebezahn
@Sebezahn Falls Du eine Lösung findest dann poste sie bitte hier. Ich bin an einer Lösung sehr interessiert. Gruß Jörg
Hi, das versteht sich ja wohl von selbst ;-) Erst mal habe ich mir BASCOM bestellt, ich werde das wohl damit realisieren, die entstandenen Libs kann ich gerne hier posten. Gruß Sebezahn
Hast Du schon mal in Richtung CAN-Bus geschaut? Allerdings brauchst Du da nen Tranceiver...
Spezifikationen zum SMbus findest du unter www.smbus.org. Der smbus ist soweit ähnlich zum I2C, daß man die allermeisten I2C Komponenten verwenden kann. Die Adresse, die die Atmels verwenden ist die, welche du ins entsprechende Register geschrieben hast. Also nicht zwangsweise ein hardcoded Wert.
Vielen Dank, ich denke aber, ich werde mich da mal an einem eigenen Protokoll versuchen. Schon alleine, um etwas dabei zu lernen. Immer "nur" abkupfern bringt mich ja nicht wirklich weiter. Und die erste Implementierungsstufe funktioniert auch schon... Dennoch vielen Dank! Tolles Board, immer wieder! Gruß Sebezahn
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.