Lepší LED diody přes DMA

, zatímco pravidelná hackaday čtenáři již vědí, jak blikat vedl s mikrokontrolérem a přesunuty na mírně náročnější projekty, jako je řešení navier-Stokes Equations v 6502 montáži, to neznamená, že ne prostor pro nováček. [Rik] zveřejnil úžasný tutoriál o zneužívání DMA pro Blinkier Glowy věci. Proč by se někdo chtěl dozvědět o technikách DMA? Pro Blinkier Glowy věci samozřejmě.

Tento tutoriál předpokládá znalosti LED multiplexování a LED matric, nebo v podstatě spoustu LED diod spojených na mřížce XY. Naivní způsob, jak řídit 8 × 8 mřížky LED, je upevňuje osm katod na GPIO kolíky na mikrokontroléru, přičemž upevňuje osm anodů na jinou sadu GPIO pinů a podle potřeby sourcing a potopení proudu. Počet kolíku může být snížen s posuvnými registrem a LED stmívání může být implementováno pomocí PWM. To uzavírá náš intenzivní osm-týden Arduino.

Díky mikrokontrolérům, které nejsou uvězněny v 80. letech, mohou být nové techniky použity k řízení těchto LED matric. Většina silnějších mikrokontrolérů ramene přichází s DMA, periferní pro přímou přístup k paměti. Místo toho, aby CPU provedli veškerou práci, DMA regulátor může jednoduše zamíchat kolem bitů mezi pamětí a piny. To znamená, že projekty blikávače a GLOWIER LED.

[RIK] metoda pro DMAING LED diody zahrnuje nastavení velkého ‘ol array v kódu, správně inicializaci periferie DMA a zapojení LED matrice do několika pinů. Tato technika může být rozšířena na animace s 64 úrovní jasu, něco, co by trvalo neuvěřitelné množství zpracovatelského výkonu (alespoň pro mikrokontrolér, alespoň), pokud nebyla pro řadič DMA.

Nastavení použité v těchto experimentech je nukleanka STM32F103 spolu s Openstm32 IDE. [Rik] vydal celý kód na GitHub a vy jste samozřejmě povzbuzeni k tomu, aby se mohli hrát.