Forum: Mikrocontroller und Digitale Elektronik Adressraum es Mainboards erweitern


von Pluto B. (pluto)


Lesenswert?

Hallo!

Mein Problem ist folgendes und ich hoffe, dass ich mich dabei im
richtigem Forum befinde:

Ich habe ein Mini-ITX Mainboard auf dem Fedora Core läuft. Über den I2C
Bus möchte ich ein Motorsteuerungsmodul (MD23) ansprechen. Dieses Modul
bewegt sich im Adressbereich 0xB0 bis 0xBE. Mit i2cdetect fand ich
jedoch heraus, dass nur der Adressraum zwischen 0x03 bis 0x77 auf
angeschlossene Clients durchsucht wird.

Wie kann ich also den Adressraum des Motherboards erweitern? Ist dies
überhaupt möglich?

Vielen Dank!
Pluto

von programinator (Gast)


Lesenswert?

Moin,

bin mir nicht sicher, ob ich das jetzt richtig verstanden habe. Aber
wenn der I2C auf dem Mainboard gemeint ist und das zusätzliche Modul
dort angeschlossen werden soll gibt es ein Problem.
Denn bei I2C gibt es für jedes IC eine eindeutige Adresse. Gelegentlich
kann man diese Adresse in den unteren 2/3 Bits noch selbst durch
herausgeführte Jumper/Pins konfigurieren. Aber wenn der MD23 im Bereich
von 0xB0 und höher läuft und das Programm dieses Bereich höheren nicht
anspricht wird das nix. Am besten nach einem anderen Tool umschauen
oder ein anderes Modul einsaetzen.

von Pluto B. (pluto)


Lesenswert?

ja, es ist der adressraum des mainboards gemeint. danke für deine
schnelle antwort. ich hoffe eine rückgabe ist noch möglich...

von Rolf Magnus (Gast)


Lesenswert?

Du meinst, daß das Mainboard eine hardwaremäßige Beschränkung hat, durch
die es auf dem I2C-Bus mit Adressen über 0x77 nicht umgehen kann? Das
klingt mir irgendwie unwahrscheinlich.

von ??? (Gast)


Lesenswert?

wird der Bus mit BIOS-Routinen angesprochen? Werden die Adressen im
I/O-Bereich gespiegelt?

... warscheinlich 2x Nein.
also gibts da keine Beschränkung. Das sind ja auch nur serielle Daten.
Da muss das Programm ebend auch die anderen Adressen abfragen.

von Pluto B. (pluto)


Lesenswert?

ja, aber wie bringe ich diese Routine dazu, auch die anderen Adressen
abzufragen? Ich hab bisher keine vernünftige Möglichkeit gefunden...

von Thorsten (Gast)


Lesenswert?

Welche Routine?

von ??? (Gast)


Lesenswert?

sicher wird diese routine im i2c-treiber stecken...

von Thorsten (Gast)


Lesenswert?

Einen Linux-Kerneltreiber für das I²C-Motorsteuerungsmodul wird es
höchstwahrscheinlich nicht geben. Man kann das Motorsteuerungsmodul,
wie jeden anderen I²C-Busteilnehmer auch, aber recht einfach über die
entsprechende  Busschnittstelle (/dev/i2c-?) direkt ansprechen:

1. /dev/i2c-? öffnen
2. Slave Adresse mittels ioctl() setzen
3. Daten mittels write()/read() zum/vom Motorsteuerungsmodul
senden/empfangen

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
Noch kein Account? Hier anmelden.