De meilleures LED à travers DMA

tandis que les lecteurs de hackaday réguliers savent déjà clignoter une conduite avec un microcontrôleur et se sont déplacés sur des projets légèrement plus difficiles, tels que la résolution des équations Navier-Stokes en 6502 montage, cela ne signifie pas qu’il n’y a pas de Espace pour les débutants. [Rik] a publié un excellent didacticiel sur l’abus de DMA pour des choses brillantes clignotantes. Pourquoi quelqu’un voudrait-il en savoir plus sur les techniques DMA? Pour des choses brillantes irrégulières, bien sûr.

Ce didacticiel assume la connaissance des matrices de multiplexage à DEL et de matrices à LED, ou fondamentalement un groupe de voyants connectés ensemble sur une grille XY. La manière naïve de conduire une grille de DEL 8 × 8 fixe huit cathodes à des broches Gpio sur un microcontrôleur, fixant les huit anodes à un autre ensemble de broches Gpio, ainsi que le courant de sourcrage et de naufrage selon les besoins. Le nombre de broches peut être réduit avec des registres de décalage et la variation de LED peut être mise en œuvre avec PWM. Cela conclut notre cours intensif de huit semaines d’Arduino.

Grâce aux microcontrôleurs qui ne sont pas piégés dans les années 1980, de nouvelles techniques peuvent être utilisées pour conduire ces matrices à LED. La plupart des microcontrôleurs de bras les plus puissants sont livrés avec DMA, un périphérique pour l’accès à la mémoire directe. Au lieu d’avoir le processeur faire tout le travail, le contrôleur DMA peut simplement mélanger des bits entre la mémoire et les épingles. Cela signifie des projets clignotants et des voyants de brillance.

[RIK] La méthode de la LED DMAING comprend la configuration d’un grand réseau OL dans le code, d’initialiser correctement le périphérique DMA et de câblage de la matrice LED sur quelques-unes des broches. Cette technique peut être étendue aux animations avec 64 niveaux de luminosité, ce qui prendrait une quantité incroyable de puissance de traitement (pour un microcontrôleur, au moins) si elle n’était pas pour le contrôleur DMA.

La configuration utilisée dans ces expériences est une carte nucléo STM32F103 avec l’IDE OpenStM32. [Rik] a publié tout le code sur GitHub et vous êtes bien sûr encouragé à jouer.

Send your Comment

Your email address will not be published.