Abo
  • Services:
Anzeige
Schaltbild des Panels
Schaltbild des Panels (Bild: Christer Weinigel)

Die restlichen FPGA-Pins

Jetzt, wo ich die großen Verbindungen und ihre Pins zugeordnet habe, kann ich mit den übrigen beginnen. Ich benutze hierzu die gleiche Methode wie auf dem SoC. Ich habe einen FPGA-Pin als Eingabe definiert, mit einem Pull-up- oder Pull-down-Widerstand konfiguriert. Danach verbinde ich interessante Kontakte auf der Platine über einen 330-Ohm-Widerstand mit der Masse oder einer Stromquelle und verfolge, ob ein Schaltvorgang auf dem FPGA registriert wird.

Anzeige

Zuerst probiere ich die beiden Kontakte des I2C-Busses am AT88SC-Kryptospeicher. Es stellt sich heraus: Pin C4 am FPGA entspricht dem SCL-Pin und B6 dem SDA-Pin. Wenn ich darüber nachdenke, ist das sinnvoll. Wenn die Seriennummer und der Lizenzschlüssel für die Firmware im FPGA stecken, dann könnte sich dort auch der Lizenzcheck befinden und ist damit schwerer zu umgehen. Clever!

In meinem Blog habe ich noch eine ganze Reihe weitere gefundener Pins aufgelistet, hier beschränke ich mich auf eine Auswahl.

Ich bemerke außerdem, dass am Pin A4 ein Signal mit der Frequenz von 50 MHz anliegt, wenn ich es über den regulären Stromanschluss betreibe statt über die Batterie. Ich schaue in der Dokumentation nach: Das Oszilloskop kann tatsächlich über den Stromanschluss getriggert werden.

Der Pin D5 schaltet mit einer Frequenz von 1 KHz, wenn ich einen Oszilloskop-Tastkopf an Kanal 1 mit einem 1-KHz-Testsignal verbinde. Ich vermute, das ist die Ausgabe des Trigger-Schaltkreises von Kanal 1 des Oszilloskops. Nicht gefunden habe ich bislang den Trigger für Kanal 2 oder den externen Trigger. Das sollte aber leichter sein, wenn ich weiß, wie ich das Analog-Frontend konfigurieren kann.

Zwei weitere Pins scheinen mit dem Video-Trigger-IC verbunden zu sein. Ich weiß gar nicht, wie ich eine Quelle für ein Composite-Video-Signal auftreiben soll, das ist so 20.-Jahrhundert-mäßig. Vielleicht muss ich meinen alten Amiga 1000 aus dem Keller holen und hoffen, dass er noch funktioniert.

Die finale Karte

Jetzt können wir die Karte weiter vervollständigen.

  • 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)
Vollständig dokumentierte Karte der Pins (Bild: Christer Weinigel)

Immer noch sind gut ein Dutzend IO-Pins des FPGA übrig, die ich nicht zuordnen kann. Bei einigen handelt es sich wohl um Trigger, einige könnten ADC-Signale sein, und manche sind sicherlich unbenutzt.

Abgesehen davon habe ich wohl tatsächlich alle Verbindungen innerhalb des Oszilloskops aufdecken können. Ich weiß, wie der SoC mit seiner Peripherie und einigen Komponenten im Analog-Frontend verbunden ist. Ich weiß, wie der FPGA mit dem SoC verbunden ist, dem DDR-Speicher, dem ADC und anderen Komponenten wie dem Taktgenerator, dem DAC und den übrigen Komponenten im Analog-Frontend.

Die FPGA-SoC-Bus-Verbindung wird schwer auszunutzen sein. Die Verbindung arbeitet sehr schnell, und jeder Fehler in der Signalverarbeitung des FPGA korrumpiert den Speicher im SoC und führt zum Absturz des Oszilloskops. Das wird sehr schwer zu testen und zu debuggen. Der DDR-Speichercontroller im FPGA entspricht nicht den Empfehlungen von Xilinx und ich weiß noch nicht, wie ich damit umgehe.

