Die Macht der Statistik

Wie geht es weiter? Die Signale der niederwertigsten Bits in jeder Pin-Gruppe sollten sich öfter ändern als die höherwertigen. Warum also nicht eine kleine Statistik aufmachen? Ich sortiere die Signale an den Pins nach der Häufigkeit der Änderungen und ordne sie in Vierergruppen an.

Übergänge    Pins
6            E13 F12 J14 K15
18           F10 H13 H15 L14
42           D11 G12 G14 M15
84           C11 F15 J13 N14
173          P15 B14 E15 J11
335 - 357    K12 B15 M13 D14
358 - 368    B10 R15 T14 C13
406 - 427    L12 R14 C15 B12

Bei einer Sinuskurve, die sich dreimal wiederholt, wird sich das höchstwertige Bit zweimal pro Wiederholung ändern, damit gilt 2 * 3 = 6 Änderungen, das entspricht dem ersten Eintrag. Die anderen Einträge sind Vielfache von 3. Erst ab 173 wird das Schema durchbrochen, das liegt um eins unter 58 * 3 = 174. Wahrscheinlich ist das Signal nicht ganz mittig über den gesamten Bereich. Die Anzahl der Änderungen für die niederwertigsten drei Bits variiert deutlich, eventuell sind sie durcheinander und einige Signaländerungen sind wahrscheinlich einfach Rauschen.

Ordnen wir die Pins entsprechend der obigen Tabelle und schauen erneut darauf:

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Eine echte Sinuskurve (Bild: Christer Weinigel)

Das sieht jetzt definitiv wie eine abgeschnittene Sinuskurve aus. Es gibt immer noch viel Rauschen, aber langsam wird es.

Weiter geht es. Da alle Pin-Gruppen ähnliche Daten zeigen, muss der ADC mit allen vier Gruppen Daten von Kanal 1 liefern. Also starte ich das Oszilloskop neu und schalte beide Kanäle an, beide werden mit der gleichen Signalquelle gespeist. Jetzt sollten je zwei Gruppen die Daten für Kanal 1 und Kanal 2 enthalten. Ich schalte auf Linux um und führe eine neue Erfassung durch.

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)

Die Pins für beide Kanäle wirken teilweise vermischt, also probiere ich wieder den Trick mit dem abgeschnittenen Signal und vertausche die Pins so lange, bis die ersten beiden Gruppen die Daten von Kanal 1 enthalten.

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Noch etwas Chaos (Bild: Christer Weinigel)

Das sieht wieder besser aus. Die rote und die grüne Gruppe enthalten die Daten von Kanal 1, die blaue und magentafarbene Gruppe die von Kanal 2. Offensichtlich sind die grüne und blaue Gruppe immer noch vermischt. Zwischen der 80. und der 230. Stichprobe ist der Wert der blauen Stichproben um 128 zu hoch und der der grünen 128 zu niedrig. Ich tausche die Pins, die den Wert 128 repräsentierten, zwischen den Gruppen aus.

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)

Langsam sieht es gut aus. Es gibt noch einige Artefakte bei den drei niederwertigsten Bits, aber das ist nicht so schlimm. Ich spiele einfach ein wenig weiter herum, bis der Graph gut aussieht. Schließlich ergibt sich der finale Graph:

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)

Wenn ich die Dämpfung erhöhe, verändert sich der Graph entsprechend.

  • Legende der FPGA-Pins (Bild: Christer Weinigel)
  • Die FPGA-Pins (Bild: Christer Weinigel)
  • Pins des SoC-Bus (Bild: Christer Weinigel)
  • Pins zum RAM (Bild: Christer Weinigel)
  • Pins zum ADC (Bild: Christer Weinigel)
  • Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)
  • Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)
  • Noch keine Sinuskurve (Bild: Christer Weinigel)
  • Mit viel Phantasie eine Sinuskurve (Bild: Christer Weinigel)
  • Eine echte Sinuskurve (Bild: Christer Weinigel)
  • Das gleiche Spiel mit zwei Kanälen (Bild: Christer Weinigel)
  • Noch etwas Chaos (Bild: Christer Weinigel)
  • Wenigstens keine Ausreißer mehr (Bild: Christer Weinigel)
  • Beide Kanäle sind klar erkennbar. (Bild: Christer Weinigel)
  • Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)
