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. BRUNATA Wärmemesser GmbH & Co. KG, München
  2. dSPACE GmbH, Paderborn, Wolfsburg, Böblingen, Pfaffenhofen
  3. Gebr. Bode GmbH & Co. KG, Kassel
  4. Wirecard Technologies GmbH, Aschheim bei München


Anzeige
Blu-ray-Angebote
  1. (Kaufen und Leihen)
  2. 5,94€ FSK 18
  3. 6,99€

Folgen Sie uns
       


  1. Neuer Mobilfunk

    Telekom-Chef nennt 5G-Ausbau "sehr teuer"

  2. Luftfahrt

    Nasa testet Überschallpassagierflugzeug im Windkanal

  3. Lenovo

    Moto Mod macht Moto Z zum Spiele-Handheld

  4. Alternatives Betriebssystem

    Jolla will Sailfish OS auf Sony-Smartphones bringen

  5. Gamesbranche

    PC-Plattform ist bei Spielentwicklern am beliebtesten

  6. Digitale Assistenten

    Google und Amazon kämpfen um Vorherrschaft

  7. Xperia Touch im Hands on

    Projektor macht jeden Tisch Android-tauglich

  8. RetroPie

    Distribution hat keine Rechte mehr am eigenen Namen

  9. Nokia 3310 im Hands on

    Der Nokia-Knochen mit Hipsterpotenzial

  10. Auto

    Macchina M2 bietet Zugriff auf Fahrzeugelektronik



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Watch 2 im Hands on: Huaweis neue Smartwatch soll bis zu 21 Tage lang durchhalten
Watch 2 im Hands on
Huaweis neue Smartwatch soll bis zu 21 Tage lang durchhalten
  1. Moto G5 und Moto G5 Plus im Hands on Lenovos kompakte Mittelklasse ist zurück
  2. Handy-Klassiker HMD Global bringt das Nokia 3310 zurück
  3. Galaxy Book im Hands on Samsung bringt neuen 2-in-1-Computer

Asus Tinker Board im Test: Buntes Lotterielos rechnet schnell
Asus Tinker Board im Test
Buntes Lotterielos rechnet schnell
  1. Tinker-Board Asus bringt Raspberry-Pi-Klon
  2. Sopine A64 Weiterer Bastelrechner im Speicherriegel-Format erscheint

Trappist-1: Der Zwerg und die sieben Planeten
Trappist-1
Der Zwerg und die sieben Planeten
  1. Weltraumteleskop Erosita soll Hinweise auf Dunkle Energie finden
  2. Astrophysik Ferne Galaxie schickt grelle Blitze zur Erde
  3. Astronomie Vera Rubin, die dunkle Materie und der Nobelpreis

  1. AAARRRGGGHHH!!!

    mess-with-the-best | 16:33

  2. Re: XL seats vs geiz-ist-geil

    plutoniumsulfat | 16:32

  3. Re: beliebt lukrativ

    der_wahre_hannes | 16:32

  4. ...und ohne die ganzen Indie-Entwickler?

    elgooG | 16:31

  5. Re: War es schon "immer" und wird es auch bleiben

    der_wahre_hannes | 16:30


  1. 16:32

  2. 16:12

  3. 15:33

  4. 14:31

  5. 14:21

  6. 14:16

  7. 13:30

  8. 12:49


  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