Forum: Mikrocontroller und Digitale Elektronik i2c usb interface


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Michael W. (mwulz)


Bewertung
0 lesenswert
nicht lesenswert
Kennt jemand von euch ein Interface mit dem ich USB<->i2C machen kann?

Ich möchte unter ein Linux (debian) über USB eine i2C Porterweiterung 
und Temperatursensoren anhängen.


danke
Michael

von Stefan B. (stefan) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Einer der ersten Treffer bei Google (usb i2c interface OR converter OR 
adapter):

USB-I2C  USB to I2C Communications Module
http://www.robot-electronics.co.uk/htm/usb_i2c_tech.htm

von Timo (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Thomas P. (tpircher) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Stefan B. schrieb:
> http://www.robot-electronics.co.uk/htm/usb_i2c_tech.htm

Diesen habe ich zu Hause. Er funktioniert einwandfrei, wenn man mit 
einigen Beschraenkungen leben kann: 5V only und (meines Wissens) keine 
Einstellungsmoeglichkeit der I2C Geschwindingkeit.

Auf 
http://en.wikipedia.org/wiki/I2C#Hardware_connectivity_Solutions_-_USB_and_Serial_Support 
gibt es eine recht lange Liste einiger kommerzieller und Open Source 
Loesungen.

Eigenwerbung:
Und auf http://www.tty1.net/userial/ gibt es eine Open-Source Loesung 
zum nachbauen.

Thomas

von Christian R. (supachris)


Bewertung
0 lesenswert
nicht lesenswert

von Jürgen H. (Firma: Horter & Kalb) (horter_de)


Bewertung
0 lesenswert
nicht lesenswert
Hallo,

unter http://www.horter.de im Bereich I2C Baugruppen gibt es Interfaces 
und Bausätze für diesen Zewck.

Ein USB-Modem ist auch bereits entwickelt. Wenn Sie möchten können Sie 
als Betatester ein Modem vorab zum Testen haben.

http://www.horter.de/i2c/i2c-usb-modem/i2c-usb-modem_1.html

Bei Interesse bitte melden.

Gruß, JH

von Bernhard G. (thisamplifierisloud)


Bewertung
0 lesenswert
nicht lesenswert
bei ELV hab ich mir sowas für kleines Geld geholt.
Funzt prima zum Ausprobieren neuer I2C-Käfer.

http://www.elv.de/output/controller.aspx?cid=74&detail=10&detail2=24012

von Michael W. (mwulz)


Bewertung
0 lesenswert
nicht lesenswert
DANKE für die Zahlreichen Antworten ;-)
dieses Forum ist halt einfach das BESTE!

Ich werde mir mal das Modul von Horter und ELV genauer anschauen.
Die anderen sind auch toll, jedoch möchte ich diese bequem von 
Österreich aus bestellen können.

M

