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)


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


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)


Lesenswert?


von Thomas P. (tpircher) Benutzerseite


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)


Lesenswert?


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


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)


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)


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)


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 Markus W. (elektrowagi78) Benutzerseite


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)


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)


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)


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)


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)


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)


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 Markus W. (elektrowagi78) Benutzerseite


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)


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)


Lesenswert?

>Dafür kann man doch jeden 3€ Arduino verwenden

Originale Arduino Hardware beginnt ab 15 Euro aufwärts.

von Stefan ⛄ F. (stefanus)


Lesenswert?

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

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


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)


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)


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:

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:
1
from i2c_mp_usb import I2C_MP_USB as SMBus
2
import time
3
4
bus = SMBus()
5
6
# Aufwecken
7
bus.read_byte_data(0x33, 0x00)
8
9
# ID auslesen
10
deviceid = bus.read_byte_data(0x33, 0xC0)
11
print('device id: ', hex(deviceid))
12
13
try:
14
    while True:
15
16
        # Starte Messung
17
        bus.write_byte_data(0x33, 0xC4, 0x04)
18
19
        time.sleep(1)
20
21
        # Lese Ergebnis
22
        dspsigm = bus.read_byte_data(0x33, 0xC1)
23
        dspsigl = bus.read_byte_data(0x33, 0xC2)
24
25
        b = (((dspsigm & 0x7F) << 8 | dspsigl) - 16384) * 0.00125
26
27
        print(b, 'mT')
28
29
except KeyboardInterrupt:
30
    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.

von MartinH (Gast)


Lesenswert?

Echt, oder?

Da hat man manchmal keine Lust, ne doofe Frage zu stellen, wenn da 
irgendwelche Nerds, die kaum Tageslicht sehen, mal so richtig einen 
raushauen ;-)
Was sollen solche Aussagen immer? Statt einfach nur zu antworten kommen 
sehr oft dumme Sprüche, scheint an dem kleinen Ego zu liegen

von Stefan ⛄ F. (stefanus)


Lesenswert?

MartinH schrieb:
> Statt einfach nur zu antworten kommen
> sehr oft dumme Sprüche, scheint an dem kleinen Ego zu liegen

Wenn du das nicht vertragen kannst, musst Dir eine andere Gruppe 
aussuchen. Zum Beispiel Leute, die sich im Wald an den Händen halten und 
Wattebällchen zu pusten.

Alternativ steht es Dir frei, eine einfühlsame Firma zu suchen, die 
deine Fragen sauber und höflich beantwortet. Aber beklage dich dann 
nicht darüber, dass das Geld kostet.

von MartinH (Gast)


Lesenswert?

Och, ich kann schon ne Menge vetragen, mich nervt nur die Arroganz 
mancher Leute.... die raushängen lassen, dass sie etwas besser können.. 
dadurch schreckt man viele ab; mag damit zusammenhängen, dass die 
soziale Kompetenz bei manchen Leuten eben nicht so ausgeprägt ist, hat 
mit Wattebäuschen nicht viel zu tun, ist einfach nur die Kunst zu 
kommunizieren.

von MaWin (Gast)


Lesenswert?

Super.
Gewerbliche Werbung!
Wo sind die Mods, wenn man sie braucht?

von Stefan ⛄ F. (stefanus)


Lesenswert?

Kritik an der Umgangsform hier ist ja durchaus angemessen, nur kannst du 
nichts daran ändern. Also lebe damit oder bleibe weg.

von Guido Körber (Gast)


Lesenswert?

Also die IO-Warrior-Familie ist seit fast 20 Jahren auf dem Markt, 
entsprechend viel Unterstützung gibt es dazu:
https://www.codemercs.com/de/io

von Philipp K. (philipp_k59)


Lesenswert?

Ich glaube der Ch341 kann SPI und i2c.. habe jedenfalls ein i2c/SPI 
EEprom Adapter damit.

Benötigt man nur den passenden Treiber

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]
  • [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.