Herunterladen Inhalt Inhalt Diese Seite drucken
Inhaltsverzeichnis

Werbung

USB-I2C-Interface
Dokumentation und
Anwendungsbeispiele
Stand:
Mai 2012
ELV-Bestell-Nr.:
84123
Firmware-Version:
1.7
ELV Elektronik AG • Postfach 1000 • D-26787 Leer
Telefon 04 91/600 888 • Telefax 04 91/6008-244
1

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für elv USB-I2C

  • Seite 1 USB-I2C-Interface Dokumentation und Anwendungsbeispiele Stand: Mai 2012 ELV-Bestell-Nr.: 84123 Firmware-Version: ELV Elektronik AG • Postfach 1000 • D-26787 Leer Telefon 04 91/600 888 • Telefax 04 91/6008-244...
  • Seite 2: Inhaltsverzeichnis

    Anschluss des USB-I2C-Interface am PC............6 2.3. Ändern und Abfragen der COM-Port-Nummer..........7 Programme zur Kommunikation (Terminalprogramm)......... 8 3.1. Bedienung des USB-I2C-Interface über „HTerm“ ..........9 Befehle und Einstellungen des USB-I2C-Interface..........10 4.1. Befehle für die I²C-Kommunikation ..............11 4.1.1.
  • Seite 3: Einleitung

    Einleitung Diese Dokumentation beinhaltet zusätzliche Informationen zur Bedienungs-/Bauanleitung des USB-I2C-Interfaces. Neben einer aktualisierten Auflistung aller Steuer- und Konfigura- tionsbefehle, werden diese detailliert beschrieben und ihre Verwendung anhand vieler ein- facher Beispiele demonstriert. Zusätzliche Hinweise weisen auf Besonderheiten und häufige Fehlerquellen hin, deren Beachtung eine lange Fehlersuche ersparen kann.
  • Seite 4: Installation Des Usb-I2C-Interface

    Passwort. Wenn man dieses eingibt, lässt sich der Treiber komplett installieren. Achtung: Nicht das USB-I2C-Interface vorher anschließen! Vor der Installation des Treibers ist unbedingt das USB-I2C-Interface vom Computer zu trennen, falls es bereits angeschlossen worden ist! Für die Installation des Virtual-COM-Port-Treibers unter Windows sind die folgenden Schritte durchzuführen: a) Downloaden und entpacken der Installationsdatei: „CP210x_VCP_Win2K_XP_S2K3.zip“...
  • Seite 5 d) Die Lizenzbedingung lesen, ihr zustimmen („I accept...“) und auf „Next“ klicken: e) Den Speicherort für die Installationsdateien auf der Festplatte bestimmen. Der vorgeschlagene Pfad lautet "C:\SiLabs\MCU". Wer möchte, kann auch einen anderen Pfad wählen. Wieder auf „Next“ und danach auf „Install“ klicken. Jetzt werden die Installationsdateien an den zu- vor bestimmten Ort auf der Festplatte kopiert.
  • Seite 6: Anschluss Des Usb-I2C-Interface Am Pc

    Weile und wird im Erfolgsfall mit der folgenden Meldung bestätigt. Damit ist die Installation des USB-I2C-Interface abgeschlossen. Sollte sich nach dem Anschließen des USB-I2C-Interface der „Assistent für das Suchen neuer Hard- ware“ öffnen und nach einer Software fragen, obwohl zuvor der SiLabs-VCP-Treiber installiert worden ist, so sollte man die Option „Software automatisch installieren (empfohlen)“...
  • Seite 7: Ändern Und Abfragen Der Com-Port-Nummer

    Geräterückseite als 9-polige SUB-D-Stecker herausgeführt. Bei vielen PCs ist daher erst der COM-Port 3 frei verfügbar und kann so dem USB-I2C-Interface zugewiesen werden. Verfügt der PC allerdings über einen Bluetooth-Adapter, so sind meist weitere COM-Ports an diesen vergeben.
  • Seite 8: Programme Zur Kommunikation (Terminalprogramm)

    Programme zur Kommunikation (Terminalprogramm) Für die Kommunikation mit dem USB-I2C-Interface können beliebige Terminal-Programme oder eigene Soft- ware-Entwicklungen verwendet werden, da die Kommunikation über einen Standard-COM-Port geschieht. Beispielsweise kann das sehr gute Terminalprogramme „HTerm“ verwendet werden. Das von Tobias Ham- mer entwickelte Programm ist unter dem folgenden Link kostenfrei (auch für kommerzielle Nutzung) als Download erhältlich:...
  • Seite 9: Bedienung Des Usb-I2C-Interface Über „Hterm

    3.1. Bedienung des USB-I2C-Interface über „HTerm“ Die folgende Beschreibung geht davon aus, dass sich die Einstellungen des USB-I2C-Interface noch im Aus- lieferungszustand befinden – dies gilt insbesondere für die eingestellte Baudrate. Die Einstellungen finden sich auch im folgenden Bildschirmprint wieder und können so direkt übernommen werden.
  • Seite 10: Befehle Und Einstellungen Des Usb-I2C-Interface

    Aufgaben und Datenformate möglich werden. Hierfür finden sich im Folgenden auch einige Beispiele. In der Tabelle 3 finden sich zum einen die Befehle, durch die das USB-I2C-Interface komplexe Makros aus- führen kann und zum anderen finden sich hier alle Konfigurations-Parameter mit denen das USB-I2C-...
  • Seite 11: Befehle Für Die I²C-Kommunikation

    Nicht in der Tabelle 3 aufgelistet: Wird der Befehl Z gefolgt von FF (also: ZFF) eingegeben, wird das USB-I2C-Interface in den Firmware-Update-Zustand versetzt (siehe Kapitel 4.2.4.). Neu ab Firmware v1.6 ist der Parameter Y71, der zum Umschalten des Ausgabeformats dient.
  • Seite 12: S" - Start-Bedingung

    Fall folgt der Geräte-Adresse jedoch die Anzahl der vom Slave zu lesenden Datenbytes. Die ausge- lesenen Datenbytes werden vom USB-I2C-Interface direkt zum PC weitergeleitet. Die Bytes werden dabei in Hexadezimalschreibweise in Form von 2 ASCII-Zeichen ausgegeben (z. B. wird der Dezimalwert 254 als FE ausgegeben).
  • Seite 13: P" - Stopp-Bedingung

    Die mit der Start-Bedingung S zu Beginn einmal übertragene Geräte-Adresse unterscheidet sich zwar je nachdem ob Daten geschrieben (z.B. S40) oder gelesen (z.B. S41) werden sollen, was aber für die nachfol- genden Schreib- (W) und Lese-Befehle (R) egal ist, da das USB-I2C-Interface bei diesen Befehlen die Gerä- te-Adresse automatisch richtig verwendet.
  • Seite 14: R" - Lese Daten Vom Zuletzt Adressierten Slave

    Anweisungen möglichst unmittelbar nacheinander ausgeführt werden sollen. Hinweis 1: Der Eingangspuffer des USB-I2C-Interface ist 400 Zeichen groß. Werden mehr als 400 Zeichen in den Puffer geschrieben, führt das zu einem Überlauf bei dem Zeichen verloren gehen. Dadurch wäre die Ausfüh-...
  • Seite 15: L" - Warte Mit Ausführung Für Angegebene Zeit

    Puffer-Überlauf (also bei mehr als 400 Zeichen) selbstständig einen Reset aus, bei dem der Eingangspuffer komplett geleert wird! Da jede Anweisung, die das USB-I2C-Interface ausführt, automatisch aus dem Puffer gelöscht wird, füllt sich der Puffer nur, wenn die Anweisungen schneller eingegeben werden, als das Interface sie abarbeiten kann oder wenn die Ausführung zuvor mit dem Doppelpunkt-Befehl unterbrochen wurde.
  • Seite 16: N" - Master Antwortet Nack Nach Letztem Read

    Der N-Befehl wird nur für sehr spezielle Anwendungen benötigt. Dieser Befehl kann VOR eine Lese- Anweisung geschrieben werden und lässt dadurch den Master (also das USB-I2C-Interface) beim letzten gelesenen Byte mit NACK (Not Acknowledge) antworten, anstatt mit ACK (Acknowledge), wie sonst üblich.
  • Seite 17: Befehle Zur Konfiguration Des Usb-I2C-Interface

    Geschwindigkeit – übernommen wird diese Geschwindigkeit aber erst nach einem Reset (Befehl: Z4B). Zeile 4: Zeigt die Taktrate mit der das USB-I2C-Interface die Datenübertragung auf dem I²C-Bus taktet. Die angezeigten Werte können von den Eingabewerten abweichen, da nur bestimmte Taktraten in vorgegebenen Schritten möglich sind.
  • Seite 18: T" - I²C-Bustakt Einstellen

    4.4.4.) eingegeben, abgesendet und danach erst das Fragezeichen verwendet werden. 4.2.2. „T“ – I²C-Bustakt einstellen Das USB-I2C-Interface erzeugt als Master für die Datenübertragung den Takt auf dem I²C-Bus. Die entspre- chende Geschwindigkeit kann je nach angeschlossenem Slave und Anforderung variabel zwischen 226 Hz und 409,6 kHz eingestellt werden.
  • Seite 19: X" - Pc-Verbindungsgeschwindigkeit Einstellen

    4.2.3. „X“ – PC-Verbindungsgeschwindigkeit einstellen Damit das USB-I2C-Interface möglichst flexibel mit unterschiedlichen Programmen und Betriebssystem zu- sammenarbeiten kann, nutzt es für die Verbindung zum PC eine serielle Verbindung über einen virtuellen COM-Port. Diese Schnittstelle muss vor einem Verbindungsaufbau entsprechend den Einstellungen vom USB-I2C-Interface konfiguriert werden.
  • Seite 20: Z" - Reset, Auslieferungszustand, Firmware-Update

    Ist ein Makro im USB-I2C-Interface gespeichert, so wird dieses nach jedem Reset automatisch ausgeführt. Das USB-I2C-Interface reagiert in dem Fall kurzzeitig oder dauerhaft nicht mehr auf Befehle. Bevor es neue Befehle empfangen und ausführen kann, muss die Makroausführung erst mit dem Beende-Makro-Befehl („<<“...
  • Seite 21: Y" - Konfigurations-Befehle

    Die Beschreibung, wie bei einem Firmware-Updates vorzugehen ist, liegt jedem Update bei, und ist genau zu befolgen. Sobald das USB-I2C-Interface nach Eingabe des Befehls ZFF in den Update-Modus wechselt (die DATA-LED blinkt), nimmt es keine weiteren Anweisungen mehr entgegen. Möchte man doch kein Update durchführen und den Modus wieder verlassen, muss die USB-Verbindung kurz getrennt werden, indem der...
  • Seite 22 Y50: Achtung: Im Auslieferungszustand wird nach jedem Reset ein im Speicher stehendes Makro automa- tisch ausgeführt. In Falle, dass eines ausgeführt wird, reagiert das USB-I2C-Interface nur noch auf den Be- fehl zum Beenden der Makroausführung (siehe Kapitel 4.4.4.). Diese automatische Makroausführung ist sehr nützlich und stellt eines der wichtigsten Features des USB-I2C-Interface dar.
  • Seite 23: Kommentar-Befehle

    In Anweisungsfolgen können Kommentare eingefügt werden, die das USB-I2C-Interface ignoriert, wenn sie von runden Klammern eingeschlossen werden. Dadurch lassen sich beispielsweise für Schulungszwecke alle Bestandteile einer Anweisungsfolge verständlich beschreiben. Auch wenn man ein Makro ins USB-I2C-Interface speichert, ist es eventuell sinnvoll, einen kurzen Kommen- tar dazu zu schreiben.
  • Seite 24: Punkt In Rückgabe Einfügen

    4.3.4. „ , “ – Komma in Rückgabe einfügen Erhält das USB-I2C-Interface ein Komma, gibt es auch wieder ein Komma zurück. Dies ist praktisch, wenn die Daten so formatiert werden sollen, dass sie beispielsweise mit Excel ausgewertet werden können. Beispiel einer Rückgabe mit kommagetrennten Datenbytes: (zusätzlich wurden hier zuvor die Parameter Y01 und Y41 eingeben, wodurch automatische Zeilenumbrüche...
  • Seite 25: Semikolon In Rückgabe Einfügen

    PC, wenn ein USB-Netzteil oder ein KFZ-Adapter zur Stromversorgung verwendet wird. Der Makrospeicherbereich des USB-I2C-Interface umfasst 256 Zeichen in dem eine lange Anweisungsfolge gespeichert werden kann. Diese führt das USB-I2C-Interface nach dem Start einmal oder immer wieder aus. Da der Makrospeicher in EEPROM-Technik ausgeführt ist, bleibt eine gespeicherte Anweisungsfolge auch über lange Zeiträume ohne Spannungsversorgung erhalten und kann automatisch sofort wieder ausgeführt...
  • Seite 26: U" - Makrospeicherinhalt Zum Pc Ausgeben

    Für die einmalig zu erstellende Ini-Datei, die der Definition der zu loggenden Daten dient, stellen die Autoren der Software sogar einen komfortablen Editor („OpenFormat-Editor“) bereit, mit dem die Konfiguration ein- fach und schnell gelingt. Im Kapitel 4.5.5. findet sich ein Beispiel, wie das USB-I2C-Interface programmiert werden kann, dass es zusammen mit „LogView“ eingesetzt werden kann.
  • Seite 27: V" - Anweisungsfolge In Makrospeicher Schreiben

    Die Makrospeicher-Adresse wird von 00 bis FF (Hexadezimalschreibweise) bzw. von 000 bis 255 (Dezimal- schreibweise) gezählt. Auf einen erfolgreichen Speicherbefehl hin, gibt das USB-I2C-Interface keine Antwort. Versucht man mehr Zeichen in den Speicher zu schreiben, als hineinpassen, so erhält man die Fehlermeldung „Err:MEMORY FULL“...
  • Seite 28: Makro-Ausführung Starten

    0E 01 FF 8A Hinweis: Während das USB-I2C-Interface ein Makro ausführt, reagiert es auf keine neuen Befehle vom PC. Einzige Ausnahme ist der Befehl zum Beenden einer Makroausführung („<“ oder „<<“). Weitere Infos zum Beenden eines Makros finden sich im Kapitel 4.4.4.
  • Seite 29: Praktische Beispiele Mit Verschiedenen I²C-Geräten

    S1 - S8 gedrückt wird. Zu einem Kurzschluss kann es dabei aber aufgrund der Open-Drain-Ausgänge nicht kommen. Die Zustände der 8 Taster lassen sich über den PCF8574 und das angeschlossene USB-I2C-Interface einle- sen und die Leuchtdioden LED1 - LED8 können angesteuert werden.
  • Seite 30 Die Geräte-Adresse des PCF8574 bildet sich folgendermaßen: R/W-Bit Sind die drei Jumper J1 - J3 gesetzt (A2=0, A1=0, A0=0), so hat der Baustein die folgenden Adressen: Lesezugriff (Read): 0x41 Schreibzugriff (Write): 0x40 Viele der Anweisungs-Beispiele in dieser Dokumentation, basieren übrigens auf dieser Beispielsschaltung und können daher direkt ausprobiert werden.
  • Seite 31: Echtzeituhr Mit Dem Ds1307

    Beispiele zum Auslesen der Taster (Read): [Taster1 – Taster8 einmal auslesen] S41 01 P Antwort (kein Taster gedrückt und keine LED leuchtet): [Taster1 – Taster8 zwölfmal nacheinander auslesen] S41 0C P Antwort (nur Taster 1 ist gedrückt): FE FE FE FE FE FE FE FE FE FE FE FE Beispiel zum abwechselnden Setzen der LEDs und Auslesen der Taster (Write &...
  • Seite 32 In der folgenden Tabelle aus dem Datenblatt des DS1307 lassen sich die Register des Bausteins und deren Funktionen ersehen. Beim Schreiben von Zeitangaben bzw. von Konfigurationseinstellungen in den Baustein muss nach der Geräte-Adresse 0xD0 nur das erste Funktionsregister 0x00 adressiert werden. Die Daten werden dann nacheinander zum Baustein gesendet und dieser inkrementiert selbstständig die Adresse des Funktionsregisters.
  • Seite 33: Eeproms Beschreiben/Auslesen (24C01, 24C02

    4.5.3. EEPROMs beschreiben/auslesen (24C01, 24C02...) Das Auslesen und Beschreiben verschiedener EEPROM-Bausteine unterscheidet sich je nach Speicher- größe und -aufteilung. Nach der Geräte-Adresse (Achtung, 24C04/08/16-EEPROMs haben mehrere) wird dem EEPROM die Adresse der auszulesenden bzw. der zu beschreibenden Speicherzelle mitgeteilt. Werden mehrere Datenbytes nacheinander ohne Stopp-Bedingung beschrieben (Page-Write) oder ausgelesen, so inkrementiert das EEPROM innerhalb einer Page die Adressen der Speicherzellen selbstständig.
  • Seite 34 Beispiele zum Beschreiben: [Speicherzelle 0x00 mit 0xAA beschreiben (24C01 und 24C02 mit Geräteadresse A2=A1=A0=0] SA0 00 AA P [Speicherzelle 0x0100 auf 2. Page mit 0xAA beschreiben (24C04 mit Hardware-Adressbit A2=A1=0, 24C08 mit Hardware-Adressbit A2=0 und 24C16 ohne Hardware-Adr.bit, alle EEPROMs mit Geräteadresse: 0xA0] SA2 00 AA P [32 Bytes im Page-Write-Modus schreiben (24C01 und 24C02)] sA0 00 A1 A2 A3 A4 A5 A6 A7 A8 p L0005...
  • Seite 35: Thermometer-Sensor (Ds75, Lm75, Tmp101)

    [Auslesen einer bestimmten Speicherzelle - „Random-Read“ (24C01 und 24C02)] SA0 00 R01 P Antwort (z. B.): [Auslesen einer bestimmten Speicherzelle - „Random-Read“ (24C04, 24C08 und 24C16)] SA0 00 R01 P Antwort (z. B.): [Aktuelle Speicherzelle auslesen - „Current-Address-Read“ (24C01, 24C02, 24C04, 24C08 und 24C16)] SA1 01 P Antwort (z.
  • Seite 36: A/D-Wandler Mit Dem Pcf8591

    Antwort (gemessen: +1,5; +1,0; +0,5; 0,0; -0,5; -1,0...): 01 80 01 00 00 80 00 00 80 80 81 00 4.5.4. A/D-Wandler mit dem PCF8591 In der folgenden Abbildung ist ein Testaufbau mit dem 8-Bit-A/D-D/A-Konverter PCF8591 dargestellt. Die zugehörige Beispielschaltung darunter abgebildet. Der PCF8591 kann, am USB-I²C-Interface angeschlos- sen, zur analogen Datenaufnahme über 4 Kanäle und zur Ausgabe einer analogen Spannung genutzt wer- den.
  • Seite 37: Logview" Als Grafischen Datenlogger Nutzen

    255; 150; 0<cr><lf> Als Beispiel findet sich zusätzlich zu dieser Beschreibung auf der USB-I2C-Produktseite bei www.elv.de ZIP-File mit der Ini-Datei „USB-I2C_PCF8591.ini“, die die hier beschriebene Aufgabe bereits löst. Vor dem Start von LogView muss diese Datei an die folgende Stelle des PCs kopiert werden (natürlich muss LogView zuerst mal installiert werden): C:\Documents and Settings\<USER>\Application Data\LogView\Geraete\OpenFormat...
  • Seite 38: Verklemmung (Deadlock) Auf Dem I²C-Bus

    Slave freigegeben wird. Das System ist nun verklemmt (alle warten auf etwas) und eine weitere Datenüber- tragung ist nicht mehr möglich. Um das zu verhindern, versucht das USB-I2C-Interface eine erkannte Verklemmung (bei der Ausführung der Start-Bedingung) automatisch wieder aufzulösen. Dazu gibt es 8 zusätzliche Takt-Pulse auf die SCL-Leitung, sobald die Stopp-Bedingung nicht mehr ausführbar sein sollte (also wenn die SDA-Leitung vom Slave auf...
  • Seite 39: Verzeichnis Der Korrekturen Seit Februar 2009

    Verzeichnis der Korrekturen seit Februar 2009 Datum Kapitel/FW Änderung 22.01.2010 4.5.3 Korrektur in der Beschreibung der Speicheraufteilung 24C04/08/16 19.01.2011 4.5.5 Erweiterung der Beschreibung des Beispiels mit LogView 04.03.2011 FW 1.7 Mikrocontroller getauscht auf ATmega88PA, ohne Funktionsänderungen 28.03.2011 4.1.1 Korrektur der Adresse in binärer Schreibweise 06.04.2011 4.4.1 Korrektur von Schreib- und Leseadresse...

Inhaltsverzeichnis