een paar jaar geleden, [Frans-Willem] heeft een paar RGB-LED-panelen geworden. Tien 32 × 16 panelen zijn veel LED’s en om al deze panelen te drijven vereist een aantal voldoende krachtige hardware. Hij probeerde met een FPGA-ontwikkelingsbord te werken, maar dat had niet genoeg geheugen voor 24-bits kleur. De Microcontroller du Jour – A TI Stellaris – kon niet veel meer dan 16 stukjes kleur krijgen zonder flikkerend. Met een stel LED’s, maar geen manier om ze te besturen, [Frans-Willem] zette de panelen ergens in een doos in, wachtend op de dag dat ze kunnen worden gebruikt voor hun volle capaciteit.
Deze dag kwam toen [Frans-Willem] werd geïntroduceerd in de Stm32-serie chips met de F1 Discovery Board. Tijdens het proberen om wat elektronische speelgoederen te vinden om met dit bord te gebruiken, struikelde hij op de LED-panelen en gaf ze ze nog een stuk meer. De resultaten zijn spectaculair, met 33 stukjes kleur, met animaties gestreamd over een router over WiFi.
De betreffende panelen zijn HUB75 LED-panelen. In de 32 × 8 panelen zijn er zes data-pins – twee elk voor elke kleur – vier rijen selecteren pins en drie controlepins. De rij Selecteer Pins Select Welke rij pixels is op elk moment actief. Cyclus door hen snel genoeg, en het lijkt erop dat ze allemaal tegelijk aan zijn. De bedieningspelden werken vrijwel zoals de besturingspennen van een schuifregister, waarbij de gegevenspelden de duidelijke rol invullen.
De code die daadwerkelijk de LED’s drijft, gebeurt er allemaal op een STM32F4 met behulp van DMA en FSMC, of de flexibele statische geheugencontroller die op de chip is gevonden. Dit perifere zorgt voor de bedieningsleidingen die in het geheugen worden gevonden, dus wanneer u de schrijfstrebo de chip schakelt, dumpt het dan ook op de gegevenslijnen op een bepaald adres in het geheugen. Het is een geweldige manier om een kloksignaal te genereren.
Voor het verzenden van pixels naar dit scherm, gebruikt [Frans-Willem] de altijd populaire TP-Link WR703N. Hij was oorspronkelijk van plan om alle pixelgegevens over de USB-poort te sturen, maar er was te veel overhead, een USB 1.1 is niet snel genoeg. Dat was opgelost door het gebruik van de UART op de router met een nieuwe automobilist en een gecompileerde versie van OpenWRT.
Alle software om dit project te repliceren is beschikbaar op Github, en er is een geweldige video met wat het voltooide project kan doen. U kunt dat hieronder controleren.