Les matrices LED RVB avec le STM32 et le DMA


Il y a quelques années, [Frans-Willem] a obtenu quelques panneaux LED RVB. Dix panneaux 32 × 16 représentent beaucoup de LED et de conduire tous ces panneaux nécessite un quincaillerie suffisamment puissant. Il a essayé de travailler avec un conseil de développement FPGA, mais cela n’avait pas assez de mémoire pour une couleur 24 bits. Le microcontrôleur du jour – A Ti Stellaris – Impossible d’obtenir beaucoup plus de 16 morceaux de couleur sans scintiller. Avec un tas de DEL mais aucun moyen de les conduire, [Frans-Willem] Mettez les panneaux dans une boîte quelque part, en attente de la journée, ils pourraient être utilisés à leur capacité maximale.

Cette journée est arrivée lorsque [Frans-Willem] a été présenté à la série STM32 de jetons de puces avec le conseil de découverte F1. En essayant de trouver des playings électroniques à utiliser avec cette planche, il a trébuché sur les panneaux LED et leur a donné un beaucoup plus essayer. Les résultats sont spectaculaires, avec 33 bits de couleur, avec des animations en ruine sur un routeur sur WiFi.

Les panneaux en question sont des panneaux LED HUB75. Dans les panneaux 32 × 8, il y a six broches de données – deux chacune pour chaque goupille de couleur à quatre rangées, et trois broches de contrôle. Les broches Sélectionner la ligne Sélectionnez la ligne de pixels actifs à la fois. Vélectez-les assez rapidement et cela semblera être tout à la fois. Les broches de contrôle fonctionnent à peu près comme les broches de contrôle d’un registre à décalage, avec les goupilles de données remplissant le rôle évident.

Le code qui entraîne réellement les LED qui se passe tout sur une STM32F4 à l’aide de DMA et de FSMC, ou du contrôleur de mémoire statique flexible trouvé sur la puce. Ce périphérique s’occupe des lignes de commande trouvées en mémoire, de sorte que lorsque vous basculez le strobe d’écriture, la puce videra tout ce qui est sur les lignes de données à une certaine adresse en mémoire. C’est un excellent moyen de s’occuper de générer un signal d’horloge.

Pour envoyer des pixels à ce pilote d’affichage, [Frans-Willem] utilise le TP-Link WR703N toujours populaire. Il avait initialement prévu d’envoyer toutes les données de pixels sur le port USB, mais il y avait trop de frais généraux, une USB 1.1 n’est pas assez rapide. Cela a été corrigé en utilisant le UART sur le routeur avec un nouvel automobiliste et une version recompilée de OpenWrt.

Tous les logiciels à reproduire ce projet sont disponibles sur GitHub et une excellente vidéo montrant ce que le projet terminé peut faire. Vous pouvez vérifier cela ci-dessous.

Leave a Reply

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