FPGA-Karte zu Raspberry Pi


Vor einiger Zeit erschien mir das Raspberry Pi3 Board. Die Funktionen sind wirklich beeindruckend: ein schneller Quad-Core-Prozessor und integrierte Hardware-Codecs / Decoder für Audio / Video / JPEG, Ethernet / WIFI, USB2, HDMI ... Es ist ein echter Computer. Es ist sehr cool, dass es einen GPIO-Anschluss gibt, über den verschiedene Handwerker etwas von ihrem eigenen, nicht standardmäßigen und besonderen Anschluss anschließen können. Auf diesem Anschluss sind eine Vielzahl verschiedener Erweiterungskarten installiert: Displays, LED-Bildschirme, Adapter für Motoren, ADC-Karten ...

Ich möchte ein wenig über die FPGA-Karte der Mars rover2RPI-Karte sprechen, die wie andere Erweiterungskarten mit dem GPIO-Steckplatz der Beere verbunden ist und unserem Mikrocomputer völlig neue Eigenschaften hinzufügt.

Die Gebühr ist ziemlich einfach. Darauf installiert:

  1. FPGA Cyclone IV EP4CE6E22C8
    • logische Elemente 6272;
    • eingebauter Speicher 270 Kbit / s;
    • Multiplikatoren 15 (18 x 18);
    • PLL 2;
  2. Vier LEDs
  3. Drei Tasten
  4. 100 MHz Quarzoszillator;
  5. Möglichkeit zur Installation eines EPCS4-Chips (falls die Karte autonom verwendet wird);
  6. JTAG-Anschluss (falls die Karte autonom verwendet wird);
  7. Zwei 40-polige Anschlüsse an jedem der 28 Benutzer-GPIO-Anschlüsse, die mit Raspberry kompatibel sind;
  8. Ein 40-poliger Anschluss zum Anschließen an Raspbery, an dem Sie 24 oder 20 GPIOs verwenden können (je nachdem, ob der EPCS4-Chip installiert ist oder nicht).

Die Mars rover2RPI-Karte wird nicht über der Raspberry Pi-Karte, sondern von der Seite über einen speziellen Adapter installiert. Dies geschieht absichtlich. Raspberry Pi3 ist bereits ziemlich heiß, wenn 4 Kerne geladen werden. Das Abdecken des Boards von oben scheint in Bezug auf die Kühlung nicht sehr human zu sein.

So können Sie die Raspberry Pi2 / Pi3-Karte anschließen:



Und hier ist Pi-Null:



Es ist möglich (aber dies ist nicht korrekt), dass dieselbe Erweiterungskarte mit OrangePi verwendet werden kann.

Die allererste Anwendung dieser Karte, die mir in den Sinn kommt, besteht darin, die Anzahl der GPIO-Signale zu verdoppeln: Es gab einen Anschluss und zwei. Sie müssen nur das gewünschte Projekt erstellen und auf das FPGA hochladen. Nun, Sie müssen die Ein- und Ausgänge auf besondere Weise verwalten. Es gibt viele Optionen: serielle Schnittstelle, SPI, GPIO, Sie können DMA verwenden ...

Sie können das FPGA der Mars rover2RPI-Karte direkt von Raspberry über JTAG-Signale herunterladen, die natürlich im GPIO angezeigt werden

  • tck → GPIO7
  • tms → GPIO0
  • tdi → GPIO11
  • tdo ← GPIO1

Es gibt ein solches Open-Source-Projekt OpenOCD, Debugger und Debugger, mit dem Sie Raspberry als JTAG-Programmierer verwenden können. OpenOCD ist ein Server. Sie können ihn starten und dann auch per Telnet eine Remoteverbindung herstellen. Mit dem Befehl „svf“ können Sie das Image des kompilierten Projekts auf das FPGA hochladen. Erfahren Sie mehr über OpenOCD auf Himbeer-Pi .

Hier ist nur eine Videodemonstration:



Das allererste "Test" -Projekt für das Mars rover2RPI-Board ist bereits fertig, obwohl es in seiner Funktionalität noch nicht sehr beeindruckend ist. Das erste Projekt für FPGAs ist normalerweise immer "Blinken einer LED", eine Art "Hallo Welt!" Mikrocontroller-Welt und FPGA.
Die Quelle kann auf github abgerufen werden: github.com/marsohod4you/m2rpi_first

Aber auch hier besteht bereits in diesem einfachen Fall eine Wechselwirkung zwischen dem FPGA und dem Mikrocomputer. Von Himbeere aus können Sie Bytes über die serielle Schnittstelle an das FPGA senden, die die Blinkgeschwindigkeit der LED ändern. Darüber hinaus akzeptiert das erste FPGA "Testprojekt" Bytes von der seriellen Schnittstelle, ändert sie (fügt eine hinzu) und sendet sie zurück. Natürlich eher primitiv, aber schon das Zusammenspiel der beiden FPGA-Systeme und des Prozessors.

Video-Demo:



Dies ist meine erste Raspberry FPGA-Zugriffserfahrung. Ich denke, es wäre interessant zu versuchen, wirklich komplexe Projekte zu erstellen, z. B. Bilder von einer Videokamera in Himbeere aufzunehmen und sie zur Verarbeitung per DMA auf das FPGA zu übertragen. Ich denke, mit diesem Erweiterungsboard kann es viele interessante Projekte geben.

Source: https://habr.com/ru/post/de408645/


All Articles