* Zefiro trickser@gmx.net [2005-09-15 12:33]:
Für meine Kommunikation der Atmels untereinander dachte ich auch an I2C. Die Verkabelung wollte ich dabei mittels Netzwerkkabeln machen. Primär weil ich gerne Dinge nehme die ich zur Not anderweitig verwenden kann, je nach Bedarf. Und weil ich genügend davon habe.
Mein I2C wollte ich als Stern verlegen. Damit es topologisch ein Bus bleibt habe ich in jedes Kabel für die beiden Adern SCL+SDA ein Hin- und ein Rücksignal vorgesehen. Diese sollten dann am zentralen Verteiler zur nächsten Westernbuchse weitergegeben werden. Die anderen zwei Adernpaare versorgen die Clients mit Strom (zentral aus einem ATX-Netzteil)
Bei der Sterntopologie verschenkst du auf jeden Fall die Hälfte der Leitungslänge. Begrenzender Faktor ist IIRC der Widerstand der Leitungen.
Jetzt musste ich jedoch feststellen daß I2C scheinbar doch nicht geeignet ist dafür. Schon bei 3 Metern Leitungslänge - mit nur einem Client - kamen meine Signale nicht mehr sauber durch bzw. zum Teil gar nicht mehr. Die Software hänge sich auf (vermutlich Endlosschleife beim Warten auf die Busbestätigung). Mir fehlen die technischen Möglichkeiten und das Wissen um dem näher auf die Spur zu gehen. Ich finde mich momentan mit dem Gedanken ab wohl doch ein anderes Verfahren nehmen zu müssen. CAN oder RS485 kommen in den Sinn, mit Zusatzbauteilen.
Hast du mal versucht, die Busgeschwindigkeit zu reduzieren?
Da ihr eure Fnordlichter ja auch mit I2C verbinden wollt und ein GoL-Cluster wohl auch eine gewisse Ausdehnung bekommen soll wollte ich euch mal fragen ob ihr auch schon solche Probleme hattet und wie man sie lösen kann. Über Bus-Repeater habe ich gehört, aber Bezugsquellen sind kaum aufzutreiben bzw. ewig teuer. Was wäre in meinem Fall wohl die beste Variante?
Bis jetzt haben wir noch nicht mit längeren Leitungslängen experimentiert. Eine Notfallüberlegung wäre es, I2C über RS485 zu machen.