Aus RN-Wissen.de
Wechseln zu: Navigation, Suche


Bezugsquelle

Von ELV gibt es ein kostengünstiges USB - I2C Interface

Produktbeschreibung

Mit dem USB-I2C-Interface kann von einem PC aus via USB mit einfachsten Befehlen direkt auf die am I2C-Bus angeschlossenen Geräte oder Bausteine zugegriffen werden.

Durch die integrierte Makrofunktion können Anweisungsfolgen gespeichert werden, die anschließend selbstständig ablaufen. Dadurch kann das Interface z. B. mit nur einem zusätzlichen IC als Datenlogger für analoge/digitale Signale (PCF8591/8574), Temperaturen (LM75) usw. verwendet werden. Durch eine Reihe flexibler Befehle können bis zu 128 Geräte angesprochen/gesteuert werden.

Dies kann im einfachsten Fall über ein normales Terminalprogramm, aber auch aus einer eigenen Anwendung heraus erfolgen. Alle Algorithmen und Befehle sind in der Dokumentation ausführlich inkl. Anwendungsbeispielen beschrieben.


Es gibt zwei Versionen:

  • 1) fertig aufgebaut 34,95€
  • 2) zum selber löten 24,95€

Im Preis unterscheiden sich die beiden Version um 10€ und es stellt sich die Frage ob es sich lohnt. Getestet wurde die Variante zum selbst aufbauen. Nach dem Auspacken stellt sich heraus: es müssen lediglich 3 Stecker, 1 LED und 1 Kondensator eingelötet werden. Arbeitsaufwand weniger als 10 Minuten und nur wer wirklich keinen Lötkolben hat oder irgendwie darauf zugreifen kann, sollte die 10€ mehr investieren.


Was wird geliefert?

Übersicht der mitgelieferten Teile
  • 1 Platine
  • 1 Gehäuse + Schrauben
  • 3 Stecker
  • 1 LED
  • 1 Kondensator
  • 3 Anschlusskabel mit einseitig Stecker
  • 1 USB - USB-B Kabel

Positiv: Das USB Kabel ist sehr lang, was heute nicht mehr selbstverständlich ist.



Inbetriebnahme

Es empfiehlt sich das Update zu installieren, im Moment v1.8. Gibt man ? in Hyperterminal ein bekommt man folgende Rückmeldung:

  • ELV USB-I2C-Interface v1.8 (Cal:52)
  • Last Adress:0x00
  • Baudrate:115200 bit/s
  • I2C-Clock:99632 Hz
  • Y00
  • Y10
  • Y20
  • Y31
  • Y40
  • Y50
  • Y60
  • Y70

Wie man sehen kann wurde der Wert im Register Y3 von 0 auf 1 verändert. Damit bekommt man Ack oder Nack vom Controller am PC angezeigt, was für debuging sehr hilfreich ist.

Nach dem löten, muss von der ELV Seite ein passender Windows / Mac / Linux Treiber geladen werden. Alle Betriebsysteme werden unterstüzt. Ebenfalls positiv! Wird das Device über USB angeschlossen, findet Windows (nur damit wurde es getestet) die neue Hardware automatisch und verknüpft sie mit den Treibern. In den Hardware Einstellungen wird der COMx Port auf folgende Werte eingestellt:

- 115.200 bit/s
- 8 Datenbits
- 1 Stoppbit
- kein Parität
- keine Flusssteuerung

Mit dem praktischen, kostenlosen Programm HTerm kann die Kommunikation zwischen PC und USB-I2C Device hergestellt werden. Auch hier werden die oben genannten Werte eingetragen.

Einstellungen für HTerm und Befehle

Schreiben an einen i2c Baustein z.B. ein Display

Die Befehle können über die Eingabeleiste an das Device geschickt werden. Im Test war ein i2c fähiges Display angeschlossen. Bitte beachten, das Interface arbeitet mit einem 5V Pegel. Für Bausteine die nur einen 3,3V Pegel vertragen, muss die Spannung der Signalleitungen entsprechend angepasst werden.

Erklärung für den ersten Befehle (steht auch in der Anleitung), wobei zu unterscheiden ist ob es sich um einen Device spezifischen Befehl handelt, oder um einen Steuerbefehl für das Display:

S28 05 W 01 0D P

Erklärung:

  • S - Start
  • 28 - Adresse des Displays als Hexzahl
  • 05 - Steuerbefehl
  • W - Schreiben (lesen wäre R)
  • 01 - Steuerbefehl Display
  • 0D - Courser blinken
  • p - Stopp

Noch ein weiteres Beispiel um die Struktur der Befehlseingabe zu verdeutlichen:

S28 05 W 48 65 6C 6C 6F P

Erklärung:

  • S - Start
  • 28 - Adresse des Displays als Hexzahl
  • 05 - Steuerbefehl
  • W - Schreiben (lesen wäre R)
  • 00 - Display schreiben
  • 48 - "H"
  • 65 - "a"
  • 6C - "l"
  • 6C - "l"
  • 6F - "o"
  • p - Stopp

(Die spezifischen Befehle für das Bauteil sind im entsprechenden Datenblatt zu finden, hier eben die Befehle für das Display) Wer sich ein entsprechendes Textfile schreibt, kann ganze Befehlsketten an ein beliebiges Device übertragen.

So sieht das Ergebnis der 3 Befehle auf dem Display aus:

Ergebnis USB-i2c intervace .jpg

Lesen am Beispiel von einem SRF02 US-Sensor

In die andere Richtung geht es natürlich auch. Sensoren werden in der Regel ausgelesen, hier ein einen SRF02 (Standard US-Sensor mit i2c Interface). Das ganze erfolgt in zwei Schritten.

1) Messen

  • S - Start
  • E0 - Adresse des SRF als Hexzahl
  • 00 - Register
  • 51 - Befehl für messen in cm
  • p - Stopp

2) Auslesen

  • S - Start
  • E1 - Adresse des SRF als Hexzahl +1 für lesen
  • 03 - Anzahl der Register die gelesen werden sollen
  • p - Stopp

Die Ausgabe sieht dann wie folgt aus:

  • KKK 05 01 58
  • KKK - Bestätigung für Messen
  • 05 Register 1
  • 01 Register 2
  • 58 Register 3

Das Hindernis ist also 158xh cm oder, für alle die lieber in Dezimal lesen, 344cm vom Sensor entfernt. Beachten: Der Sensor ist ein wenig träge also nicht wundern, wenn bei schnellen Messungen mehrmals der gleiche Wert auftaucht.

FAZIT

Praktisches, kleines Device um schnell ein paar I2C Bausteine direkt über den PC anzusteuern. Gerade für alle die normalerweise dem µC diese Aufgabe überlassen, mit seinen i2c slaves zu sprechen, kann mit dem Device getestet werden ob der Baustein überhaupt funktioniert.