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.
Sehr gut, Danke. Man liest immer von Datenrate "bis zu ...". Mit welchen Datenraten kann ich bei meinem Bus rechnen? Danke =)
Das hängt von Deinen Baugruppen die du einsetzt ab. Bei einen Bustakt von 400KHz können das so ca. 30KByte in der Sekunde sein.
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.
>Bei einen Bustakt von 400KHz
Kannste bei 30m knicken.
Wenn man vom Master sternförmig zu den Slaves geht sind das nur 1m. Ansonsten funktionieren 400kHz natürlich nicht.
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
Der I2C wurde nicht gemacht, um die Leiterplatte zu verlassen... der Bus ist nicht einmal differentiell.
nimm spi oder uart und differentiellwandler. wenn ich schon "i2c" und "so schnell wie möglich" lese...
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
Bei der USART ist doch mit 9600 noch nicht Schluss. Die schafft auch 250.000 (oder noch schneller?). Warum also nicht einfach auf z.B. 115000 gehen?
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?
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.