Sniffer Funktion / I2C-Datenlogger

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();

 

USB-Modem_Listen_1

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.

 

 

Speichere in deinen Favoriten diesen permalink.

7 Kommentare

  1. Michael Schoppe

    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

      • Michael Schoppe

        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

  2. 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.

  3. Hallo Herr Schrills,

    ich sende Ihnen das neue Terminalprogramm und die Beschreibung der neuen Befehle per Mail.

  4. Norbert Schrills

    Ich benötige die Sniffer-Software für das I2C-USB-Modem. Auf welchem Wege kann ich diese erhalten ?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert