Re: I²C beschleunigen Kategorie: I²C-Bus (von Detlef - 8.01.2011 22:40) | ||
Als Antwort auf Re: I²C beschleunigen von Wurl - 2.01.2011 19:09 | ||
| ||
> > > Hallo. > > > > > > Ist es moeglich die I2C-Schnittstelle irgendwie zu beschleunigen? > > > > > > Ich möchte eine grosse Haussteuerung mit 16 I2C-Modulen machen. > > > D.h. pollen von 16 Input-Ports und 16 Output-Ports, weshalb ich grausame Reaktionszeiten befuerchte. > > > Meine Busleitung is insgesamt nur ca 2 Meter lang, und die I2C-Chips sollten ja normalerweise schnell genug sein. > > > > > > MfG, > > > Wurl > > > > Hallo. > > > > Es ist nicht notwendig die I2C Schnittstelle zu beschleunigen, > > ich betreibe eine Haussteuerung mit insgesamt 18 MAX 7311 und insgesamt 20m Busleitung ohne Probleme. > > > > Dabei werden insgesamt 30 Taster per Polling abgefragt, die irgendwie an den MAX7311 hängen. > > Auch Tasterabfragen wie "3x Drücken", also die einzelnen Betätigungen zu zählen, > > ist ohne Probleme möglich. > > Und dann ist es immer noch möglich, Aktoren zu steuern, die auch an dem BUS hängen. > > Dazu kommen Dimmer, die langsam auf- und abdimmen. Das Auf- und Abdimmen wird ebenfalls > > über den BUS abgewickelt, indem nacheinander bis zu 60 Helligkeitswerte an die Dimmer gesendet > > werden. Erst beim Dimmen mehrerer Lampen gleichzeitig merkt man, dass es langsamer auf- bzw. abdimmt. > > > > Aber die Eingangsabfrage ist auch dann immer noch problemlos. > > > > > > > Dank für die Antwort. > > Bei mir sollen es bis zu 112 (14x8) digitale Eingänge (Taster, Bewegungsmelder etc.) sein. > Gut die Hälfte davon mit Auswertung von Lang-Halten und Mehrfach-Druck. > (Das benötige ich für 12 Jalousien, 6 Dimmer, etc. um sie mit nur je 1 Taste angenehm zu steuern.) > Insgesamt gibt es auch bis zu 112 digitale Ausgänge zu verwalten. > Daneben sind noch 48 Analogkanäle abzutasten (braucht aber blos einer alle zwei Zyklen zu sein). > > Ich habe schon Code gehackt für die Tasterauswertung, und für die Jalousiesteuerung. > (Vielleicht schaffe ich auch eine Drag&Drop Funktion ;-) > > Den system.timer() möchte ich verwenden um mich darauf zu synchronisieren (warten auf bit7 und höher). > Die ganze Schleife soll also möglichst im festen Raster von 128ms ablaufen. > (Alle Eingänge pollen, Auswertung, und alle Ausgänge aktualisieren.) > > Leider ist noch nichts verdrahtet, und ich muss auch noch ein wenig fertig programmieren. > Aber so ein Gefühl für die zu Erwartende Performance (Reaktionszeiten) wäre nicht schlecht. > > MfG, > Ewald Hallo Ewald, zum Gefühl ein Live-Beispiel: Exakt 18 MAX7311 reihum adressieren und auslesen. Zwischendurch die gleichen MAX7311 adressieren und Ausgänge setzen. Eingangseinlesen bleibt instantan. Beispiel Schalter Betätigung: Einzelne Jalousieauswahl (dritte Jalousie von rechts, erst rauf, stop, dann runter, stop) Schalter betätigen Schönes Restwochenende. | ||
Antwort schreiben Antworten: |