Die Sniffer-Funktion im I2C-USB Interface ist jetzt vorhanden und kann mit der Firmwareversion 1.2 genutzt werden. Damit ist es jetzt möglich den Datenverkehr auf dem I2C-Bus mit zu loggen.
Es ist möglich einen Filter auf bestimmte Adressen zu setzten oder den kompletten Datenverkehr mitzulesen.
Dazu wurde unser Terminal-Programm erweitert. Die neue Version 2.2 steht im I2C-Download-Bereich zur Verfügung.
Terminalprogramm i2c-usb-modem_terminalprogramm.zip (139 kB)
Beschreibung i2c-usb-modem_terminalprogramm.pdf (81 kB)
Hier ein kurzes Beispiel welches den Datenverkehr zwischen ARDUINO und der I2C-LCD-Anzeige auf Adresse 60hex zeigt.
Um die I2C-Daten zu belauschen entpacken Sie die ZIP-Datei und starten Sie das Terminalprogramm durch doppelklick auf I2C_USB_Terminal_V22.exe
Schreiben Sie dann folgende Zeilen in das Terminalfenster
- SET PULLUP AUS
Der Befehl schaltet die Pullup-Wiederstände im I2C-USB-Modem aus. - SET FILTER 0060
Setzt den internen Filter auf die I2C-Adresse der LCD-Anzeige.
Die Adresse muss als HEX-Wert mit vier Stellen eingegeben werden - LISTEN 00
Startet das Belauschen des I2C-Datenverkehrs am Bus und trägt alle Bytes zum Slave in das Terminalfenster ein - Button LISTEN-STOP
Zum Beenden oben neben dem Modem-Status Feld den Button LISTEN -STOP drücken
Folgender Code wird vom Arduino gesendet:
Wire.beginTransmission(I2C_LCD_ADDR); // Start Übertragung Wire.write(92); // Backslash-Zeichen Wire.write("CLR"); // Kommando Wire.endTransmission(); // Ende delay(15); Wire.beginTransmission(I2C_LCD_ADDR); // Start Übertragung Wire.write(" Hallo LCD-Display"); // Text 1. Zeile Wire.endTransmission();
Im Terminal kann man gut sehen wie die Daten laufen. Jeder Befehl startet mit der I2C-Slaveadresse. Im aktuellen Fall 60hex
Die Daten im blauen Kasten ist der Befehl „\CLR“
Die Daten im grünen Kasten ist die Ausgabe des Textes “ Hallo LCD-Display “
Danach kann man erkennen, dass der Arduino noch einmal die Slave-Adresse 60hex schickt.
Hallo Herr Horter,
ich habe mal eine Frage zum I2C-USB-Modem (Sniffer-Modus).
Ich würde gerne auf dem I2C-Bus alle I2C-Telegramme loggen und diese mit einem Timestamp versehen. I2C-Bus Takt ca. 20 kHz. Ist dies prinzipiell möglich und gibt es dafür auch schon eine fertige Software, die die Telegramme in einer Liste mit Timestamp darstellt?
Mit freundlichem Gruß
Michael Schoppe
–
Hallo Herr Schoppe,
die Sniffer-Funktion funktioniert mit dem Terminal-Programm leider nur ohne Zeitstempel.
Sie können den Sniffer mit oder ohne Filter starten. Wird eine Kommunikation erkannt überträgt das Modem die geloggten Daten direkt auf die USB-Schnittstelle.
Sie müssten sich ein eigenes Terminalprogramm programmieren, der die Zeitstempel mit einträgt.
Beste Grüße aus Bayreuth
JH
Hallo Herr Horter,
gibt es das I2C-USB-Modem nur als Bausatz oder gibt es auch fertige Module mit Gehäuse?
Mit freundlichem Gruß
Michael Schoppe
Hallo Herr Horter,
ich würde gerne die Sniffer-Funktion einsetzen und bitte um Zusendung der entsprechenden Software für das I2C-USB-Modem. Danke im voraus.
Gruß, H. Post
Die Beschreibung der neuen Befehle füge ich in die aktuelle Doku ein und liegt in kürze zum Download bereit.
Das gleiche gilt für das neue Terminalprogramm.
Hallo Herr Schrills,
ich sende Ihnen das neue Terminalprogramm und die Beschreibung der neuen Befehle per Mail.
Ich benötige die Sniffer-Software für das I2C-USB-Modem. Auf welchem Wege kann ich diese erhalten ?