Forum: PC-Programmierung Onboard I2C (SMBus IHC8) in Linux


von Daniel (Gast)


Lesenswert?

Hallo an Alle,

ich habe mir ein PC/104 CPU Board zugelegt und möchte damit I2C 
IO-Expander ICs ansteuern.

CPU Board: Advantech PCM-3362

Das Board hat einen I2C Ausgang, leider konnte ich damit noch keinen 
externen Baustein ansteuern.

Die Adressen der Onboard Sensoren und des GPIO IC kann ich mittels 
i2cdetect auslesen. Am externen I2C Anschluss hängt auch ein IO Expander 
(MAX 7300), dieser wird leider nicht erkannt. Über  einen AVR hab ich 
den schon erfolgreich angesteuert, er funktioniert also.

Das Manual von Advantech ist auch ziemlich schlicht gehalten in diesem 
Bereich. Der I2C Bus wird zwar erwähnt, wie er angesteuert wird oder ob 
er überhaupt mit dem internen SMBus verbunden ist nirgends beschrieben.

Hat jemand Erfahrung mit solchen  Onboard I2C Schnittstellen. Bin für 
jeden Tip dankbar.

MfG Daniel

von Klaus (Gast)


Lesenswert?

Daniel schrieb:
> Hat jemand Erfahrung mit solchen  Onboard I2C Schnittstellen. Bin für
> jeden Tip dankbar.

Die kenne ich von ETX oder Q7 Boards. Sie sind normalerweise nicht mit 
dem SMBus verbunden. Treiber gibts dafür nur beim Boardhersteller 
(meistens). Wenn es einen gibt, taucht der Bus bei i2cdetect mit auf. 
Manchmal ist die Implementation des Busses ziemlich schwach, Bitbanging 
im Treiber.

MfG Klaus

von Daniel (Gast)


Lesenswert?

Vom Hersteller gibts leider nur für Windows eine DLL und ein 
Testprogramm mit dem I2C, die Watchdog, der SMBus und ein paar andere 
Funktionen gesteuert werden können.

Beim ICH8 Chipsatz ist ja der SMBus 2.0 implementiert und dieser ist I2C 
kompatibel. Im Grunde wäre es also unlogisch, wenn sie den nicht direkt 
rausführen.

Hab mir auch schon das Datenblatt des Chipsatz durchgelesen. Im 
Abschnitt SMBus ist auch I2C schön beschrieben. Ob der I2C Anschluss auf 
meinem Board vom SMBus getrennt ist konnte ich leider auch nicht 
herausfinden.
(http://www.intel.com/assets/pdf/datasheet/313056.pdf)

i2cdetect erkennt meine drei MAX7300 leider nicht. Es hängt noch kein 
Pullup auf der Daten/Clock-Leitung. Das sollte ja grundsätzlich 
hinfällig sein sobald nur ein Device an der Leitung hängt, oder?

Ich werd jetzt das ganze mal mit Windows testen um herauszufinden ob 
zumindest die IO Expander hardwaremässig richtig angeschlossen sind.

von Klaus (Gast)


Lesenswert?

Daniel schrieb:
> i2cdetect erkennt meine drei MAX7300 leider nicht. Es hängt noch kein
> Pullup auf der Daten/Clock-Leitung. Das sollte ja grundsätzlich
> hinfällig sein sobald nur ein Device an der Leitung hängt, oder?

Der I2C Bus ist Open-Collector, ohne Pullup geht da nichts.

MfG Klaus

von Daniel (Gast)


Lesenswert?

Nahe am Stecker sind 2 kleine SMDs. Das könnten entweder die Pullups 
oder Kondensatoren sein.
Werd derswegen vorher noch mit einem Oszi überprüfen ob sich am Clk oder 
Data Pin was tut, wenn ich den internen GPIO Expander ansteuere.

MfG
Daniel

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.