wersja mobilna | kontakt z nami

Pomysłowe diody LED RGB

Numer: Grudzień/2015

Postęp techniczny daje producentom komponentów elektronicznych zaskakujące możliwości. Współcześnie nikogo już nie dziwi, że dioda LED może świecić w dowolnym kolorze - światło emitowane przez różnobarwne struktury umieszczone we wspólnej obudowie miesza się, umożliwiając uzyskanie dowolnej barwy świetlnej. Jednak takie typowe diody wielokolorowe są bardzo kłopotliwe w użyciu, ponieważ wymagają wielu połączeń - o ile katoda lub anoda diod może być wspólna, o tyle połączenia elektrod o przeciwnej polaryzacji muszą być rozdzielone, co wymusza konieczność doprowadzenia do każdej diody co najmniej 4 ścieżek. Nie ma problemu, jeśli to tylko pojedyncza dioda lub linijka, ale co, jeśli chcemy zbudować ekran LED? Pomyślmy też o multipleksowaniu wyświetlania i połączeniach z kontrolerem LED, o konieczności modulowania natężenia światła oraz zasilania całości z jakichś źródeł prądowych i innych problemach natury technicznej, które trzeba będzie rozwiązać. Te potrzeby zostały zauważone przez firmę WorldSemi, która wprowadziła do programu produkcji pewną specjalną grupę produktów.

Pobierz PDF

Propozycja firmy WorldSemi jest genialna w swojej prostocie. Ktoś wpadł na pomysł, aby skorzystać z dobrodziejstw współczesnej technologii wytwarzania urządzeń półprzewodnikowych i w niewielkiej obudowie diody (SMD 5050) zamknął struktury R, G, B oraz kontroler z interfejsem szeregowym. Do takiej diody wystarczy doprowadzić zasilanie i sygnały interfejsu cyfrowego.

Rysunek 1. Sposób łączenia diod WorldSemi w łańcuchy (źródło: dokumentacja diody LED WS2812B WorldSemi)

Po przesłaniu 24-bitowego słowa zawierającego składowe RGB wbudowany kontroler "zajmuje się" wyświetlaniem koloru. Nie jest to zadanie trywialne, ponieważ dane RGB trzeba przetworzyć na natężenie światła odpowiednich struktur diody. Każdy kolor składowy jest kodowany za pomocą 8 bitów, co oznacza, że dioda ma możliwość wyświetlenia aż 16777216 barw, co zwykło się oznaczać w skrócie 16,7 mln kolorów.

Koncepcja wbudowania kontrolera i źródła prądowego w strukturę diody LED jest genialna. Konstruktor, który zwróci uwagę na taką diodę, będzie jednak chciał nie tyle użyć jej w roli pojedynczego źródła światła, ile połączyć takie diody w zespół, mający możliwość wyświetlania informacji lub obrazów.

Do takiej aplikacji niezbędny jest mechanizm, który umożliwi zmianę koloru świecenia pojedynczego piksela obrazu. Typowo diody łączy się w matryce i steruje nimi na przecięciu wierszy i kolumn, jeśli jednak w obudowie diody umieściliśmy kontroler, to "klasyczne" sterowanie nie ma sensu. Przecież naszym zamiarem było uniknięcie wykonywania nadmiernej liczby połączeń.

Pomysł na rozwiązanie problemu łączenia diod w zespoły jest równie genialny, jak idea zespolenia kontrolera z diodą. Każda dioda ma wbudowany synchroniczny rejestr przesuwny z szeregowym wejściem i szeregowym wyjściem. Ten rejestr ma pojemność 24 bitów, a jeśli przekroczymy jego pojemność, to dane zostaną przez sygnał zegarowy "wypchnięte" na szeregowe wyjście.

Dzięki temu diody można łączyć ze sobą - wyjście do wejścia, budując bardzo długie łańcuchy (rysunek 1). Ograniczenia długości takiego łańcucha wynikają głównie z ograniczeń aplikacji - napiszemy o nich w dalszej części tekstu. Teraz wystarczy nam wiedza o tym, że każda dioda ma 4 wyprowadzenia: dwa służą do zasilania, jedno to wejście danych i jedno wyjście. No dobrze, ale jak wpisywać dane? Przecież jest wejście i wyjście, ale nie ma sygnału zegarowego!

Powiedzmy sobie, że "na szczęście" nie ma sygnału zegarowego. Wyobraźmy sobie, że musimy prowadzić połączenia od diody do diody i równolegle dołączać je do szyny zegara. Jeśli nasz ekran będzie miał przeciętną rozdzielczość 64×64 piksele, to łącznie użyjemy 4096 diod LED.

