I2C Kommunikation via USB Dongle - grundlegende Fragen

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
i2c_user
Posts: 6
Joined: Wed Aug 21, 2013 2:16 pm

I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by i2c_user »

Hallo Zusammen!

Das Folgende bezieht sich auf die API unter Linux mittels /dev/usb/iowarriorX (ohne iowkit).

Via read()/write() müssen immer 2-Byte Häppchen gelesen/geschrieben werden. Das steht auch so in der Dokumentation. Was ich allerdings dort nicht gefunden habe, ist eine Beschreibung der Semantik. Werden denn alle beiden Bytes per i2c gesendet/gelesen? Wenn dem so ist: in welcher Reihenfolge, und was passiert wenn der Slave nur ein Byte erwartet?

Ich habe bei I2C gelesen, dass zuerst die Adresse des Slaves auf den Bus gelegt werden muss (ich rufe also write() mit einem der beiden Bytes als Slave-Adresse gesetzt). Sofern ein Slave sich angesprochen fühlt, muss dieser mit einem ACK antwortet. Wie finde ich heraus, dass ein solches ACK gesendet wurde?

Vielleicht habe ich etwas Grundsätzliches in der Doku übersehen, dann bin ich auf jeden Verweis auf diese sehr dankbar!
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by Guido Körber »

IO-Warrior Datenblatt.

Zwei Bytes ist das Simple IO Interface des IOW24.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by Christoph Jung »

Beim IO-Warrior24 muss im ersten byte die Report-ID stehen, im zweiten dann Start/Stop und die Anzahl und im dritten sollte die Adresse des I2C-Slaves stehen. Danach kommen dann die Daten in der Anzahl, die voher angegeben wurden. Aber nicht vergessen den I2C zu aktivieren.
Das ist alles im Datenblatt zum IO-Warrior zu finden. Aber warum wird denn nicht die API genutzt?
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
i2c_user
Posts: 6
Joined: Wed Aug 21, 2013 2:16 pm

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by i2c_user »

Danke für die Antworten!

Kurz zur Historie oder was ich eigentlich erreichen wollte: Ich habe ein Stück Software, welches unter Linux über die normalen I2C-Header (i2c.h, ...) eine Hardware ansteuert.

Für eine Entwicklungsumgebung an einem Notebook, das keinen so einfachen Zugang zum I2C-Bus ermöglicht, habe ich nach einer "I2C-Adapter-Lösung" gesucht.

Die Hoffnung war also, die bestehende Software nicht anpassen oder ggf. nur einen kleinen Zwischenlayer schreiben müssen. Letzteres geht natürlich, doch nur mit erheblichem Aufwand.

Ich habe mittlerweile also verstanden, dass der IOWarrior mehr eine rohe Ansteuerung ermöglicht und weniger das macht, was ich gesucht habe.

Daher: Sorry wegen den möglicherweise etwas ungerichteten Fragen.

Falls Jemand noch einen Tipp hat, gerne auch auch auf andere Hardware-Lösungen, die meinen Anforderungen näher kommt - immer her damit. :)
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by Christoph Jung »

Was genau soll den gemacht werden, bzw. wird denn gesucht? Die genannten Anforderungen sind ehrlich gesagt sehr mager ausgeführt.
Und ohne mehr Infos kann man nicht wirklich helfen.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
i2c_user
Posts: 6
Joined: Wed Aug 21, 2013 2:16 pm

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by i2c_user »

Meines Wissens hängen sich I2C-Geräte in Linux unter /dev/i2c ein, man kann die Linux-Header i2c.h und i2c-dev.h verwenden um die I2C-Geräte anzusprechen.

Für einen Rechner, der keinen einfachen Zugang zum I2C-Bus ermöglicht, suche ich nach einem (USB-)Adapter.

In Bezug auf den IOWarrior I2C hatte ich daher gehofft, dass ich den gleichen Code, den ich auf einem Embedded Board verwende, mit möglichst geringem Aufwand wiederverwenden kann.
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by Christoph Jung »

Und wie werden die I2C-Module aktuell angeschlossen? Auch über einen Adapter oder direkt über ein paar IO-Pins vom Board?
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
i2c_user
Posts: 6
Joined: Wed Aug 21, 2013 2:16 pm

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by i2c_user »

Aktuell wird ein proprietäres I2C-Modul direkt an den Extension Port eines Freescale i.MX6 angebunden.

Die mitgelieferte Software (Source ist vorhanden) läuft unter Linux und benutzt die besagten I2C-Header.

Mit Datenblatt ist dieses hier http://www.codemercs.com/uploads/tx_sbd ... eet_01.pdf gemeint?

Danke!
User avatar
Christoph Jung
Posts: 670
Joined: Sun Oct 08, 2006 3:43 pm
Location: Germany / Berlin
Contact:

Re: I2C Kommunikation via USB Dongle - grundlegende Fragen

Post by Christoph Jung »

Ja das ist das Datenblatt zum IO-Warrior24 und IO-Warrior40.

Ist das so etwas wie ein Raspberry PI?
Denn wenn ja, dann wird man um eine Umstellung der Software nicht rumkommen. Denn ich nehme mal an, dass dieser Port direkt auf dem Freescale-Board sitzt (oder welcher Hersteller auch immer).
Der IO-Warrior wird über den USB angesteuert und mit Daten gefüttert. Da ist dann halt eine neue Software auf Linux-Seite nötig. Allerdings haben wir für Linux eine API, die das Ganze vereinfacht.
Abteilung: Softwareentwicklung
Folge uns auf Twitter
Follow us on twitter
Post Reply