Beide Kanäle mit größer Dämpfung (Bild: Christer Weinigel)

Ich habe es geschafft. Es kann sein, dass die Ordnung der Gruppen noch nicht ganz korrekt ist. Die 1. Gruppe von Kanal 1 könnte tatsächlich auch die 2. Gruppe von Kanal 1 sein. Ich müsste mit höheren Signalfrequenzen experimentieren, um herauszufinden, ob die Abfolge stimmt oder nicht.

Aber mein Ziel habe ich erreicht. Ich kann das Oszilloskop mit meiner eigenen Software nutzen, um Signale zu analysieren.

Weiterlesen lohnt

Wir haben eine Vielzahl von Werkzeugen, Methoden und teils unorthodoxen Ideen kennengelernt, um die Hard- und Software eines Gerätes zu verstehen. Die Analyse von Christer Weinigel ist allerdings noch längst nicht vorbei. In weiteren Blogbeiträgen widmet er sich unter anderem dem genaueren Verständnis des Analog-Frontends und seiner Ansteuerung, greift erneut die DDR-RAM-Implementierung im FPGA auf - diesmal mit Erfolg. Mit der Kenntnis der gesamten Artikelserie sollte es auch für Einsteiger möglich sein, den umfangreichen Ausführungen zu folgen.

Diese Artikelserie erschien zuerst im Blog von Christer Weinigel. Mit seiner Erlaubnis hat Golem.de seine Artikel ins Deutsche übersetzt und dabei einige Kürzungen und Ergänzungen vorgenommen, damit der Inhalt auch Einsteigern verständlich ist.

Bitte aktivieren Sie Javascript.
Oder nutzen Sie das Golem-pur-Angebot
und lesen Golem.de
  • ohne Werbung
  • mit ausgeschaltetem Javascript
  • mit RSS-Volltext-Feed
 Oszilloskop-Daten auslesen
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5


Aktuell auf der Startseite von Golem.de
5.000 Fahrzeuge pro Woche
Tesla steigert Giga-Berlin-Produktion und lockt mit Rabatten

Tesla hat Ende März 2023 einen wöchentlichen Ausstoß von 5.000 Fahrzeugen erreicht. Derweil sollen Sonderrabatte Kunden locken.

5.000 Fahrzeuge pro Woche: Tesla steigert Giga-Berlin-Produktion und lockt mit Rabatten
Artikel
  1. Fused Deposition Modeling: Käsekuchen in 3D aus sieben Zutaten gedruckt
    Fused Deposition Modeling
    Käsekuchen in 3D aus sieben Zutaten gedruckt

    3D-Druck in der Küche: US-Forschern ist es nach mehreren erfolglosen Versuchen gelungen, ein Stück Käsekuchen auszudrucken.

  2. Verbrennerverbot: So kann die E-Fuels-Regelung noch scheitern
    Verbrennerverbot
    So kann die E-Fuels-Regelung noch scheitern

    Zwar haben sich Regierung und EU-Kommission auf ein Verfahren zur Zulassung von E-Fuel-Autos geeinigt. Doch dieses muss noch einige Hürden überwinden.

  3. Smart-Home-Anwendung: MQTT unter Java nutzen
    Smart-Home-Anwendung
    MQTT unter Java nutzen

    Wer Daten von Sensoren oder ähnlichen Quellen von A nach B senden möchte, kann das Protokoll MQTT verwenden, dank entsprechender Bibliotheken auch einfach unter Java.
    Eine Anleitung von Florian Bottke

Du willst dich mit Golem.de beruflich verändern oder weiterbilden?
Zum Stellenmarkt
Zur Akademie
Zum Coaching
  • Schnäppchen, Rabatte und Top-Angebote
    Die besten Deals des Tages
    • Daily Deals • MediaMarkt-Osterangebote • 3 Spiele kaufen, 2 zahlen • Cyberport Jubiläums-Deals • Alternate: Corsair Vengeance 32 GB DDR-6000 116,89€ u. 64 GB DDR-5600 165,89€ • MindStar: AMD Ryzen 7 5800X 209€ • MSI Optix 30" WFHD/200 Hz 289€ • WD_BLACK SN850 2 TB 189€ • NBB Black Weeks [Werbung]
    •  /