Jak podaje karta katalogowa, pojemność każdego wejścia wynosi 15 pF. Obliczmy pojemność szyny zegarowej, którą przyjdzie nam sterować - 4096×15 pF=61440 pF, to jest ponad 61 nF! A dodajmy do tego jeszcze pojemności montażowe... Każdy, kto kiedykolwiek miał do czynienia z driverem zdolnym do naładowania/rozładowania takiej pojemności, wie, jak trudne to zadanie.

Zauważymy, że generujemy sygnał zegarowy, a więc musi on mieć strome zbocza i kształt chociażby zbliżony do prostokątnego. Jeśli założymy, że nasz ekran będzie odświeżany z przeciętną częstotliwością 30 ramek/sekundę, daje to 30 (ramek)×4096 (diod)=122880 kHz. A więc nasz generator sygnału zegarowego musiałby ładować i rozładowywać pojemność ponad 61 nF z częstotliwością blisko 123 kHz. Nie jest to zadanie trywialne do realizacji układowej.

Inżynierowie z WorldSemi też mieli tę świadomość i wpadli na kolejny genialny pomysł. Otóż diody są sterowane za pomocą specjalnego protokołu, zbliżonego w warstwie łącza danych do dobrze znanego 1-Wire (łatwiejszy w obsłudze, bo nie ma obaw o zasilanie diody) i dlatego nawet przeciętny programista nie będzie miał żadnego problemu z jego implementacją.

Co więcej, dane "przepychane" przez rejestr diody i udostępniane na jej wyjściu są regenerowane cyfrowo, więc tak naprawdę konstruktor musi martwić się jedynie o to, aby wysterować pierwszą diodę, natomiast na jej wyjściu pojawi się zregenerowany sygnał wejściowy, który wysteruje kolejną i uwolni konstruktora od koszmaru dbania o obwiednię sygnału na końcu szeregu diod.

Rysunek 2. Kodowanie bitów danych (źródło: dokumentacja diody LED WS2812B WorldSemi)

Szczegóły kodowania bitów pokazano na zaczerpniętym z dokumentacji diody WS2812 rysunku 2. Podobnie jak w protokole 1-Wire, bity są kodowane za pomocą zależności czasowych. Aby przesłać logiczną "1", ustawiamy wejście danych przez 0,4 µs i zerujemy je przez 0,85 µs.

Aby przesłać logiczne "0", ustawiamy wejście danych przez 0,85 µs i zerujemy je przez 0,4 µs. W związku z tym, że chcemy naszych diod użyć np. do zbudowania ogromnego telebimu, margines błędu przy odmierzeniu czasu trwania poziomu logicznego nie może być zbyt duży i tu wynosi ±150 ns.

Dlatego mikrokontroler wysyłający dane musi mieć częstotliwość taktowania stabilizowaną za pomocą rezonatora kwarcowego, a do odmierzania czasu trwania poszczególnych poziomów logicznych przypuszczalnie będziemy musieli użyć timera lub sterowanego nim systemu przerwań. Nie jest to jednak problem, ponieważ jest to rozwiązanie typowe, niedrogie i stosowane zawsze wtedy, gdy zależy nam na precyzyjnym odmierzaniu czasu.

No dobrze, ale czy "przepychanie" danych przez diodę nie powoduje migotania jej światła? Wbudowane w diodę rejestry przypominają dobrze znany 74595. Był on chętnie stosowany w układach wyświetlania, ponieważ jego rejestr szeregowy miał na wyjściach równoległych przerzutniki typu Latch (zatrzask).

Podczas transmisji danych wyjścia pozostawały w poprzednim stanie do momentu, aż odrębny impuls zegarowy powodował ich aktualizację. Tę samą koncepcję przyjęli inżynierowie z firmy WorldSemi - aktualizację poziomu składowych RGB powoduje specjalny impuls Reset. Dopóki nie zostanie on wysłany przez system nadrzędny, dopóty stan diody nie zmienia się, chociaż jej rejestr przenosi do wyjścia zmieniające się dane.

Maksymalna częstotliwość sygnału zegarowego, a właściwie sygnału danych, wynika z podanych zależności czasowych dla logicznego 0 i logicznej 1, i wynosi 1/(0,4 µs+0,85 µs)=800 kHz. Jeśli założymy, że będziemy odświeżali obraz z częstotliwością 30 Hz, a do każdej diody musimy przesłać 24 bity danych, to po uwzględnieniu czasu trwania impulsu Reset możemy wyliczyć, że łańcuch może mieć łączną długość ponad 1100 diod LED. W ten sposób można zbudować matrycę (ekran) RGB o rozdzielczości 32×32 piksele sterowany za pomocą pojedynczego wyprowadzenia mikrokontrolera!

Sposób sterowania diodami połączonymi w łańcuch jest bardzo dobrze opisany w nocie aplikacyjnej AN1606 udostępnionej przez firmę Microchip (http://goo.gl/sXPU2s). Oprogramowanie napisano w języku C, więc nie będzie trudności ze zrozumieniem, jak działa i ewentualnym przeniesieniem aplikacji na inny model mikrokontrolera.

To nie jest ostatnie słowo

Pomysłowe diody LED RGB opisane w artykule nie są jedynym produktem firmy WorldSemi. Oprócz nich firma wytwarza programowalne taśmy LED RGB oraz moduły złożone z kilku diod. Do ich budowy zastosowano takie same diody, jak opisywana w artykule, przykładowa WS2812, więc i metoda programowania będzie identyczna.

Wydaje mi się jednak, że z punktu widzenia inżyniera-konstruktora, którego zadaniem jest zbudowanie aplikacji, najbardziej interesujące są właśnie diody LED. Moduły lub taśmy bardziej przydadzą się integratorom systemów niż konstruktorowi.

Praktycznie każdą diodę WorldSemi można nabyć w dwóch wariantach wykonania: w obudowie białej (oznaczonej literą "S") lub czarnej (oznaczonej literą "B"). Te pierwsze przydają się zwłaszcza do zamontowania w systemach oświetlenia LED, w których zwykle diody umieszczane są na białym podłożu.

Te drugie są kapitalne do budowania wyświetlaczy informacyjnych, ekranów i innych, ponieważ płytkę drukowaną takiego urządzenia można pokryć czarną maską i na niej zamontować czarne diody. Po zamontowaniu takiej płytki za maskującym ją filtrem grafitowym (przyciemniana szyba) diody są praktycznie niewidoczne - obserwujący może zobaczyć jedynie wyświetlane przez nie obrazy lub znaki.

Transfer Multisort Elektronik Sp. z o.o.

Pozostałe artykuły

STM8S001J3 (1). Wprowadzenie. Pierwszy mikrokontroler STM8 w 8-nóżkowej obudowie

Numer: Październik/2017

Za sprawą układów STM32 firma STMicroelectronics stała się rozpoznawalna jako jeden z czołowych producentów mikrokontrolerów. Warto jednak zauważyć, że oprócz STM32 w ofercie STMicroelectronics znajduje się również inna rodzina mikrokontrolerów mająca w nazwie charakterystyczne "STM" - STM8. Do tej rodziny niedawno wprowadzono interesującą nowość ? układ w 8-nóżkowej obudowie. Jest to dobra okazja do bliższego przyjrzenia ...

Nowa generacja sterowników silników

Numer: Październik/2016

Nowa rodzina układów NovalithIC firmy Infineon zawiera układ scalony kontrolera oraz tranzystory MOSFET w pojedynczej obudowie. Dystrybutor produktów Infineona - firma Rutronik, spodziewa się, że otworzy to zupełnie nowy poziom wydajności oraz bezpieczeństwa sterowników silników.

Mikrokontrolery STM32 - który do czego? Porównanie wydajności

Numer: Październik/2016

Duża liczba dostępnych modeli mikrokontrolerów STM32 oraz wyposażanie ich w różne rdzenie powoduje, że konstruktorzy nie zawsze wiedzą, jaki model wybrać do swojej aplikacji. Postanowiliśmy wykonać serię autorskich testów, których celem było zmierzenie i porównanie wydajności różnych mikrokontrolerów w typowych zastosowaniach, jak również sprawdzenie wpływu różnych ustawień na czas wykonania programu. W artykule przedstawiamy ...

Układy zarządzania zasilaniem Maxim Integrated i Austria Micro Systems

Numer: Wrzesień/2016

...

Małe, panoramiczne wyświetlacze TFT-LCD

Numer: Sierpień/2016

Od kilku lat widać silny trend, w którego ramach alfanumeryczne i monochromatyczne graficzne wyświetlacze LCD są zastępowane kolorowymi ekranami graficznymi, wykonywanymi w technologii TFT-LCD lub OLED. Niestety, w wielu przypadkach użycie klasycznego wyświetlacza nowszego typu nie wchodzi w grę, gdyż proporcje wymiarów matryc zupełnie nie pasują do kształtu obudowy urządzenia. Sytuacja ta właśnie ulega zmianie, gdyż na rynku pojawiło ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

Listopad 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym