Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: gepufferter I2C-Bus Kategorie: I²C-Bus (von Christian Jost - 25.12.2005 10:49)
Als Antwort auf gepufferter I2C-Bus von Erich H. Nolting - 5.12.2005 21:55
Ich nutze:
C-Control II Station, OSOPT_V2, OSOPT V3.0
Hallo Erich

Ich hattes das Problem auch mal. Damals habe ich noch keine C-Control verwendet sondern der I2C
Master war auf einer PC-Interface Karte. Ich denke nur über kleinere Widerstände lässt sich das
Problem nicht lösen. Der I2C-Bus ist nicht für grosse Distanzen gemacht und kann keine
Ã?bertragungsfehler entdecken oder korrigieren.

Meine Anwendung war/ist nicht sehr zeitkritisch. Ich hatte eigentlich nur folgende Komponenten
angeschlossen:
- Schalter/Taster
- Anzeigeelemente (Led's)
- Relais

Ich habe es damals wie folgt gelöst:

Die Empfangsroutine für den I2C-Bus hat die gleichen Daten mehrfach gelesen. Erst wenn min. zwei
nacheinanderfolgende Bytes den gleichen Wert aufwiesen, wurden sie als gültige Daten akzeptiert.

Beim Senden war es etwas komplizierter: Zuerst wurde das gewünschte Byte an den I2C Baustein
übertragen und danach über die Empfangsroutine gleich wieder eingelesen. Falls der gesendete
Wert nicht dem empfangenen Wert entsprach, so wurde das Byte nochmals an den Baustein
übertragen. Falls nötig wurde dies mehrfach wiederholt.

Danach hatte ich nie mehr Probleme mit der �bertragung. Viele Relais sind genügend träge, so
dass man problemlos ein paar falsche Bits korrigieren kann, ohne dass ein angeschlossenes
Gerät bereits darauf reagiert. Ok, das Verfahren lässt sich sicher noch optimieren und ein
100%-iger Schutz ist es auch nicht.

Meine Software hat damals gezählt wie oft solche Fehler auftreten. Während ca. 2-3 Stunden (es
handelt sich da um eine Theatersaalsteuerung) gab es so um die 2-10 Ã?bertragungsfehler, die etwas
ungewolltes (z.B. Vorhang schliessen) bewirkt hätten.

Inzwischen habe ich es aber anders gelöst. die I2C Komponenten sind sehr nahe an der CControl
(< 1m). Grössere Strecken überbrücke ich mit dem CAN-Bus. Dazu gibt es 3 Schaltschränke mit
je einer C-Control-Station und sehr viel I/O über I2C.

Meine erste Lösung funktioniert gut für I/O Bausteine aber für Speicher, D/A-Wandler und viele
andere Bausteine sowie zeitkritische Anwendungen klappt das nicht.

Mich würde es interessieren, was andere so für Erfahrungen mit dem I2C-Bus gemacht haben?

Gruss
Christian





    Antwort schreiben


Antworten: