Vor einigen Jahren wurden [Frans-Willem] ein paar RGB-LED-Paneele erhalten. Zehn 32 × 16-Panels sind viele LEDs, und alle diese Panels zu fahren, erfordert eine ausreichend leistungsstarke Hardware. Er versuchte mit einem FPGA-Entwicklungskarten zu arbeiten, hatte jedoch nicht genügend Speicherplatz für 24-Bit-Farben. Der Mikrocontroller du Jour – ein Ti Stellaris – konnte nicht mehr als 16 Farbe mehr als 16 Bits bekommen, ohne zu flackern. Mit einem Bündel von LEDs, aber keine Möglichkeit, sie zu fahren, [Frans-Willem] legte die Platten irgendwo in eine Kiste, um auf den Tag zu warten, an dem sie bis zur vollen Fähigkeit genutzt werden könnten.

Dieser Tag kam, als [Frans-Willem] mit dem F1-Discovery Board in die Serie von STM32 eingeleitet wurde. Während Sie versuchen, einige elektronische Spielzeug zu finden, die mit diesem Vorstand verwendet werden, stolperte er auf die LED-Paneele und gab ihnen einen viel mehr aus. Die Ergebnisse sind spektakulär, mit 33 Bits, mit Animationen, die über einen Router über WLAN überströmen.

Die fraglichen Paneele sind HUB75-LED-Paneele. In den 32 × 8-Panels gibt es sechs Datenstifte – jeweils zwei für jede Farbe – vier Zeilenauswahlstifte und drei Steuerstifte. Die Zeile Wählen Sie Pins aus, welche Zeile der Pixel jederzeit aktiv ist. Ziehen Sie schnell genug durch, und es scheint, als ob sie alle auf einmal sind. Die Kontrollstifte funktionieren ziemlich ähnlich wie die Kontrollstifte eines Schieberegisters, wobei die Datenstifte in der offensichtlichen Rolle füllen.

Der Code, der tatsächlich die LEDs treibt, erfolgt auf einem STM32F4 mit Hilfe von DMA und FSMC oder dem flexiblen statischen Speichercontroller, der auf dem Chip gefunden wurde. Dieses Peripheriegerät kümmert sich um die in der Erinnerung gefundenen Steuerzeilen, sodass der Schreibstrobe umschaltet wird, wechselt der Chip, was sich auf den Datenleitungen an einer bestimmten Adresse im Speicher befindet. Es ist eine großartige Möglichkeit, um ein Taktsignal zu erstellen.

Zum Senden von Pixeln an diesen Display-Treiber verwendet [Frans-Willem] den eG-beliebten TP-Link WR703N. Er hatte ursprünglich geplant, alle Pixeldaten über den USB-Anschluss zu senden, aber es gab zu viel Aufwand, ein USB 1.1 ist nicht schnell genug. Das wurde mit dem UART mit einem neuen Autofahrer und einer neu kompilierten Version von OpenWRT behoben.

Die gesamte Software, um dieses Projekt zu replizieren, ist auf Github verfügbar, und es gibt ein tolles Video, das zeigt, was das fertige Projekt tun kann. Sie können das unten überprüfen.