Es handelt sich dabei um einen Logic Analyzer, also ein Werkzeug mit dem man sich den Signalverlauf auf mehreren digitalen Leitungen ansehen kann. Solche Geräte sind normalerweise sehr teuer, und selbst für ein gebrauchtes Stück Hardware legt man noch mehrere hundert Euro hin. Es gibt deshalb eine ganze Reihe von Ansätzen, sowas als Bastelprojekt zu bauen. Unter anderem kann man auch den oben erwähnten Bus Pirate dazu benutzen, auch für den USBprog den ich hier habe gibt es eine passende Firmware. Der Nachteil an diesen Dingern ist aber, dass sie langsam sind: die gelesenen Signale müssen verarbeitet und weitergeleitet werden, damit ist der kleine Mikrocontroller auf denen die beiden Lösungen basieren schwer überfordert.
Ausgefeiltere Ansätze — und dazu zähle ich den Open Bench Sniffer — basieren auf einem FPGA. Das ist etwas komplexer, aber der ist in der Lage die Daten schnell genug aufzunehmen und zwischenzuspeichern. Das Ding arbeitet mit bis zu 200MHz, und das bei bis zu 32 Kanälen. Mehr als genug also für Hobbyanwendungen.
In einem freundlichen Mailwechsel nach dem Kauf des Bus Pirate habe ich dem Betreiber von eHaJo gegenüber erwähnt dass ich auch Interesse an diesem Gerät habe, und am Dienstag hat er mich darüber informiert dass er ein paar importiert hat. Mittwoch habe ich bestellt, am Freitag war das Päckchen da. Gekauft habe ich die Platine und zwei Kabelsätze, so bin ich für Messungen auf bis zu 16 Kanälen gewappnet. Zusammen also 55 Euro plus Versand. Wirklich günstig für den Gegenwert finde ich.Da ich für diese Lösung im Moment eigentlich kein passendes Problem habe, ich das aber auf jeden Fall schon mal ausprobieren wollte, musste meine Binäruhr nochmal zeigen was in ihr steckt. Die LEDs werden auf dem Ding von einem SAA1064 angesteuert, der Controller kommuniziert damit per I2C-Protokoll. Es gibt also eine Clock- und eine Daten-Leitung. Mit den Klemmen habe ich also den Sniffer an die beiden Pins angeschlossen, sowie an Masse. Dann die passende Software gestartet, und los geht’s.
In der Oberfläche kann man schnell klicken was mitgeschrieben werden soll: wie viele Kanäle, bei welchem Zustand die Messung getriggert werden soll, wie viele Messpunkte in welchem Abstand genommen werden sollen und vieles mehr. Dabei sind offenbar auch komplexe Trigger möglich, im Falle von I2C reicht es die Messung zu starten wenn beide Kanäle auf 0 gehen. Wenn die Parameter richtig gesetzt sind ist es sehr simpel die Daten mitzuschreiben: auf Klick schaltet das Programm die Hardware scharf, und sobald der geforderte Trigger auf den Leitungen zu sehen ist wird gemessen. Die Messwerte sind dann als Diagramm zu sehen. Darin kann man zoomen, scrollen und beispielsweise Abstände zwischen Signalen messen.Das wirklich coole kommt dann: wir haben I2C-Daten mitgeschrieben. Das Programm verfügt über ein Tool mit dem diese Daten direkt in mehr oder weniger lesbare Daten decodiert werden können. Man erhält also detaillierte Informationen darüber wann welches Byte über die Leitung gegangen ist. Die erhaltenen Daten können auf verschiedene Arten zur weiteren Analyse exportiert werden, unter anderem als schicke HTML-Tabelle.
In diesem Fall wurden übrigens alle vier LED-Zeilen der Uhr neu befeuert, man kann mit etwas gutem Willen also tatsächlich der Tabelle entnehmen wann wir die Messung vorgenommen haben. Mit Funkuhr-Genauigkeit. Und es ist nicht viel schwieriger abzulesen als die Uhr an sich. Hint: wir sehen die Uhrzeit, BCD-kodiert und vertikal dargestellt. Wer mir als erster die Zeit in die Kommentare schreibt wird von mir anerkennend als Geek tituliert…
Mein Fazit: das Ding ist sein Geld in jedem Fall wert, und ich kann mich an mehrere Situationen erinnern bei denen mir ein solches Werkzeug echt weitergeholfen hätte. Ich kriege nichts dafür das zu schreiben, aber auf jeden Fall gebe ich eine Kaufempfehlung für jeden ambitionierten Mikrocontroller-Bastler!
ich werde das wohl für die arbeit bestellen. Um sich ein paar Bussignale mit Dekodierung anzuschauen, reichts definitiv.
Die Uhrzeit war mindestens 22:26 und 8 Sekunden und höchstens 23:37 und 19 Sekunden.
Mindestens, weil eine I2C Nachricht noch fehlen müsste, richtig? Die für die vierte Zeile.
@Robert: Respekt fuer den Versuch. Aber die Zeilen sind schon vollstaendig. In der verlinkten Tabelle, nicht im Screenshot.
Habe die Tabelle übersehen, danke.
22:37:18
Geek!