K (Benutzer Diskussion:HannoHupmann wurde nach Elektronik verschoben) |
|||
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | == | + | == Bezugsquelle == |
Von ELV gibt es ein kostengünstiges USB - [[I2C]] Interface | Von ELV gibt es ein kostengünstiges USB - [[I2C]] Interface | ||
Zeile 18: | Zeile 18: | ||
*2) zum selber löten 24,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. | + | 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. | 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. | Arbeitsaufwand weniger als 10 Minuten und nur wer wirklich keinen Lötkolben hat oder irgendwie darauf zugreifen kann, sollte die 10€ mehr investieren. | ||
Zeile 40: | Zeile 40: | ||
== Inbetriebnahme == | == 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 | ||
− | Nach dem löten, muss von der ELV Seite ein passender Windows / Mac / Linux Treiber geladen werden. Alle Betriebsysteme werden | + | 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. | 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 | + | In den Hardware Einstellungen wird der COMx Port auf folgende Werte eingestellt: |
::- 115.200 bit/s | ::- 115.200 bit/s | ||
Zeile 56: | Zeile 71: | ||
[[Bild:HTerm-USB-i2c_intervace_.jpg|thumb|Einstellungen für HTerm und Befehle]] | [[Bild:HTerm-USB-i2c_intervace_.jpg|thumb|Einstellungen für HTerm und Befehle]] | ||
− | Die Befehle können über die Eingabeleiste an das Device geschickt werden. Im Test war ein i2c fähiges Display angeschlossen. | + | == 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 | S28 05 W 01 0D P | ||
Zeile 88: | Zeile 106: | ||
*'''p''' - Stopp | *'''p''' - Stopp | ||
− | (Die | + | (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. | + | Wer sich ein entsprechendes Textfile schreibt, kann ganze Befehlsketten an ein beliebiges Device übertragen. |
− | So sieht das | + | So sieht das Ergebnis der 3 Befehle auf dem Display aus: |
[[Bild:Ergebnis_USB-i2c_intervace_.jpg]] | [[Bild: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 == | == FAZIT == |
Aktuelle Version vom 5. März 2014, 23:26 Uhr
Inhaltsverzeichnis
Bezugsquelle
Von ELV gibt es ein kostengünstiges USB - I2C Interface
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?
- 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.
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:
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.