Hallo Zusammen, ich habe eine Frage zum Thema Multiplexer. Ich habe ein Board mit fertigen Treibern, dass ich als Control Einheit verwende. Auf dem Board ist ein I2C Bus und ein Multiplexer. Ich möchte einen der internen DACs ansteuern. Dazu muss ich den Multiplexer auf den gewünschten Bus schalten und dnan sozusagen eine Sequenz für den DAC absetzen. Aber was ist genau damit gemeint? Ich habe ein Kommando ähnlich I2C 0 71 x xz Wobei 0 das R/W, 71 wahrscheinlich A0 bis A6 also 7MSB denke ich,x die Schreibrichtung und y der Kanal. Aber was genau kann ich tun um als erstes den Multiplexer auf den gewünschten i2c bis zu schalten. Kann ich dann über die Kommandoshell eines Rechners, an dem das Board per USB angeschlossen ist, machen? Oder muss das auch in dem Protokolfile sein, dass ich dann für den Controller schreibe, um dann Gerste über I2C anzusteuern?
Da fehlen alle relevanten Infos (Board Typ etc.) um die Frage auch nur im Ansatz sinnvoll beantworten zu können. Meine Glaskugel ist in Reparatur.
Jim M. schrieb: > Da fehlen alle relevanten Infos (Board Typ etc.) um die Frage auch > nur > im Ansatz sinnvoll beantworten zu können. Meine Glaskugel ist in > Reparatur. ....quatsch,Du hast bloß keine Ahnung! Den Multiplexer erreichst Du ganz bequem über das Kommando (write,<adresse>,<wert>)
@Bestromer: Hä? Wir wissen ja noch nichtmal, um welches Board es geht. Kennt ihr euch persönlch, oder woher weist du mehr?
Es handelt sich dabei um kein kommerzielles Board. Mir geht es nur darum: Es wird an einem Raspberry Py per USb angeschlossen und verfügt intern bereits über alle Treiber. Meine Frage ist nur wie ich den internen Multiplexer dieses Boards auf einen der I2C-Bus schalte? Aus der Kommandoshell aus? Mir geht es einfach nur um das Prinzip!
Thomas schrieb: > Meine Frage ist nur wie ich den internen > Multiplexer dieses Boards auf einen der I2C-Bus schalte? Aus der > Kommandoshell aus? Mir geht es einfach nur um das Prinzip! So, wie es vom Entwickler des Boards vorgesehen ist. Andere Möglichkeiten sind nicht ausgeschlossen, aber doch eher selten. So ist das im Prinzip immer.
Thomas schrieb: > Es handelt sich dabei um kein kommerzielles Board. Und deshalb darfst du uns nicht verraten welches es ist?
Das geht so: du schickst die richtigen Befehle per USB und wertest die Antworten aus. Wie die Befehle auszusehen haben, steht in der Dokumentation des Boards.
PS: Befehle schicken & empfangen geht zB per libusb in einem C-Programm, welches du über deine Kommandoshell kompilierst und ausführst.Alternativ passt vielleicht ja ein im Kernel vorhandener Treiber auf die gewünschten Befehle, den du dann über seine spezifische Schnittstelle ( /dev Dateien oder so ) ansprechen kannst.
Hier kennt sich ja wieder keiner aus, schrecklich... Der per USB steuerbare I²C Multiplexer ist natürlich völlig zweifelsfrei Conrad # 409667. Dummerweise gibt es zum Kanal-Wechseln nur eine Windows-Software. Deshalb: Thomas schrieb: > Aber was genau kann ich tun um als > erstes den Multiplexer auf den gewünschten i2c bis zu schalten. Kann ich > dann über die Kommandoshell eines Rechners, an dem das Board per USB > angeschlossen ist, machen?
Planlos schrieb: > Der per USB steuerbare I²C Multiplexer ist natürlich völlig zweifelsfrei > Conrad # 409667. Na du hast ja eine tolle Glaskugel ... > Dummerweise gibt es zum Kanal-Wechseln nur eine Windows-Software. Auch die wird USB-Konforme Dinge über den USB schicken, die man dann natürlich auch unter dem (unbekannten) Betriebssystem des Rechners des TOs irgendwie auf den Weg bekommen würde.
Planlos schrieb: > Der per USB steuerbare I²C Multiplexer ist natürlich völlig zweifelsfrei > Conrad # 409667. Thomas schrieb: > Es handelt sich dabei um kein kommerzielles Board. Aha ...
W.A. schrieb: > die man dann natürlich auch unter dem (unbekannten) Betriebssystem des > Rechners des TOs irgendwie auf den Weg bekommen würde. Linux auf Raspberry PI: Beitrag "I²C - Buch oder Tutorial in C"
W.A. schrieb: > (unbekannten) Betriebssystem des Rechners des TOs Nachdem der Rechner ein Raspi (erm, RasbPy?) ist, wird das OS darauf nicht allzu unbekannt sein.... Oder ist das Raspi-Windows10 schon fertig? Thomas schrieb: > Es wird an einem Raspberry Py per USb angeschlossen und verfügt intern > bereits über alle Treiber. Meine Frage ist nur wie ich den internen > Multiplexer dieses Boards auf einen der I2C-Bus schalte? Aus der > Kommandoshell aus? Mir geht es einfach nur um das Prinzip!
Thomas schrieb: > Mir geht es einfach nur um das Prinzip! Das Prinzip ist immer dasselbe. Schau in die Doku zu dem unbekannten Board und richte Dich danach. Ich habe für I2C noch nie nen Multiplexer gebraucht. Ist schon recht komisch Dein Board. Hast Du mal den Schaltplan?
Peter D. schrieb: > Ich habe für I2C noch nie nen Multiplexer gebraucht. Ist schon recht > komisch Dein Board. Hast Du mal den Schaltplan? Dann hast du noch nicht mit einem oder mehreren COTEK-Netzteilen und einem EEPROM auf einem Bus gearbeitet. ;)
Peter D. schrieb: > Hast Du mal den Schaltplan? Den braucht er ja nicht. Denn: Thomas schrieb: > Ich habe ein Board mit > fertigen Treibern, und wenn die Linux-Treiber für das (unbekannte) Board laufen, werden sie den (unbekannten) I²C Multiplexer ansprechen können. Alle Details über den Multiplexer werden Kernel-Intern gehandhabt. Für die Userspace-Programme stehen einfach mehrere I2C-Bus-Devicenodes zur Verfügung. Richtiges Devicenode verwenden => Kernel kümmert sich um den Rest. Hier noch ein Link mit schickem ASCII-Art Bild für die Graphisch Orientierte Leserschaft: https://i2c.wiki.kernel.org/index.php/I2C_bus_multiplexing Zitat:
1 | If your system has one (or more) I2C controller(s) and one (or more) I2C |
2 | multiplexer(s), you should be able to access each I2C device on any |
3 | segment without doing "strange" operations but i2c classic ones. |
4 | In other words, the user shouldn't have to know the I2C bus topology |
5 | details nor the multiplexer internals. By considering each i2c multiplexer |
6 | branch as an independent segment we can reach the goal, in fact the user |
7 | simply can exchange data with an I2C device by accessing to the relevant |
8 | segment. |
Stand so aber auch schon im Parallel-Thread. Timmo H. schrieb: > dann erledigt Linux die Umschaltung automatisch wenn du > den i2c bus ansprichst (i2c-0, i2c-1 ...)
Zur Auswahl mehrerer I2C-Slaves mit gleicher Adresse kann man auch 1..16 PCF8574/A benutzen. Die Slaves müssen nur mindestens einen Adreßpin haben.
Stefan U. schrieb: > @Bestromer: > Hä? Wir wissen ja noch nichtmal, um welches Board es geht. Kennt ihr > euch persönlch, oder woher weist du mehr? ...ich weis natürlich nicht mehr wie alle Anderen auch....mit den spärlichen Angaben des TO kann man nix Anfangen, genau so wenig wie mit meiner Antwort....beides sehr rätselhaft und Zeitverschwendung....das war die Botschaft dahinter :)
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.