Forum: Mikrocontroller und Digitale Elektronik Bussystem "extrem"


von Sebezahn (Gast)


Lesenswert?

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

von Bernd Walter (Gast)


Lesenswert?

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.

von Sebezahn (Gast)


Lesenswert?

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

von Jörg Maaßen (Gast)


Lesenswert?

@Sebezahn
Falls Du eine Lösung findest dann poste sie bitte hier.

Ich bin an einer Lösung sehr interessiert.

Gruß Jörg

von Sebezahn (Gast)


Lesenswert?

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

von Max (Gast)


Lesenswert?

Hast Du schon mal in Richtung CAN-Bus geschaut? Allerdings brauchst Du
da nen Tranceiver...

von Bernd Walter (Gast)


Lesenswert?

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.

von Sebezahn (Gast)


Lesenswert?

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