Lepsze diody LED przez DMA

, podczas gdy regularne czytniki Hackaday już wiedzą, jak mrugnąć diodą LED z mikrokontrolerem i przeniósł się na nieco bardziej wymagające projekty, takie jak rozwiązanie równań navier-Stokes w montażu 6502, to nie znaczy, że nie ma przestrzeń dla początkujących. [Rik] Opublikował wspaniały samouczek na nadużycia DMA za blinkier Glowe rzeczy. Dlaczego ktoś miałby dowiedzieć się o technikach DMA? Oczywiście dla blinkier Glowe rzeczy.

Ten samouczek zakłada wiedzę na temat multipleksowania LED i matryc LED lub w zasadzie kilka diod LED połączonych ze sobą na siatce XY. Naiwny sposób napędzania 8 × 8 siatki diod LED mocuje osiem katodów do szpilki GPIO na mikrokontroler, mocując osiem anodów do innego zestawu kołków GPIO oraz zaopatrzenia i zatonięcia prądu zgodnie z wymaganiami. Liczba pinowa może być zmniejszona za pomocą rejestrów zmian, a ściemnianie LED można wdrożyć za pomocą PWM. Stwierdza to nasz intensywny ośmiokrotny kurs Arduino.

Dzięki mikrokontrolerom, które nie są uwięzione w latach 80., nowe techniki mogą być używane do prowadzenia tych macierzy LED. Większość potężnych mikrokontrolerów ramienia przychodzi z DMA, peryferyjną do bezpośredniego dostępu do pamięci. Zamiast posiadający procesor wykonać wszystkie prace, sterownik DMA może po prostu przetasować wokół bitów między pamięcią a pinami. Oznacza to projekty migacz i diody Glowier.

[RIK] Sposób diod LED DMMAING obejmuje konfigurowanie dużej strony “ol w kodzie, prawidłowo inicjując peryferię DMA i okablowanie matrycy LED na kilku szpilkach. Ta technika może być rozszerzona do animacji z 64 poziomami jasności, coś, co przynosi niesamowitą ilość mocy przetwarzania (dla mikrokontrolera, przynajmniej), jeśli nie był dla kontrolera DMA.

Ustawienie stosowane w tych eksperymentach jest płyta jądra STM32F103 wraz z IDE OpenStm32. [Rik] wydał cały kod na Github, a oczywiście zachęcałem do gry.