Die Triggerfunktionen, die Teil des LeCroy I2CBus TD-Pakets sind, ermöglichen es Ihnen, schnell Adress- und Datenmuster zu isolieren, die im Busverkehr innerhalb Ihres Designs vorhanden sind. Im Fall von Unteradressierungsschemata ist diese Fähigkeit sehr nützlich, um bestimmte Adressräume zu identifizieren, die intern von dem Gerät verwendet werden.

„Unteradressierung“ ist ein Begriff, der verwendet wird, um sich auf die Vorstellung zu beziehen, dass I2C-basierte Geräte häufig interne Adressen verwenden, die unabhängig von der Geräteadresse sind, wie in der I2C-Spezifikation definiert. Um dieses interne Adressierungsschema zu unterstützen, definiert der Gerätehersteller ein Kommunikationsprotokoll, das Bytes innerhalb des Datenmusters verwendet, um diese Adressen zu definieren. Dies ist besonders üblich bei Geräten wie EEPROMs, die sehr stark auf Unteradressierung angewiesen sind.

Ein Beispiel hierfür ist der 24LC02 I2C EEPROM. Dieses Gerät verwendet ein einzelnes Datenbyte (das erste Datenbyte, das während Schreibrahmen gesendet wird), um einen internen Adresszeiger für nachfolgende Speicherzugriffe zu setzen (siehe Abbildung 1). Indem Sie Triggerbedingungen konstruieren, die sich auf dieses Datenbyte konzentrieren, können Sie das I2CBus TD-Paket verwenden, um zu erkennen, wann auf bestimmte Teile des Speichers zugegriffen wird, wodurch Sie einen besseren Einblick in Ihr Speichersubsystem erhalten.

Abbildung 1:

Ein Diagramm, wie ein I2C-Busmaster richtet die Subadresse für einen 24LC02 I ein2C-basiertes EEPROM

Diese Trigger können sehr einfach mit dem I2CBus TD-Paket eingerichtet werden. Innerhalb des I2C-Trigger-Menü können entweder die ADDR+DATA- oder EEPROM-Modus-Trigger verwendet werden, um diese Bedingungen einzustellen. Der Hauptunterschied zwischen den Triggern im ADDR+DATA- und im EEPROM-Modus besteht darin, dass der EEPROM-Modus darauf ausgerichtet ist, Frames mit großen Datenmengen nach bestimmten Mustern zu durchsuchen. Ein wichtiger zusätzlicher Vorteil des Triggers im EEPROM-Modus ist die Fähigkeit, das Triggerdatenmuster so zu beschränken, dass es bei einem bestimmten Byte beginnt. Dies ist für unsere Zwecke nützlich, da wir nur das erste Datenbyte für die Unteradresse überprüfen möchten, und dies tun können, indem wir das Startbyte auf 0 setzen.

Ein Beispiel in Abbildung 2 auf der nächsten Seite zeigt den EEPROM-Triggermodus.

Abbildung 2:

Triggerung auf eine Subadresse von 0x20. Beachten Sie, dass die Datenbytes nach der Unteradresse an inkrementelle Stellen innerhalb des EEPROMs geschrieben werden, beginnend bei Adresse 0x20.

Die ADDR ist auf „1010xxx“ eingestellt, was die vom 24LC02 verwendete Geräteadresse ist. Die Richtung ist auf Schreiben eingestellt. Dies sollte der Fall sein, unabhängig davon, ob Sie nach EEPROM-Lesevorgängen oder -Schreibvorgängen suchen, da die Unteradresse immer vom Busmaster in das EEPROM-Gerät geschrieben wird. In diesem Beispiel ist das DATA-Muster auf 0x20 gesetzt, was bedeutet, dass jeder Schreib- oder Lesevorgang in die EEPROM-Subadresse 0x20 dazu führt, dass die Triggerbedingung erfüllt wird. Mit der I2CBus TD-Decodierungsfunktion können Sie die Werte, die von dieser Adresse geschrieben oder gelesen werden, schnell im Binär- oder Hexadezimalformat überprüfen.

In einigen Fällen kann es sinnvoller sein, auf eine Teilmenge von Speicheradressen zu triggern und nach Lese- oder Schreibvorgängen an beliebigen Adressen innerhalb des Blocks zu suchen. In Fällen, in denen der Block auf obere Adressbits ausgerichtet ist, kann ein einfacher DATA = Trigger mit Bitmasken verwendet werden, um den Block zu identifizieren. Um beispielsweise auf eine Subadresse zwischen 0x48 und 0x4F zu triggern, verwenden Sie ein DATA-Muster von „01001xxx“.

In Fällen, in denen der Block jedoch nicht genau auf die oberen Adressbits ausgerichtet ist, können die bedingten Datentriggeroptionen Ihnen helfen, den fraglichen Block zu identifizieren. Um beispielsweise auf eine Unteradresse zwischen 0x16 und 0x1D zu triggern, verwenden Sie einen INRANGE-Trigger mit 0x16 und 0x1D als Unter- und Obergrenze, wie in Abbildung 3 dargestellt.

Abbildung 3:

Triggerung auf eine Subadresse im Bereich 0x16 bis 0x1D. Beachten Sie den Busneustart und das Lesetelegramm nach dem Trigger – die folgenden Datenbytes werden aus dem EEPROM ab Adresse 0x19 gelesen.

Durch die Nutzung der benutzerfreundlichen und dennoch leistungsstarken Datentriggerungsoptionen von I2CBus TD können Sie die Unteradressen, die Ihnen wichtig sind, schnell identifizieren.