Es sollte nicht zu aufwendig sein, ein FPGA-Image zu erzeugen, das den Taktgenerator und das Analog-Frontend startet. Dann kann ich die Daten vom ADC im internen RAM des FPGA speichern und über die drei IO-Pins übertragen, die ich auch bisher benutze, auch wenn die Datenrate dabei deutlich unter 10 MBit pro Sekunde liegen wird. Dabei gibt es wahrscheinlich noch viele Kleinigkeiten zu beachten, um alle Komponenten zu initialisieren. Das ist zwar nicht hart, aber sehr zeitaufwendig, auch weil ich gerade mal ein HDL-Einsteiger bin.

Die Tasten am Gerät auswerten

Schauen wir uns stattdessen das Frontpanel näher an, das über den Steckverbinder mit der Hauptplatine verbunden ist. Der Forenteilnehmer "lemon" im EEVBlog-Forum hat bereits einige gute Bilder der Leiterplatten des Frontpanels gemacht. Im dortigen Bild sind die Schaltkreise gut zu sehen.

Bei U31 handelt es sich um einen 74HC393-Dual 4-Bit-Binary-Ripple-Counter. U7 und U26 sind 74HC4051-8-Channel-Analog-Multipler-Demultiplexer (PDF). Die Leiterbahnen sind im Bild deutlich sichtbar und selbst ohne Blick auf die Rückseite der Platine ist die Funktionsweise erkennbar. Hier das Schaltbild:

  • 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)
Matrix-Schaltung der Bedientasten am Oszilloskop (Bild: Christer Weinigel)

Die Tasten sind im Schaltplan in einer Matrix angeordnet, auf der realen Platine wird das nicht sofort deutlich, einige Tasten sind sogar auf anderen Platinen. Jede Taste besteht aus einem Schalter, der eine Spalte mit einer Zeile über eine Diode verbindet. Einige Tasten sind eigentlich Drehgeber, aber hier reicht es, sie als einfache Tasten zu betrachten.

Der U31-Counter hat zwei Zählwerke. Das erste Zählwerk steuert über diesen drei niederwertige Bits U7 und wählt darüber die abzufragende Spalte aus, die dann mit einem FPGA-Pin verbunden wird. Das zweite Zählwerk steuert gleichfalls über die drei niederwertigsten Bits U26 und verbindet jeweils die abzufragende Zeile mit der Masse.

Normalerweise liegt an allen Spalten über die Widerstände R1-R8 ein High-Signal an. Wenn eine Taste gedrückt wird, und die zugehörige Spalte wie auch die Zeile sind gerade ausgewählt, dann verursacht die Taste einen Kurzschluss mit der Masse. Dadurch liegt am Z-Pin von U7 ein Low-Signal an, das von einem FPGA-Pin ausgewertet wird.

Die Prüfung des Status der Tasten erfolgt über den FPGA. Zuerst führt er einen Zähler-Reset über den FPGA-Pin A5 durch. Beide Zähler stehen auf 0, über U7 und U26 sind die erste Spalte und erste Zeile der Tastenmatrix ausgewählt. Am FPGA-Pin B5 liegt nun das Signal der ersten Taste an. Zur Prüfung der nächsten Taste liefert der FPGA am Pin C6 ein Taktsignal, das den ersten Zähler um eins erhöht. Damit wird der Taster in der zweiten Spalte der ersten Reihe ausgewertet.

Erreicht der erste Zähler einen bestimmten Wert, wird der zweite Zähler um eins erhöht und damit zur nächsten Zeile weitergeschaltet. Wurden so alle 64 Tasten geprüft, wird ein erneuter Reset durchgeführt und das Spiel geht von neuem los. Da die Schaltfrequenz des Pin C6 mit 312,5 KHz recht hoch ist, wirkt es für den Nutzer, als ob alle Tasten gleichzeitig geprüft werden.

Ein Bauteil fehlt

Die übrigen Pins des Steckverbinders vom Frontpanel kontrollieren die Beleuchtung der Tasten. Ich habe keine Ahnung, warum ein SoC-Pin für die grüne LED benutzt wird, die anderen beiden hingegen vom FPGA kontrolliert werden.

Ein Pin bleibt noch übrig: Der SoC-Pin GPH3 liegt ebenfalls am Steckverbinder an. Aber ich konnte keinen zugehörigen Kontakt am Panel finden.

Allerdings gibt es an der Front etwas, das wie ein kleines Fenster für einen Infrarotempfänger aussieht. Und auf der Leiterplatte befinden sich unbenutzte Kontakte für zusätzliche Bauelemente direkt hinter diesem Fenster.

