Startseite ProdukteLED-Display-Modul

64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    • 64 x 64 Pixels P2.5 P3 P4 Indoor full color LED display module without using the ribbon cable
    • 64 x 64 Pixels P2.5 P3 P4 Indoor full color LED display module without using the ribbon cable
    • 64 x 64 Pixels P2.5 P3 P4 Indoor full color LED display module without using the ribbon cable
    • 64 x 64 Pixels P2.5 P3 P4 Indoor full color LED display module without using the ribbon cable
    • 64 x 64 Pixels P2.5 P3 P4 Indoor full color LED display module without using the ribbon cable
    • 64 x 64 Pixels P2.5 P3 P4 Indoor full color LED display module without using the ribbon cable
  • 64 x 64 Pixels P2.5 P3 P4 Indoor full color LED display module without using the ribbon cable

    Produktdetails:

    Herkunftsort: China
    Markenname: Leeman
    Zertifizierung: UL CE ROHS ISO2000 ETL SGS SAA Fcc EMC
    Modellnummer: Platte PH3 RGB LED

    Zahlung und Versand AGB:

    Min Bestellmenge: 1 Einheit oder 1 PCS
    Preis: Negotiation (Good price)
    Verpackung Informationen: Kartonkasten oder -Holzetui
    Lieferzeit: 1-3 Werktage
    Zahlungsbedingungen: L/C, T/T, Western Union, Paypal, Kreditkarte, MoneyGram, VISUM, MasterCard, Bargeld
    Versorgungsmaterial-Fähigkeit: 50.000 Einheiten pro Monat
    Jetzt kontaktieren
    Ausführliche Produkt-Beschreibung
    Modulgröße: 160x160 oder 320x160 oder 256x256 oder 192x192 oder 256x128 Auflösung: 32x32 Pixel der Pixel 64x32
    Helligkeit: Mehr als 2500nits Eingangsspannung: DC5V
    Scan-Art: 1/2 oder 1/4 oder 1/8 oder 1/16 oder 1/32Scan neue Rate: ≥ 2400Hz
    LED-Typ: SMD2121 SMD3528 SMD3535 SMD2727 SMD5050 MTTF: >100.000 Stunden

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Mein spätestes Projekt verwendet ein BeagleBone-Schwarzes und ein Xilinx spartanische 6 LX9 FPGA, um eine Matrix 32×32 RGB LED zu fahren.

     

     

    Dieses Projekt lässt mich die kühlen und interessanten Muster auf einer Matrix von 32×32 RGB LED anzeigen. Der ist 1024 RGB LED oder 3072 einzelne LED-Chips, die gesteuert werden müssen! Eher als Versuch, die ganze LED nur in der Software zu steuern oder mit einer der programmierbaren Realzeiteinheiten des BBBS (PRU), entschied mich ich, die CPU zu benutzen, um die Muster zu erzeugen und FPGA zu verwenden, um die Hochleistungsaufgabe der Auffrischung der LED zu behandeln.

    Unter Verwendung FPGAs, die LED lässt zu erneuern mich mit fast 100% der BBB CPU verfügbar, um Muster zu erzeugen und lässt mich die Farbe mit 12 Bits mit einer Bildwiederholfrequenz 200Hz einführen. Eine Bildwiederholfrequenz 200Hz hat kein wahrnehmbares Aufflackern und verhindert Scan-Linien am Darstellen, wenn sie die Platte fotografiert oder filmt. Eine typische Software-Durchführung mit 12 Bits Farbunter verwendung des PRU, zum der Platten zu erneuern erneuert nur bei 50 zu 60Hz.

    Die CPU habend, geben Sie frei, um Muster zu berechnen eher als erneuern die Anzeige lässt mich einige ziemlich schwierige Muster erzeugen, die andernfalls möglicherweise nicht möglich wären. Im Augenblick schlingt das schwierigste und interessanteste Muster nahtlos Perlin-Geräusche, aber andere verschiedene abstrakte Muster, lebhaftes GIFs, Text, etc., können angezeigt werden.

    Nahtlos Schleifungsperlin-Geräusche, die an den 1024 Pixeln 50Hz laufen, erfordern 102.400 Geräuschberechnungen 3D Perlin pro Sekunde. Unter Verwendung Gleitkomma-Mathe ohne Compileroptimierung, brennt dieses schnell durch die BBB CPU-Zyklen. Hatte ich versuchte, die Platte unter Verwendung eines kleinen eingebetteten Prozessors wie ein Arduino zu erneuern, würde ich nicht die CPU-Bandbreite gelassen haben, die für dieses schwierige Muster berechnen und die Anzeige erneuern verfügbar ist.

     

    Um dieses Projekt aufzubauen, benutzte ich ein Brett BeagleBone-Schwarzen Soc auf Lager, ein Brett ValentFX LogiBone FPGA mit einem Xilinx spartanische 6 LX9 FPGA, ein Gremium 32×32 RGB LED von SparkFun und etwas Prüfkabeln von Pololu-Robotik. Das Brett LogiBone FPGA war eine Betaeinheit, die durch ihre Kickstarter-Kampagne erworben wurde. Um FPGA zu errichten und zu simulieren, benutzte ich die freien Werkzeuge Xilinx WebPack. Seiend frei, ermöglichen die Werkzeuge Xilinx WebPack Liebhaber (oder jedermann errichtende kleine Entwürfe) zu simulieren, synthetisieren, zeichnen und Platz und Ortsnetzkennzahl für einen ausgewählten Satz Xilinxs Geräte auf.

    Sprechend von der Simulation, tun Sie sie! Die allererste Stückchendatei, die ich in das bearbeitete FPGA-Brett das allererste Mal lud, ich es lud, außer dass ich hatte ein Spiegelbild auf der Anzeige von die RGB-Daten in die Anzeige von rechts nach links einziehen anstelle von links nach rechts verlaufenden. Ich hob den Auftrag auf, ließ ein anderes sim laufen und baute ein anderes Fach-Bingo auf. An zweiter Stelle Versuch. Perfektion.

    Nachdem ich alles errichtet hatte und alles erhalten hatte, um zu arbeiten, ich machte eine kurze Videodemonstration vom Projekt, schrieb ein komplettes Tutorium auf, wie jedermann mit einem BeagleBone-Schwarzen, einem Brett LogiBone FPGA und einem LED-Gremium Ergebnisse wiederholen kann, dann lud allen erforderlichen Code und Dateien zum github. Sind unten Verbindungen zum Code, zum Tutorium und zum Video.

    Einleitung

    In diesem Projekt schließen wir ein Gremium SparkFun oder Adafruit 32x32 RGB LED zu einem BeagleBone-Schwarzbrett an, welches das Xilinx spartanische 6 LX9 FPGA auf dem Brett LogiBone FPGA verwendet. Die Hardware für dieses Projekt ist verhältnismäßig einfache Datensignale des Konstruktes-gerade 16 anschließen das LED-Gremium an das Brett LogiBone FPGA. Die Komplexität dieses Projektes liegt größtenteils im RTL und in der Software.

     

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Gremium Abbildung 1. RGB LED mit einem gelegentlichen funkelnden Muster, das an das Brett LogiBone FPGA angeschlossen wird und irgendeine andere Probe täfeln Bilder.

    Erforderliche Hardware

    Die folgenden Hardware-Einzelteile werden angefordert:

    • Platte SparkFun oder Adafruit 32x32 RGB LED
      Diese Platte enthält RGB 1024 LED, der in einer Matrix 32x32 vereinbart wird. Die Spalten werden unter Verwendung der mehrfachen Sätze Schieberegister gefahren und die Reihen werden, zwei Reihen auf einmal, unter Verwendung einer Adressenkodierung des Bits 4 gefahren. Die Platte wird am 1/16. Arbeitszyklus gefahren und muss ununterbrochen erneuert werden, um ein Bild anzuzeigen.

    • BeagleBone schwärzen CPU-Brett mit USB- oder +5VDC-Stromversorgung
      Sie benötigen ein BeagleBone-Schwarzes CPU-Brett und eine +5VDC-Stromversorgung für sie. Sie können entweder ein USB-Kabel benutzen, um das Brett von Ihrem Computer oder von einem USB-Stromadapter anzutreiben oder ein unterschiedliches +5VDC, 2.1mm Identifikation zu verwenden., Mitte-positiver Wechselstrom-Adapter.

    • Brett LogiBone FPGA
      Das FPGA-Brett enthält ein Xilinx spartanische 6 LX9 FPGA. FPGA enthält 32 Block 18kbit RAMs. Wir benutzen zwei der Block RAMs als Bildspeicher, um die auf dem Gremium angezeigt zu werden RGB-Pixelwerte zu halten. Die zwei PMOD-kompatiblen Verbindungsstücke Digilent werden benutzt, um an das LED-Gremium anzuschließen.

    • Prüfkabeln oder PMOD-zu-Anzeigensteckfeld, zum FPGAs an die Anzeige anzuschließen
      Zuerst benutzte ich Mann-zu-weibliche Prüfkabeln, um die Platte anzuschließen. Dieses erlaubte mir, das Brett LogiBone FPGA direkt an das LED-Anzeigefeld anzuschließen, ohne das Flachkabel zu verwenden, das mit der Anzeige eingeschlossen war. Wenn Sie nur Mann-zumannesprüfkabeln haben, müssen Sie das Flachkabel mit 16 Positionen benutzen, das mit der Anzeige als Adapter eingeschlossen ist, um an die männlichen Stifte am Anzeigenende der Prüfkabeln anzuschließen.
      Eine viel sauberere, langfristige Lösung ist, dieses Brett und das Flachkabel mit 16 Positionen zu benutzen, das mit dem LED-Gremium eingeschlossen ist, um die Beziehung vom Brett LogiBone FPGA herzustellen zum Inputverbindungsstück der Anzeige. Ich benutzte auch precrimped Terminaldrähte und Wohnungen, um FPGA anzuschließen und zusammen zu täfeln. Ich mochte nicht diese Lösung weil die precrimped Terminaldrähte, als installiert in ein Verbindungsstück der Wohnung 2x8, erfordert zu vieler Kraft, um auf einzufügen und vom Datenverbindungsstück der Anzeige zu entfernen.

    • +3.3V-Stromversorgung, 2.0A Nominal, Spitze 4.0A
      Während des Normalbetriebs zeichnet die Anzeige höchstens über 2A des Stroms. Wenn Sie die Auffrischung mit einem gesamt-weißen angezeigten Muster „festklemmen“, zeichnen die zwei Reihen, die beleuchtet werden, über 3.8A. Ein kleines 3.3V, Tischplattenstromversorgung 3.0A wie diese vom Mäusefänger ist während des Normalbetriebs genügend. Sie müssen Ihr Netzanschlusskabel ownIEC60320 C13 an Gebrauch mit diesem Adapter liefern.
      Diese Platten können von +5V anstelle 3.3V auch laufen gelassen werden. Sie erhalten hellere Grüns, helleres Blau und weniger-rotes Weiß, wenn es von +5V anstelle +3.3V gefahren wird. Sie ziehen auch ungefähr 15% gegenwärtiger und Gebrauch über 65% mehr Macht an +5V anstelle +3.3V. Wenn Sie eine +5V-Versorgung benutzen, geben Sie acht, besonders dass Sie nicht versehentlich das Brett LogiBone FPGA an das Ertragverbindungsstück der Anzeige anschließen.

    • Weiblicher DC-Fasssteckfassungsadapter (optional)
      Ein weiblicher DC-Fasssteckfassungsadapter macht, das Gremium an die Stromversorgung anschließend viel einfacher. Wenn Sie keinen Adapter haben, können Sie immer schneiden, verstärken, löten und Hitzepsychiater die Verbindungen zwischen der Stromversorgung und dem geführten Gremium.

    Erforderliche Software

    • Gestalt ValentFX LogiBone Ubuntu auf Lager mit dem Kern LogiBone logibone__dm.ko Modul und dem logi_loader
      Laden Sie und befolgen Sie die Anweisungen, herunter das Bild Nichterfüllung LogiBone Ubuntu auf eine Sd-Karte hier zu installieren.
    • Software Xilinx ISE WebPack
      Wenn Sie errichten möchten, biss FPGA Datei sich oder fertigt das Verilog besonders an, um mehr Platten zu fahren, oder, andere kundenspezifische Funktionalität (wie ein Coprocessor zu helfen schwierige, Pixelmuster zu berechnen), müssen Sie zu addieren die Software Xilinx ISE WebPack herunterladen und installieren. Anweisungen sind hier. Wenn Sie nur verwenden möchten, biss die Nichterfüllung FPGA Datei, Sie kann überspringen, die Software Xilinx ISE WebPack installierend.
    • Die LED-Platte GIT-Behälter der Schlucht
      Schließlich müssen Sie meinen GIT-Behälter bei http://github.com/bikerglen/beagle zu Ihrem BeagleBone-Schwarzen klonen. Dieser Behälter enthält den Verilog-Quellcode für FPGA, eine vorgefertigte Stückchendatei und C++-Quellcode für das Anzeigen einiger Demonstrationsmuster auf der Platte. Anweisungen für das Herunterladen oder das Klonen und die Anwendung des Behälters werden später dargestellt.

    Theorie der Operation

    Dieses System hat drei Hauptteile: die LED-Platte, der FPGA-Code und der C++-Code. Lassen Sie uns jedes dieser drei Hauptteile im Detail überprüfen.

    Die LED-Platte

    LED-Platten-Hardware

    Die LED-Platte enthält RGB 1024 LED, der in einer Matrix von 32 Reihen und von 32 Spalten vereinbart wird. Jeder RGB LED enthält unterschiedliche rote, grüne und blaue LED-Chips, die zusammen in einem einzelnen Paket zusammengebaut werden. Die Anzeige wird horizontal in zwei Hälften unterteilt. Die Spitzenhälfte besteht 32 Spalten und aus 16 Reihen. Die untere Hälfte besteht auch 32 Spalten und aus 16 Reihen.

    Die Spalten der Anzeige werden durch einen Satz Fahrer gefahren und die Reihen der Anzeige werden durch einen anderen Satz Fahrer gefahren. Um eine LED zu belichten, müssen die Fahrer für die Spalte und die Reihe für diese LED eingeschaltet werden. Um die Farbe einer LED zu ändern, werden die Roten, die Grünen und blaue Spielmarken in jedem LED-Paket einzeln gesteuert und ihre eigenen Spaltenfahrer haben. Das folgende Abbildung 2 ist eine vereinfachte Darstellung der Spalten- und Reihenfahrerorganisation der Anzeige.

     

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Plattenspalte Abbildung 2. RGB LED und Reihenfahrerorganisation.

    Die Platte enthält sechs Sätze Spaltenfahrer; drei für die Spitzenhälfte der Anzeige und drei für die Unterseite. Jeder Fahrer hat 32 Ertrag. Die drei Fahrer für die Spitze der Anzeige fahren das Rote, das grün und blaue Spielmarken in jeder der 32 Spalten von LED in Reihen 0 bis 15 der Platte. Die drei Fahrer für die Unterseite der Anzeige fahren das Rote, das grün und blaue Spielmarken in jeder der 32 Spalten von LED in Reihen 16 bis 31 der Platte.

    Jeder der Fahrer hat eine Seriendateneingabe, einen Stanzeninput, ein Schieberegister und ein Parallelausgaberegister wie gezeigt unten im Abbildung 3. Die Daten, die auf der Seriendateneingabe vorhanden sind, werden in das Schieberegister unter Verwendung des SCLK-Signals verschoben. Nachdem eine gesamte Reihe von Daten herein auf das Schieberegister verschoben worden ist, wird das KLINKEN-Signal, die Reihe von Pixeldaten vom Schieberegister in das Parallelausgaberegister zu übertragen benutzt. Wenn ein Stückchen im Ausgaberegister ‚1" ist und der Stanzeninput deasserted, wird der Fahrer für diese Spalte ermöglicht; andernfalls wird der Fahrer abgestellt. Daten werden vom rechten Rand der Anzeige zum linken Rand der Anzeige verschoben. Das heißt, wird das erste Stückchen, das herein verschoben wird, auf dem linken Rand der Anzeige angezeigt und das letzte Stückchen, das herein verschoben wird, wird auf dem Recht angezeigt.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 3.-Spaltenfahreroperation für die roten Spaltenertrag der R0 Dateneingabe und der Höchsthälfte. Es gibt zwei mehr dieser Schieberegister an der Spitze der Anzeige für die grünen und blauen Spalten der Höchsthälfte und drei mehr an der Unterseite für die unteren halben roten, grünen und blauen Spalten.

    Die roten, grünen und blauen Spaltenfahrer für die Spitzenhälfte der Anzeige werden beziehungsweise zu den R0, G0 und B0 Dateneingaben befestigt. Die roten, grünen und blauen Spaltenfahrer für die untere Hälfte der Anzeige werden beziehungsweise zu den R1, G1 und B1 Dateneingaben befestigt. Alle sechs der 32-Bit-Fahrer teilen allgemeines SCLK, KLINKE und LEERE Signale.

    Die Reihen werden unter Verwendung der Vieradreßstückchen und einer Adressenkodierung gefahren. Die Vierstückchenadresseneingabe zu den Reihenfahrern wird decodiert und die zwei Reihenfahrer entsprechend dieser Adresse werden eingeschaltet. Wenn A [3:0] 0 ist, rudert 0 und 16 der Anzeige werden eingeschaltet. Wenn A [3:0] 1 ist, rudert 1 und 17 der Anzeige werden eingeschaltet. Dieses Muster setzt, bis A [3:0] 15 ist und rudert 15 fort und 31 werden eingeschaltet.

    Zusätzlich zur Reihe und die Spaltenlogik und -fahrer, hat die Anzeige einen Stanzeninput. Dieser Input wird höchstwahrscheinlich an die Spaltenfahrer angeschlossen. Wenn das Austastsignal erklärt wird, werden alle Pixel abgestellt und die Anzeige ist schwarz. Wenn das Austastsignal deasserted, werden die adressierten Reihen und die Spalten gefahren und die entsprechenden Pixel belichtet. Um ein Bild ohne zu flackern und Geisterbild anzuzeigen, müssen alle diese Signale benutzt werden und richtig der Reihe nach geordnet werden wenn man die Platte fährt.

    Fahren der Platte

    Die Anzeige wird gemultiplext und einen 1/16. Arbeitszyklus hat. Dies heißt, dass nicht mehr als eine Reihe aus den 16 zur Hälfte Spitzender Anzeige heraus und eine Reihe aus den 16 zur Hälfte untere der Anzeige heraus überhaupt sofort belichtet werden. Außerdem kann eine LED AN/AUS nur sein. Wenn die Reihe und die Spalte für eine LED eingeschaltet werden, wird die LED belichtet; andernfalls ist die LED aus.

    Um ein Bild anzuzeigen, muss die gesamte LED-Platte gescannt werden schnell genug damit sie scheint ein ununterbrochenes Bild anzuzeigen ohne zu flackern. Um verschiedene Farben und verschiedene Helligkeitsniveaus anzuzeigen, muss die Helligkeit der roten, grünen und blauen LED-Chips innerhalb jedes LED-Pakets durch den Unterschied der Dauer justiert werden dass jeder LED-Chip innerhalb eines einzelnen erneuern Zyklus AN/AUS ist.

    Der grundlegende Prozess verwendet, um die Anzeige zu erneuern, wenn die Farbe mit drei Stückchen-propixeln verwendet wird (ein Bit für Rot; ein Bit für Grün; und ein Bit für Blau) ist das folgende:

    1. Verschieben Sie die Pixeldaten für Reihe 0 in die Spitzenspaltenfahrer und die Pixeldaten für Reihe 16 in die unteren Spaltenfahrer, die R0, G0, B0, R1, G1 und B1 Dateneingaben und das SCLK-Schiebetaktsignal verwenden.
    2. Erklären Sie das Austastsignal, die Anzeige zu löschen.
    3. Stellen Sie die Adresseneingabe bis 0 ein.
    4. Verriegeln Sie den Inhalt der der Spaltenregister Fahrer Schiebein die Ausgaberegister der Spaltenfahrer unter Verwendung des KLINKEN-Signals.
    5. Deassert das Austastsignal, Reihen 0 und 16 anzuzeigen.
    6. Warten Sie irgendeinen Festbetrag Zeit.
    7. Wiederholen Sie den Prozess für jedes der Paare von Reihen in der Anzeige.
    8. Wiederholen Sie den Gesamtprozess mindestens 100 bis 200mal pro Sekunde, Aufflackern zu verhindern.

    Der oben genannte Prozess benutzt ein Bit pro LED-Farbe. Dieses gibt Ihnen acht mögliche Farben: Schwarzes; die Primärfarben rot, grün und Blau; die Sekundärfarben cyan-blau, magentarot und Gelb; und Weiß.

    Zu mehr Farben und Helligkeit anzuzeigen planiert die oben genannte Technik wird geändert um binär verschlüsselte Modulation zu verwenden. In binär verschlüsselter Modulation ist jedes Pixel unter Verwendung mehr als ein Einzelbit pro Farbe pro Pixel kontrolliert. Die Dauer jeder rote, grüne und blaue LED-Chip ist eingeschaltet wird unterschieden dann proportional zu des roten Pixels, grünen und blauen den Werten.

    In binär verschlüsselter Modulation wird der folgende Prozess durchgeführt, um die Anzeige zu erneuern:

    1. Verschieben Sie Stückchen null von roten jedes Pixels, grünen und blauen Werten für Reihen 0 und 16 in die Spaltenfahrer.
    2. Erklären Sie das Austastsignal, die Anzeige zu löschen.
    3. Stellen Sie die Adresseneingabe bis 0 ein.
    4. Verriegeln Sie den Inhalt der der Spaltenregister Fahrer Schiebein die Ausgaberegister der Spaltenfahrer unter Verwendung des KLINKEN-Signals.
    5. Deassert das Austastsignal, Reihen 0 und 16 anzuzeigen.
    6. Warten Sie irgendeine Dauer, N.
    7. Wiederholen Sie den oben genannten Prozess für das folgende Stückchen höherer Ordnung von Farbdaten in der gleichen Reihe. In Schritt 6, warten Sie zweimal die vorhergehende Verzögerungszeit. Wiederholen Sie diesen Prozess für jedes Stückchen von Farbdaten und die Verzögerungszeit verdoppeln, nachdem Sie jedes aufeinander folgende Stückchen angezeigt haben.
    8. Wiederholen Sie den oben genannten Prozess für jedes der Paare von Reihen in der Anzeige.
    9. Wiederholen Sie den Gesamtprozess mindestens 100 bis 200mal pro Sekunde, Aufflackern zu verhindern.

    Merken Sie, dass in den tatsächlichen Durchführungen, der Prozess der Verschiebung der Pixeldaten in die Schieberegister in Schritt 1 normalerweise während der Wartezeit in Schritt 6. erfolgt ist.

    Die globale Anzeige, die sich verdunkelt, kann durchgeführt werden, indem man die Dauer sich unterscheidet, die das Austastsignal erklärt wird, oder deasserted innerhalb des Wartezeitzeitraums, ergibt N. zum Beispiel, das Austastsignal 25% erklärend früh eine Anzeige mit einer Helligkeit von 75% anstelle 100%. Merken Sie, dass während der globalen Verdunkelung, die Wartezeit selbst nicht verkürzt oder verlängert wird; nur das Austastsignal wird, früher erklärt zu werden geändert, als es normalerweise sein würde.

    FPGA

    FPGA schließt die C++-Mustergenerations-Software an, die auf der BeagleBone-Schwarzes CPU zur LED-Platte läuft. FPGA tut das schwere Anheben erfordert, um die gesamte LED-Platte ungefähr 200mal pro Sekunde zu erneuern. Dieses verlässt die BeagleBone-Schwarzes CPU frei, die Muster zu erzeugen und andere Aufgaben durchzuführen.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 4.-Santendiagramm des Systems einschließlich ein Santendiagramm von den FPGAs bedeutenden Funktionsblöcken.

    Wie in Abbildung 4 gezeigt oben, erzeugt die Software, die auf dem BeagleBone-Schwarzen läuft, Muster. FPGA auf dem LogiBone-Brett diese Muster werden eingezogen, das der TI Soc GPMC-den Bus verwendet. Diese Muster werden zu einem diesem Doppel-hafengedächtnis Aufschläge als Bildschirmpuffer geschrieben. Schließlich liest ein Anzeigenkontrolleur die Muster aus dem Dual-Port-Speicher heraus, verschiebt die Daten in die Anzeige, und ermöglicht den Reihenfahrern, wie gebraucht, das Bild anzuzeigen. Der Gesamtprozess wird ungefähr 200mal pro Sekunde wiederholt und ein 32 x 32 RGB Bild mit der Farbe mit 12 Bits ohne irgendeine Interaktion von der CPU der BeagleBone-Schwarzen erzeugt.

    GPMC-Schnittstelle

    Das TI Soc hat eine programmierbare Gedächtnisschnittstelle, die den universellen Gedächtnisprüfer (GPMC) genannt wird. Diese Schnittstelle ist extrem flexibel. Sie kann in synchronem funktionieren und asynchrone Modi und das Bus-TIMING ist in den Erhöhungen 10ns programmierbar. Der GPMC-Bus wird benutzt, um Pixeldaten von der Software auf dem BeagleBone-Schwarzen auf FPGA auf dem LogiBone-Brett zu übertragen.

    In unserem System ist das GPMC konfiguriert, um in seiner asynchronen, gemultiplexten Adresse/in Datenmodus zu funktionieren. In diesem Modus sind die Adresse und die Datenbusse 16 Bits weit. Dieses ermöglicht ein gesamtes Pixel mit 12 Bits, von der CPU auf dem BBB auf FPGA auf dem LogiBone-Brett in einem einzelnen übertragen zu werden schreiben Operation. Zu mehr Information über die asynchronen GPMC, sehen gemultiplexte Arbeitsweise, Abschnitte 7.1.3.3 .10.1.1 des Mikroprozessor-technischen Handbuchs AM335x ARM® Cortex™-A8.

    Ich benutze einen etwas anderen Stromkreis in FPGA, um zum GPMC-Bus als die LogiBone-Projekte anzuschließen auf Lager. Es ist ein wenig, das als der Stromkreis des Vorrates VHDL langsamer ist, aber garantiert, dass jedes von der CPU über dem GPMC-Bus schafft genau ein schreiben Abtastimpuls zur Registerschnittstelle innerhalb FPGAs schreiben. Weil es etwas langsamer als der Stromkreis auf Lager ist, erfordert es geändertes Bus-TIMING und folglich eine kundenspezifische Gerätbaumeinrichtungsdatei. Das folgende Abbildung 5 zeigt das Bus-TIMING unter Verwendung der geänderten GPMC-Schnittstelle, um ein Schreibung FPGA durchzuführen. Das Abbildung 6 folgend ist zeigt das Bus-TIMING unter Verwendung der geänderten GPMC-Schnittstelle, um durchzuführen gelesen von FPGA.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 5.-Simulation eines Schreibung zum GPMC-Ziel unter Verwendung des geänderten Bus-TIMINGs.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 6.-Simulation von gelesen vom GPMC-Ziel unter Verwendung des geänderten Bus-TIMINGs.

    Gelesen oder schreiben Adresse wird verriegelt in ein vorübergehendes Holdingregister auf der steigenden Flanke des GPMC_ADVN-Signals und die Schreibungsdaten latached in sein eigenes vorübergehendes Holdingregister auf dem fallenden Rand des GPMC_WEN-Signals. Dieses erfordert unter Verwendung des GPMC_ADVN und einer umgekehrten Version der GPMC_WEN-Datensignale als Uhren. Technisch unter Verwendung der Datensignale als Uhren ist grob. Es ist wirklich, die Xilinx-Werkzeuge erzeugt einen Fehler für diese Bedingung so grob. Aber Sie können eine Ausnahme in der UCF-Datei einstellen, damit die betroffenen Netze und die Kraftsynthese fortfährt. Sie würde viel besser, das GPMC in seinem Synchronverfahren zu verwenden sein, aber diese Technik ist genug für FPGA gut, bis ich Zeit habe, eine synchrone Version der Schnittstelle, ein synchrones GPMC-Busmodell aufzubauen für Simulation und lerne, wie man den Gerätbaum weiter ändert.

    Zusätzlich zum Verriegeln der Adresse und schreiben Sie Datenwerte in Holdingregister, das GPMC_CSN, GPMC_WEN, und GPMC_OEN-Steuersignale werden in das FPGAs 100MHz-Uhrgebiet registriert und geholt. Einmal im FPGAs Uhrgebiet, werden die WEN- und OEN-Signale mit dem CSN-Signal mit einem Gatter versehen und der Rand, der ermittelt wird, um zu ermitteln, schreibt zum GPCM-Ziel und liest vom GPMC-Ziel. Wenn schreiben gelesen oder wird ermittelt, der Inhalt der Adresse und schreibt Datenholdingregister werden gefangen genommen in Register im FPGAs 100MHz-Uhrgebiet.

    Der Hauptgrund, den GPMC-Bus gegen die Gerätbaum-Einrichtungsdatei zu verlangsamen auf Lager war, die Zeit auszudehnen, dass jedes dieser Steuersignale niedrig oder zu mindestens 30ns hoch ist, zu garantieren, dass die Ränder der Signale im FPGAs 100MHz-Uhrgebiet ermittelt werden konnten. Dieses garantierte auch, dass die Adresse und die Daten in ihren eigenen Holdingregistern vor der Bewegung des Inhalts jener Register in die Adress- und Datenregister stabil sein würden, die im FPGAs 100MHz-Uhrgebiet abgestoppt werden.

    Die Ertrag des GPMC-Ziels sind ein Bus, dass ich den langsamen Bus nenne. Der langsame Bus schließt das GPMC-Ziel an die FPGAs Registerschnittstelle an. Abbildung 7 stellt dar, dass ein langsamer Bus des Beispiels Operation schreiben. Abbildung 8 zeigt einem Beispiel Lesevorgang des langsamen Busses.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 7.-Simulation eines langsamen Busses schreiben.

    sb_addr, sb_wr und sb_wr_data sind für genau einen einzelnen Taktimpuls 100MHz gültig, jedes Mal wenn ein Schreibung auf dem GPMC-Bus auftritt. Wenn die Registerschnittstelle das erklärte sb_wr sieht, schreibt es sb_wr_data in das Register am sb_addr.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 8.-Simulation eines langsamen Busses gelesen.

    sb_addr und sb_rd sind für genau einen einzelnen Taktimpuls 100MHz gültig, jedes Mal wenn gelesen auf dem GPMC-Bus auftritt. Die Registerschnittstelle sieht, dass das sb_rd, das dann erklärt wird, den Wert des Registers am Adressen-sb_addr auf dem sb_rd_data Bus auf dem sehr folgenden Taktzyklus zurückbringen muss.

    Register-Schnittstelle

    Die Registerschnittstelle wird in der höchsten Ebene FPGAs Verilog eingeführt. Die Registerschnittstelle definiert die Ansicht, welche die Software von FPGA hat. Untengenannte Listen der Tabelle 1 die Register in FPGA.

    FPGA-Adresse Adresse BBB Soc Name Beschreibung
    0x0000 0x0000 R-/Wtest-Ausrichtung 1 Lese-Schreibtestregister. Schreiben Sie jeden möglichen Wert zu diesem Register. Liest schriftlichen Wert der Rückkehr vorher.
    0x0001 0x0002 R-/Wtest-Ausrichtung 2 Lese-Schreibtestregister. Schreiben Sie jeden möglichen Wert zu diesem Register. Liest schriftlichen Wert der Rückkehr vorher.
    0x0002 0x0004 R-/Wtest-Ausrichtung 3 Lese-Schreibtestregister. Schreiben Sie jeden möglichen Wert zu diesem Register. Liest schriftlichen Wert der Rückkehr vorher.
    0x0003 0x0006 R-/Wtest-Ausrichtung 4 Lese-Schreibtestregister. Schreiben Sie jeden möglichen Wert zu diesem Register. Liest schriftlichen Wert der Rückkehr vorher.
    0x0004 0x0008 Schreibgeschützte Test-Ausrichtung 1 Schreibgeschützte Testregister. Liest Rückkehr fest verdrahtete Werte. Sehen Sie RTL für zurückgebrachte Werte.
    0x0005 0x000a Schreibgeschützte Test-Ausrichtung 2 Schreibgeschützte Testregister. Liest Rückkehr fest verdrahtete Werte. Sehen Sie RTL für zurückgebrachte Werte.
    0x0006 0x000c Schreibgeschützte Test-Ausrichtung 3 Schreibgeschützte Testregister. Liest Rückkehr fest verdrahtete Werte. Sehen Sie RTL für zurückgebrachte Werte.
    0x0007 0x000e Schreibgeschützte Test-Ausrichtung 4 Schreibgeschützte Testregister. Liest Rückkehr fest verdrahtete Werte. Sehen Sie RTL für zurückgebrachte Werte.
    0x0008 0x0010 Bildschirmpuffer-Adreßregister Schreibt zu diesem Registersatz den Bildschirmpufferadresszeiger. Der Bildschirmpufferadresszeiger zeigt auf den Standort im Anzeigenbuffer, der geändert wird, wenn ein Pixelwert zum Bildschirmpuffer-Datenregister geschrieben wird. Sehen Sie den Bildschirmpufferabschnitt dieses Dokuments für die Anordnung für Pixel im Gedächtnis.
    0x0009 0x0012 Bildschirmpuffer-Daten-Register Einen Pixelwert zu diesem Register schreibend, schreibt den Pixelwert zum Bildschirmpuffer an der Adresse gezeigt auf von den Bildschirmpufferadresszeiger. Nachdem jedes schreiben, wird der Bildschirmpufferadresszeiger durch einen erhöht, um auf das folgende Pixel im Bildschirmpuffer zu zeigen.
    0x000a 0x0014 Bildschirmpuffer-ausgewähltes Register 0 wählt Puffer 0 für Anzeige vor; 1 wählt Puffer 1 für Anzeige vor; Liest Rückkehr, die Puffer z.Z. angezeigt wird.

    Tabelle 1. FPGA-Register.

    Bildschirmpuffer

    Die Bildschirmpuffer sind die eingeführten usinx Xilinx-Block-RAMs, die als Doppel-hafengedächtnisse mit asynchronem gelesen konfiguriert sind und schreiben Häfen. Erste RAM enthält Bildschirmpuffer 0 und 1 für die Spitzenhälfte der Anzeige. Zweite RAM enthält Bildschirmpuffer 0 und 1 für die untere Hälfte der Anzeige. Die Strukturierung der Gedächtnisse, um Hälfte der Anzeige jede zu enthalten ermöglicht die vom Gedächtnis gelesen zu werden Pixel in Reihen 0 bis 15, auf dem genauen die gleiche Uhr, dass die Pixel in Reihen 16 bis 31 vom Gedächtnis gelesen werden.

    Bildschirmpuffer 0 befindet sich an der Adresse 0x0000. Bildschirmpuffer 1 befindet sich an der Adresse 0x0400. Jeder Bildschirmpuffer enthält 1024 12 Bit RGB-Werte, die als 32 Reihen von 32 Spalten vereinbart werden. Innerhalb jedes Bildschirmpuffers wird das oben links-Pixel an Ausgleich 0, das unten rechts-Pixel wird gespeichert am Ausgleich 0x3ff gespeichert. Stückchen 4 bis 0 des Pixelausgleichs sind 0x00 für Pixel in der am weitesten links liegenden Spalte auf der Anzeige; Stückchen 4 bis 0 des Pixelausgleichs sind 0x1F für Pixel in der am weitesten rechts stehenden Spalte.

    Pixel werden im Speicher als 12 Bit RGB-Werte gespeichert. Diese Werte sind gespeichertes rechtes-justiified. Stückchen 11 bis 8 sind das rote Pixelniveau, sind Stückchen 7 bis 4 das grüne Niveau, und Stückchen 3 bis 0 sind das blaue Niveau.

    Anzeigen-Fahrer

    Der Anzeigenfahrer liest Pixelwerte vom Gedächtnis, verschiebt jene Werte auf die Anzeige, und Zyklen durch die Reihen der Anzeige wie erforderlich, um binär verschlüsselte Modulation einzuführen, wie in der Theorie des Operationsabschnitts dieses Dokuments beschrieben. Der Anzeigenfahrer wird als Zustandsmaschine eingeführt. Jeder Zustand führt einen Schritt im Auffrischungsprozeß ein. Wenn dieser Schritt komplett ist, bewegt sich die Zustandsmaschine auf den nächsten Schritt im Prozess.

    Abbildung 9 unterhalb der Showsimulationswellenformen zur Steuerung und der Datenausgaben für den Wert mit drei Reihen von Anzeigendaten. Der grundlegende Prozess ist die Anzeige, Klinke in den vorher verschobenen Daten leer, aktualisiert die Reihe vorwählt, unblank die Anzeige, Verschiebung im Folgenden Satz von Pixeldaten und wartet dann auf einen Aktualisierungstimer, um abzulaufen. Dieses wird viermal für jede Reihe wiederholt. Wenn Sie den Stanzenertrag überprüfen, bemerken Sie, dass sein niedriger Zeitraum dreimal innerhalb des Ertragzeitraums für jede Anzeigenreihe verdoppelt. Dieses ist das Ergebnis der Anwendung der binär verschlüsselten Modulation, um sich die Intensität jedes Pixels zu unterscheiden.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 9.-Simulationswellenformen für die Anzeigendatenausgabeverbindungen.

    Die Software

    Die Demonstrations-Software benutzt das /dev/logibone_mem-Gerät, um FPGA verbunden zu sein. Der Fahrer für dieses Gerät ist ein Teil des Bildes LogiBone Ubuntu auf Lager und sein ladbares Kernmodul wird durch das geänderte Gerätbaumeinrichtungs-Shell-Skript installiert, das im GitHub-Behälter für die LED-Platte eingeschlossen ist. (Mehr auf diesem Thema in einem neueren Abschnitt.) Dieser Fahrer zeichnet die Register in FPGA zu einem Teil des DER BBB Adressraumes CPU unter Verwendung des GPMC auf. Das GPMC zeichnet normalerweise Gedächtnis in den Adressraum der CPU auf. Weil unser FPGA wie ein Gedächtnis zum GPMC-Bus aussieht, können seine Register in den CPU-Adressraum auch aufgezeichnet werden. Recht kühl. Kein SPI, I2C, etc.; fasten gerade parallele Zugänge zwischen der CPU und FPGA. Dieser Gedächtnis-aufgezeichnete Raum kann, indem man das /dev/logbone_mem-Gerät unter Verwendung des offenen Funktionsaufrufs c-Bibliothek, dann erreicht werden öffnet und liest und schreibt zu einem Register in FPGA kann unter Verwendung der pread und pwrite durchgeführt werden c-Bibliotheksfunktionsaufrufe.

    Das folgende Abbildung 10 ist ein Santendiagramm des Demonstrations-Software-Stapels. In der Demonstrations-Software öffnet Hauptleitung das /dev/logibone_mem-Gerät, füllt den globalen Buffer, gLevels, mit ganz Schwarzem und nennt dann WriteLevels, um den globalen Puffer zur Anzeige und zum freien Raum zu schreiben die Anzeige. Einmal wird die Anzeige, die Hauptfunktion instantiates eine Muster-/Animationsunterklasse wie ein Ausstrahlenkreis, perlin Geräusche oder eine colorwash Unterklasse geklärt. Diese Unterklasse wird von einer niedrigen Klasse des generischen Musters abgeleitet.

    Die niedrige Klasse des generischen Musters verwendet einen Erbauer, um die Höhe und die Breite des Musters einzustellen, um zu erzeugen. Abgeleitete Klassen fügen möglicherweise ihre eigenen Argumente ihren eigenen Erbauern hinzu. Die niedrige Klasse hat auch zwei reine virtuelle Mitgliedsfunktionen, -init und -folgende, die irgendwelche abgeleiteten Klassen einführen müssen. Die init Funktion bereitet ein Muster vor, zum ersten Mal angezeigt zu werden. Sie stellt gewöhnlich alle mögliche Zustandsinformationen zurück zu dem Anfang des Musters zurück. Die folgende Funktion berechnet den folgenden Rahmen des Musters und schreibt diesen Rahmen zum globalen gLevels Puffer.

    Nachdem Hauptleitung die Musterunterklasse instantiated, nennt sie das funciton das init der Unterklasse. Hauptleitung installiert dann einen Timer, der an 50Hz durchführt und geht zu schlafen. Wenn der Timer abläuft, wird eine Timer-Lenkerfunktion genannt. Die Timer-Lenkerfunktionsaufrufe WriteLevels, zum des vorher Berechnungs- Rahmens in gLevels zum folgenden verfügbaren Bildschirmpuffer in FPGA zu schreiben und macht diesen Bildschirmpuffer Active. Schreibt zu den FPGA-Bildschirmpuffern werden durchgeführt unter Verwendung der Register, die im Register Interfacesection dieses Dokuments dokumentiert werden.

    Nachdem WriteLevels abgeschlossen hat, die Timer-Lenkerfunktionsaufrufe die folgende Funktion des Musters Mitglieds. Die folgende Funktion erzeugt den folgenden Rahmen in der Animation, schreibt diesen Rahmen zu den gLevels und Rückkehr-ohne das Nennen von WriteLevels. Der Timer-Lenker schläft dann bis, nächstes Mal wenn der Timer abläuft. Indem sie WriteLevels vor callingnext nennt, unterscheidet sich die Dauer zwischen angezeigten Rahmen nicht, selbst wenn die Dauer, die folgend nimmt, um durchzuführen, zwischen Rahmen schwankt.

    Damit Animationen glatt, die Timer-Lenkerfunktion müssen Durchführung abschließen laufen, bevor der Timer als Nächstes abläuft. Dies heißt, dass jeder Rahmen in der Animation kleiner 20ms zur Berechnung als ungefähr nehmen muss.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 10.-Santendiagramm des Demonstrations-Software-Stapels.

    Verbindung der Hardware

    Die Anzeige erfordert nur eine Datenverbindung zum Brett LogiBone FPGA und einen Stromanschluß zu einer +3.3V-Stromversorgung zu funktionieren. Diese Verbindungen werden in den Abschnitten unten einzeln aufgeführt.

    Anzeigen-Datenverbindungen

    Abbildung 11 unterhalb der Listen die Verbindungen zwischen den PMOD-Verbindungsstücken und dem Dateneingabeverbindungsstück der Anzeige. Sie müssen 16 Beziehungen herstellen, zwischen dem LogiBone-Brett und dem Anzeigefeld sich zu belaufen. Dreizehn von diesen sind Datenverbindungen; drei von diesen sind Boden. Sie können entweder Prüfkabeln oder das PMOD-zu-Anzeigensteckfeld benutzen. Wenn Sie Prüfkabeln benutzen, schaut die Verdrahtung etwas wie Abbildung 12. Mit dem Steckfeld schaut sie etwas wie Abbildung 13. Merken Sie dass die Steckerstifte PMOD-werden nummeriert anders als, als doppelte Reihentitel normalerweise nummeriert werden.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Steckerstiftheraus des Abbildung 11. PMOD, Verbindungen zwischen den PMOD-Verbindungsstücken und dem Anzeigeninputverbindungsstück und dem AnzeigenSteckerstift heraus.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 12. Brett LogiBone FPGA schloss an Gremium RGB LED unter Verwendung der Prüfkabeln an.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

     

    Abbildung 13. Brett LogiBone FPGA schloss an Gremium RGB LED unter Verwendung des PMOD-zu-Anzeigensteckfelds an.

    Anzeigen-Stromversorgungs-Verbindung

    Sobald die Datensignale angeschlossen worden sind, stellen Sie die Stromversorgungsbeziehung zur Anzeige her. Das folgende Abbildung 14 zeigt die Grundlagen. Unter Verwendung des DC-Fasssteckfassungsadapters schließen Sie die Plus-Klemme der Stromversorgung an den roten Draht des Kabelbaums an und schließen Sie die Minus-Klemme der Stromversorgung an den schwarzen Draht des Kabelbaums an. Vor der Verbindung des Kabelbaums zur Anzeige, benutzen Sie ein Voltmeter, um die Polarität der Verbindungen zu überprüfen. Sobald Sie die Polarität überprüft haben, trennen Sie die Energie und verstopfen Sie den Kabelbaum in die Anzeige.

    Ich ließ die Spatenansätze auf dem Kabelbaum, weil ich auf der Anwendung der Anzeige in einem größeren Projekt plane und nicht sie entfernen möchte, bis ich sicher bin, dass ich sie nicht im größeren Projekt benötige. Wenn Sie verlassen, zerrt der Spaten an auch, achtgibt sie tun nicht versehentlich kurz zu jeder möglicher anderen Elektronik. Sie sollten sie mit Isolierband gerade um sicher zu sein einwickeln. Wenn Sie die Spatenverbindungsstücke benötigen nicht oder wünschen, fühlen Sie sich frei, sie abzuschneiden, streifen Sie ein Stückchen von der Isolierung weg von den Drähten, ab und schließen Sie sie direkt an den DC-Fasssteckfassungsadapter an.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Abbildung 14. Die Stromversorgung an das Gremium RGB LED unter Verwendung eines weiblichen DCs anschließend, rasen Sie Steckfassungsadapter.

    64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden64 x 64 Pixel P2.5 P3 P4 farbenreiches LED-Anzeigeninnenmodul, ohne das Flachkabel zu verwenden

    Kontaktdaten
    Leeman Display Technology Limited

    Ansprechpartner: Leeman

    Senden Sie Ihre Anfrage direkt an uns (0 / 3000)

    Andere Produkte