von Gogo (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Also den Kram von ELV kann ich nicht empfehlen. Einfach nochmal in so 
einem alten Fred gepostet, damit das Thema wieder  hochpoppt.

Keine Beschreibung der Fehler, schlechte Doku, schlechter Support, 5V 
only.

von M. W. (elektrowagi78) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Das ist ja auch nur ein Bausatz! Wer basteln will, ist damit gut 
aufgehoben.

Ich würde zu einem Fertiggerät mit Software raten!

von Johnny B. (johnnyb)


Bewertung
1 lesenswert
nicht lesenswert
Das MPSSE Kabel von FTDI kann unter anderem auch I2C (Master):
http://www.mouser.ch/new/ftdi/ftdiusbtompsse/

Es gibt übrigens eine Version mit 3.3V und eine mit 5V.

: Bearbeitet durch User
von Stefan ⛄ F. (stefanus)


Bewertung
-2 lesenswert
nicht lesenswert
Dafür kann man doch jeden 3€ Arduino verwenden, mit einem Mini kleinen 
Programm. Wer das nicht hin bekommt, sollte kein I2C benutzen.

von Mick (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Dafür kann man doch jeden 3€ Arduino verwenden, mit einem Mini kleinen
> Programm.

Und das hier wäre ein solches Programm: 
https://gist.github.com/kraftb/8c0bbcc35a9778608d74

Stefan U. schrieb:
> Wer das nicht hin bekommt, sollte kein I2C benutzen.

Solche Aussagen sind so wirklich typisch für dieses Forum. Gratulation 
für diese Formulierung!

von Frank K. (fchk)


Bewertung
1 lesenswert
nicht lesenswert
Michael W. schrieb:
> Kennt jemand von euch ein Interface mit dem ich USB<->i2C machen kann?
>
> Ich möchte unter ein Linux (debian) über USB eine i2C Porterweiterung
> und Temperatursensoren anhängen.

MCP2221A

http://www.microchip.com/wwwproducts/en/MCP2221A

Gibts auch in DIL. Einfachst selber aufzubauen.

Dann nimmst Du diesen Treiber

http://ww1.microchip.com/downloads/en/DeviceDoc/mcp2221_0_1.tar.gz

und compilierst den auf Deinem System. Nach dem Laden hast Du ein 
weiteres /dev/i2c Device.

Und hier steht drin, wie man I2C-Kernel-Devices (egal welches) vom 
Userspace aus benutzt.

https://www.kernel.org/doc/Documentation/i2c/dev-interface

fchk

von DraconiX (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
@Frank:

Jetzt ernsthaft?!? In glaube nach 8... acht.... ACHT Jahren hat er sein 
Problem bestimmt gelöst!

von Patrick J. (ho-bit-hun-ter)


Bewertung
0 lesenswert
nicht lesenswert
Hi

DraconiX schrieb:
> Jetzt ernsthaft?!?

Wie meinen?

Frank antwortete auf zumindest 5 ... fünf ... FÜNF !!!1ELF1!! aktuelle 
Posts.

Also ernsthaft jetzt!

Leider hat der Leichengräber nicht wirklich was sinnvolles gesagt, 
nachdem dieser Thread die von Dir bereits erwähnten 8 Jahre Ruhe hatte.

Trotzdem finde ich gerade den Post von Frank interessant - nur nebenbei 
erwähnt.

MfG


PS: Wobei mir nicht ganz klar ist, ob vor 8 Jahren der Arduino auch 
schon so in Sachen I2C zur Nutzung bereit stand oder ob man noch 
wirklich selber die Hirse anstrengen musste, um I2C schwätzen zu können.

Zumindest gab es den Arduino wohl schon:
https://arduinohistory.github.io/de.html

: Bearbeitet durch User
von M. W. (elektrowagi78) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Stefan U. schrieb:
> Dafür kann man doch jeden 3€ Arduino verwenden, mit einem Mini kleinen
> Programm. Wer das nicht hin bekommt, sollte kein I2C benutzen.

Warum bauen, wenn man es kaufen kann?

von Bernhard (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ich kann diesen wärmstens empfehlen:

http://www.harbaum.org/till/i2c_tiny_usb/index.shtml

Davon habe ich mehrere produktiv in Betrieb.
Der große Vorteil im Vergleich zu allen anderen liegt darin, dass dieser 
unter Linux als I2C Schnittstelle registriert und man dann sämtliche 
Linux-Trieber für I2C Bausteine sofort nutzen kann.

Der Umweg über CDC bzw. einen seriellen Port kann man auch machen wenn 
man nur eine Applikation damit verwendet.

Aber ich habe die ganzen Linux-Tools für I2C sehr zu schätzen gelernt 
und würde darauf nicht verzichten.

von derjaeger (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
>Dafür kann man doch jeden 3€ Arduino verwenden

Originale Arduino Hardware beginnt ab 15 Euro aufwärts.

von Stefan ⛄ F. (stefanus)


Bewertung
-1 lesenswert
nicht lesenswert
Arduino ist aber Open-Hardware und deswegen sind nicht originale Arduino 
Module legitim.

von Rufus Τ. F. (rufus) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Bernhard schrieb:
> Der große Vorteil im Vergleich zu allen

... liegt darin, daß mit V-USB nur dann nicht am USB-Standard 
vorbeiprogrammiert wird, wenn ein zu Low-Speed passendes Protokoll 
verwendet wird.

CDC fällt damit schon mal durch, das wurde zwar in der Vergangenheit von 
einigen USB-Host-Stacks toleriert, aber von neueren Implementierungen 
nicht mehr.

von Joachim S. (oyo)


Bewertung
2 lesenswert
nicht lesenswert
Bernhard schrieb:
> Ich kann diesen wärmstens empfehlen:
>
> http://www.harbaum.org/till/i2c_tiny_usb/index.shtml
>
> Davon habe ich mehrere produktiv in Betrieb.

Danke für den Hinweis. Ich war gerade schon dabei, die dafür benötigten 
Teile bei Ali zu bestellen - dann habe ich plötzlich gelesen, dass 
i2c-tiny-usb auf ein kleines Kickstarter-Open-Hardware-Board namens 
"Digispark" portiert wurde, das man für gerade mal 90 Cent bei Ali 
bestellen kann:
https://www.aliexpress.com/item/Digispark-kickstarter-development-board-ATTINY85-module-for-Arduino-usb/32733740149.html

Gleich mal eins bestellen...

von Rainer W. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Suche ebenfalls ein USB-nach-I²C-Interface fürs Prototyping. Soll 
hauptsächlich unter Linux eingesetzt werden, gelegentlich wäre aber 
Windows auch ganz nützlich. Ich tendiere zu diesem:

https://www.fischl.de/i2c-mp-usb/

Scheint ja unter Linux out-of-the-box zu laufen und unter Windows mit 
überschaubaren Aufwand via Python. Hat jemand Erfahrung damit oder eine 
andere Empfehlung?

von Rainer W. (Gast)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Ich hab mir nun einen I2C-MP-USB zugelegt: Läuft ohne Probleme.

Gleich mal mit einem Hallsensor Si7210, den ich in einem Projekt 
verwenden möchte, probiert. Unter Linux läuft der Adapter direkt mit 
Bordmitteln, also i2cdetect, i2cset und i2cget. Da ich später auch mal 
Windows einsetzen muss, habe ich auch die Python-Lib probiert:
from i2c_mp_usb import I2C_MP_USB as SMBus
import time

bus = SMBus()

# Aufwecken
bus.read_byte_data(0x33, 0x00)

# ID auslesen
deviceid = bus.read_byte_data(0x33, 0xC0)
print('device id: ', hex(deviceid))

try:
    while True:

        # Starte Messung
        bus.write_byte_data(0x33, 0xC4, 0x04)

        time.sleep(1)

        # Lese Ergebnis
        dspsigm = bus.read_byte_data(0x33, 0xC1)
        dspsigl = bus.read_byte_data(0x33, 0xC2)

        b = (((dspsigm & 0x7F) << 8 | dspsigl) - 16384) * 0.00125

        print(b, 'mT')

except KeyboardInterrupt:
    pass

Gibt im Sekundentakt die magnetische Feldstärke aus. Funktioniert unter 
Windows und Linux gleichermaßen.
Auch praktisch, dass die Python Anbindung kompatibel mit dem "smbus" 
Standardmodul ist. Damit lässt sich das später ohne Aufwand z.B. auf 
einen Raspberry Pi mit seiner eigenen IIC Hardware nutzen.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.