Der SoC-Pin GPH3 ist der Empfänger-Pin für einen seriellen Anschluss, und die zugehörigen UARTs unterstützen die Auswertung von Infrarotsignalen!

Ich habe bislang noch nicht überprüft, ob GPH3 tatsächlich mit den unbenutzten Kontakten verwendet wird, da ich dafür das Frontpanel aufschrauben müsste. Aber ich halte es für sehr wahrscheinlich. Vermutlich sollte ursprünglich ein Infrarotempfänger verbaut werden, doch dann wurde davon abgesehen.

 Den echten DDR-Bus identifizierenOszilloskop-Daten auslesen 

eye home zur Startseite
grslbr 26. Nov 2016

Du bist mit Abstand der coolste Typ auf dieser Erde. Wahrscheinlich wirst du eigentlich...

grslbr 26. Nov 2016

Jo, das Trollen bei Heise war schon mal lustiger. Früher konnte man da sicher sein, mit...



Anzeige

Stellenmarkt
  1. Robert Bosch GmbH, Berlin
  2. Radeberger Gruppe KG, Frankfurt am Main
  3. IT Services mpsna GmbH, Herten
  4. Basler AG, Ahrensburg


Anzeige
Spiele-Angebote
  1. 9,99€
  2. 7,99€
  3. 19,49€

Folgen Sie uns
       


  1. Fahrdienst

    London stoppt Uber, Protest wächst

  2. Facebook

    Mark Zuckerberg lenkt im Streit mit Investoren ein

  3. Merged-Reality-Headset

    Intel stellt Project Alloy ein

  4. Teardown

    Glasrückseite des iPhone 8 kann zum Problem werden

  5. E-Mail

    Adobe veröffentlicht versehentlich privaten PGP-Key im Blog

  6. Die Woche im Video

    Schwachstellen, wohin man schaut

  7. UAV

    Matternet startet Drohnenlieferdienst in der Schweiz

  8. Joint Venture

    Microsoft und Facebook verlegen Seekabel mit 160 Terabit/s

  9. Remote Forensics

    BKA kann eigenen Staatstrojaner nicht einsetzen

  10. Datenbank

    Börsengang von MongoDB soll 100 Millionen US-Dollar bringen



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Apples iPhone X in der Analyse: Ein iPhone voller interessanter Herausforderungen
Apples iPhone X in der Analyse
Ein iPhone voller interessanter Herausforderungen
  1. Smartphone Apple könnte iPhone X verspätet ausliefern
  2. Face ID Apple erlaubt nur ein Gesicht pro iPhone X
  3. iPhone X Apples iPhone mit randlosem OLED-Display kostet 1.150 Euro

Metroid Samus Returns im Kurztest: Rückkehr der gelenkigen Kopfgeldjägerin
Metroid Samus Returns im Kurztest
Rückkehr der gelenkigen Kopfgeldjägerin
  1. Doom, Wolfenstein, Minecraft Nintendo kriegt große Namen
  2. Nintendo Das NES Classic Mini kommt 2018 noch einmal auf den Markt
  3. Nintendo Mario verlegt keine Rohre mehr

Galaxy Note 8 im Test: Samsungs teure Dual-Kamera-Premiere
Galaxy Note 8 im Test
Samsungs teure Dual-Kamera-Premiere
  1. Galaxy S8 und Note 8 Bixby-Button lässt sich teilweise deaktivieren
  2. Videos Youtube bringt HDR auf Smartphones
  3. Galaxy Note 8 im Hands on Auch das Galaxy Note sieht jetzt doppelt - für 1.000 Euro

  1. Re: Aber PGP ist schuld ...

    Pete Sabacker | 03:31

  2. Re: Wie sicher sind solche Qi-Spulen vor Attacken?

    Maatze | 02:48

  3. Re: "dem sei ohnehin nicht mehr zu helfen"

    LinuxMcBook | 02:45

  4. Re: Interessant [...] ist immer die Kapazität des...

    nightmar17 | 01:36

  5. Re: Das heißt H2/2018 gibt es Ryzen dann mit 4,4 Ghz

    ELKINATOR | 01:35


  1. 15:37

  2. 15:08

  3. 14:28

  4. 13:28

  5. 11:03

  6. 09:03

  7. 17:43

  8. 17:25


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel