Hallo!
Ich hab eine Frage zum I2C-Bus. Es wird immer eine maximale Länge von
maximal ein paar Metern angegeben. Wie wird das nun gemessen? Absolut
vom Master zum Slave oder vom ganzen Bus?
Ich habe ein System mit einem Master. An ihn will ich 30 slaves mit rund
1 Meter Kabellänge anschließen. Hab ich nun 30 Meter Kabellänge oder 1
Meter Kabellänge von Slave zum Master?
Könnt ihr mir irgendwelche Verstärker empfehlen? Datenrate sollte so
hoch wie möglich sein.
Danke für die Mithilfe,
Philipp
Hi,
die angegebene Leitungslänge bezieht sich immer auf die Strecke von
Master zum Slave. Wenn du also 30 Slaves anhängen willst und die alle
nur jeweils 1m vom Master entfernt sind gibt es da kein Problem.
Verstärker wirst du da nicht brauchen.
bin bei dem projekt noch beim Planen auf Blockschaltbildebene. Also noch
ist nichts fix.
ich denke der Master wird ein ATMeag32 @ 16MHZ, alle Slaves ein ATMega16
@ 16MHZ.
Moinsen
ging es bei der übertragungsgeschwindigkeit nicht um die dämpfung der
leitung? also der kapazität? da währe doch egal ob 30 meter am stück
oder 30 mal ein meter im stern.
(bitte nich hauen wenn ich falsch liegen sollte)
lg
Das System mit 30 Slaves gibt es schon. Es wurde mit USART mit 9600 Baud
realisiert.
Nun soll die Version 2 realisiert werden, bei der der Bus rund 10 mal so
schnell sein soll.
Nun such ich eben Alternativen. Eine Möglichkeit auf die ich noch
gestoßen bin ist der CAN Bus, allerdings weiss ich hier nicht ob ich
mich darüber aussehe. Wie komplex ist der CAN Bus in der Handhabung und
wieviel Arbeit nimmt mir zum beispiel ein AT90CAN32 oder andere
Controller mit CAN Interface ab?
Was wären andere Alternativen? SPI?
Ziel wären also rund ~100kBit/s
Danke
Hallo zusammen,
@Hey noch Was
>> Der I2C wurde nicht gemacht, um die Leiterplatte zu verlassen
so ... ist mir neu ...
HDMI , DVI , sogar VGA verwenden I2C zum Datenaustausch ?
Die gesamt Kapazität des Bus bzw. eines selektierten BUS-Zweiges HUB)
und natürlich auch die Kabellänge (Signallaufzeit Master <> Slave) ist
zu beachten.
Mit entsprechenden Treibern können Leitungslängen von weit über 100 m
bei 100kHz erreicht werden.
Leitungs-Treiber:
P 82B96 I²C-Bus Repeater/Hubs/Extenders (von mir bevorzugt verwendet)
P 82B715 I²C bus extender
wird der Bus z.B. zu groß (Umfangreich), kann man diesen jederzeit auch
über einen HUB in Segmente aufteilen, mehr Adressen, verkleinern der
Gesamtkapazität ...
PCA9516 5-channel I2C hub
@Michael M.
>> nimm spi oder uart und differentiellwandler.>> wenn ich schon "i2c" und "so schnell wie möglich" lese...
I2C ist auf jeden Fall flexibler als SPI,
nur weil Du damit nicht umgehen kannst und es nicht hin bekommst :-)
Gruss Ralf
Michael M. schrieb:> old-school_offline schrieb:>> [viel blödsinn]> ja, das fasst es gut zusammen.
solch unqualifizierte Aussagen bringen mich auch nicht weiter. Kannst du
den "Blödsinn" näher ausführen? Haut das nun hin mit meinem I2C oder
nicht? Soll ich SPI, CAN nehmen?
Das problem wird sein, dass Probleme wahrscheinlich erst bei vielen
Platinen auftreten, sprich ich seh erst obs klappt wenn ich die 30
Platinen gebaut hab. Deshalb wär es praktisch für mich im Vorfeld zu
wissen mit welchem Bus ich eine chance hab und mit welchem nicht.
Danke
old-school_offline schrieb:> Die gesamt Kapazität des Bus bzw. eines selektierten BUS-Zweiges HUB)> und natürlich auch die Kabellänge (Signallaufzeit Master <> Slave) ist> zu beachten.
Signallaufzeit beachten? Bei I2C? Der Bus ist gääähnend langsam, da ist
die Signallaufzeit doch kein Prozent.
Auch mit 30 Teilnehmern nicht.
> Mit entsprechenden Treibern können Leitungslängen von weit über 100 m> bei 100kHz erreicht werden.
Gääähn. Wir leben in 2010. Über 100kHz freut sich kein Mensch mehr!
> Leitungs-Treiber:> P 82B96 I²C-Bus Repeater/Hubs/Extenders (von mir bevorzugt verwendet)> P 82B715 I²C bus extender
Ganz schöne Klimmzüge, um nicht von der Technik wegzumüssen, auf die man
sich so eingeschossen hat!
> @Michael M.>>> nimm spi oder uart und differentiellwandler.>>> wenn ich schon "i2c" und "so schnell wie möglich" lese...>> I2C ist auf jeden Fall flexibler als SPI,
Wieso denn flexibler?
Das einzige, was flexibler ist, ist das Kabel, weil es weniger Leitungen
braucht.
Das war es dann aber auch damit.
> nur weil Du damit nicht umgehen kannst und es nicht hin bekommst :-)
I2C ist doch seit Jahren überall fertig integriert zu finden. Was soll
denn daran "nicht hinzubekommen" sein?
@all
Philipp hatte ursprünglich eine Frage:
>> Ich hab eine Frage zum I2C-Bus ....
... und wurde auf diese eingegangen ?
außer erst mal alles schlecht machen und runter ziehen, glaube nicht.
Wir wissen ja noch nicht einmal was Philipp überhaupt damit machen will
...
Fakt ist: Philipp hat derzeit einen Master und 30 Slaves die ca 1 Meter
vom Master entfernt sind und derzeit mit 9600 b/s verbunden sind und
dies soll 10 x schneller werden.
Es wäre super wenn uns Philipp mal mehr Infos geben könnte ...
müssen z.B. die Slave (BUS) Hot-Plug fähig sein,
sind die Slaves Aktoren , Sensoren , oder beides,
wie groß sind die Datenpakete, sollen die Slave gepolt werden oder wird
eine oder mehrere Interrupt-Leitung benötigt.
Gibt es Einschränkungen in der Verkablung (Anzahl der Leitungen)
in was für einer Umgebung soll die Verbindung laufen, 19" Gehäuse mit
Backbohne oder Leitungs-Verbindungen in einer Maschine ...
Jede Art der Verbindung hat seine Daseinsberechtigung, sie muss nur
vernünftig eingesetzt werden.
in diesem sinne ...
Gruss Ralf
@Michael M.
>> :-) << (smilie) sollte nicht böse gemeint sein, sorry wenn Du es anders
verstanden hast.
Ralf Greinert schrieb:> Wir wissen ja noch nicht einmal was Philipp überhaupt damit machen will> ...
Da hast du völlig Recht!
> @Michael M.>>> :-) << (smilie) sollte nicht böse gemeint sein, sorry wenn Du es anders> verstanden hast.
Danke für die Aufklärung. Dann bitte ich dich um Entschuldigung =)
Nicht für ungut!
Michael
philipp schrieb:> Das System mit 30 Slaves gibt es schon. Es wurde mit USART mit 9600 Baud> realisiert. Nun soll die Version 2 realisiert werden, bei der der Bus> rund 10 mal so schnell sein soll.
Dann lass es doch einfach bei der seriellen Kommunikation, schraub die
Baudrate hoch und verwende differentielle Treiber (RS422 bzw. RS485,
ähnlich CAN).
> Wie komplex ist der CAN Bus in der Handhabung
Er ist ähnlich einfach wie eine RS232-Schnitte: Initialisierung,
Senderegister beschreiben, Empfangsinterrupt, Empfangsregister lesen.
Aber für dich ist er eben noch neu. Das Stichwort dazu heißt: Lernen
;-)
>> Der I2C wurde nicht gemacht, um die Leiterplatte zu verlassen> so ... ist mir neu ...
Ist trotzdem so: Inter-IC-Bus, also zur Kommunikation zwischen ICs. Z.B.
zwischen dem Hauptrechner und der Eingabe bzw. irgendwelchen
Ansteuerungen im Fernseher, Autoradio oder Videorecorder.
> HDMI , DVI , sogar VGA verwenden I2C zum Datenaustausch ?
Und PS/2 (Tastatur) ist auch so ein Format. Das sind aber Punkt-zu-Punkt
Verbindungen, da ist die Terminierung einfacher zu realisieren.
>>> Ich hab eine Frage zum I2C-Bus ....> ... und wurde auf diese eingegangen ?
Die grundlegende Frage war eigentlich gar nicht zum I²C-Bus, sondern
hätte lauten müssen: Wie schaffe ich eine Baudrate von mindestens
100kBit/s auf einer Länge von 30m?