Le matrici a LED RGB con STM32 e DMA

Le matrici a LED RGB con STM32 e DMA

May 29, 2022 Uncategorized 0

pochi anni fa, [Frans-Willem] ha ottenuto alcuni pannelli LED RGB. Dieci pannelli 32 × 16 sono un sacco di LED e per guidare tutti questi pannelli richiedono un hardware sufficientemente potente. Ha provato a lavorare con una scheda di sviluppo FPGA, ma non ha avuto abbastanza memoria per il colore a 24 bit. Il microcontrollore du Jour – A TI Stellaris – non ha potuto ottenere molto più di 16 pezzi di colore senza tremolare. Con un grappolo di LED ma nessun modo per guidarli, [Frans-Willem] mettono i pannelli in una scatola da qualche parte, in attesa del giorno in cui potevano essere usati alla loro massima capacità.

Questo giorno è arrivato quando [Frans-Willem] è stato introdotto alla serie STM32 di chips con la scheda di scoperta F1. Durante il tentativo di trovare alcuni playthings elettronici da utilizzare con questa tavola, inciampò sui pannelli LED e ha dato loro uno molto più tentativo. I risultati sono spettacolari, con 33 bit di colore, con animazioni streaming su un router su WiFi.

I pannelli in questione sono pannelli LED HUB75. Nei pannelli 32 × 8, ci sono sei perni di dati – due ciascuno per ciascun colore – a quattro righe Select Pins e tre perni di controllo. La riga Seleziona PIN Selezionare quale riga di pixel è attiva in qualsiasi momento. Ciclo attraverso di loro abbastanza velocemente, e sembrerà che siano tutti in una volta. I perni di controllo funzionano praticamente come i pin di controllo di un registro di spostamento, con i perni di dati che riempiono il ruolo evidente.

Il codice che effettivamente guida i LED avviene su un STM32F4 con l’aiuto di DMA e FSMC, o il controller di memoria statico flessibile trovato sul chip. Questa periferica si prende cura delle linee di controllo trovata in memoria, quindi quando si disattiva lo strobo di scrittura il chip scarica qualsiasi cosa sia sulle linee di dati a un determinato indirizzo in memoria. È un ottimo modo per prendersi cura di generare un segnale di clock.

Per l’invio di pixel a questo driver di visualizzazione, [Frans-Willem] sta utilizzando il sempre popolare TP-Link WR703N. Originariamente aveva pianificato di inviare tutti i dati dei pixel sulla porta USB, ma c’era troppo alto, un USB 1.1 non è abbastanza veloce. Questo è stato risolto utilizzando l’UART sul router con un nuovo automobilista e una versione ricompilata di OpenWRT.

Tutto il software per replicare questo progetto è disponibile su GitHub, e c’è un ottimo video che mostra ciò che il progetto completato può fare. Puoi verificarlo di seguito.

Leave a Reply

Your email address will not be published. Required fields are marked *