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

Przetwornice o ekstremalnie małym poborze mocy

Numer: Grudzień/2015

Projektując urządzenia elektroniczne inżynierowie muszą coraz bardziej wytężać umysły, aby spełnić wymagania najnowszych norm, takich jak Energy Star, dotyczących całkowitego poboru mocy w trybach aktywnym i czuwania urządzenia. Z pomocą przychodzi firma Power Integrations, która niedawno zaprezentowała nową rodzinę scalonych przetwornic przeznaczonych do zasilania urządzeń w trakcie spoczynku lub do realizacji systemów ...

Diody LED o bardzo dużej mocy. Platforma CREE SC5 rewolucjonizuje systemy oświetlenia

Numer: Grudzień/2015

Diody LED mocy na dobre zagościły w systemach oświetlenia na całym świecie. Producenci nauczyli się wytarzać dobrej jakości zamienniki żarówek, tworzyć reflektory i radzić sobie z różnymi trudnościami, jakie pojawiają się, gdy używa się wielu diod LED mocy, by wyprodukować taką "żarówkę" o odpowiednio dużym strumieniu świetlnym. Firma CREE, jeden z pionierów w dziedzinie LED-ów mocy, postanowiła zupełnie ...

FRAM w natarciu - zestaw z MSP430FR4133

Numer: Grudzień/2015

Pomimo zalewu mikroprocesorów opartych na rdzeniu Cortex-M, firma Texas Instruments konsekwentnie rozwija własne rozwiązania 16-bitowe. Do opisanego w EP 7/14 zestawu z mikrokontrolerem MSP430FR5969 z pamięcią FRAM niedawno dołączył kolejny, z MSP430FR4133.

PSoc4247 - PSoC 4M na maksa

Numer: Grudzień/2016

Firma Cypress konsekwentnie rozwija ofertę układów SoC z rdzeniem Cortex M0. Po wprowadzeniu budżetowych procesorów z serii PSoC4000, rozbudowy doczekała się także rodzina PSoC424xM. Równocześnie do oferty został wprowadzony zestaw uruchomieniowy CY8CKIT-043 pozwalający na zapoznanie się z możliwościami najlepiej wyposażonego przedstawiciela rodziny ? CY8C4247.

8-bitowa kontrofensywa (2)

Numer: Grudzień/2016

Firma Microchip, jeden z największych na świecie graczy w obszarze projektowania i produkcji mikrokontrolerów, wymyślił strategię, dzięki której użytkownicy poszukujący nieskomplikowanych mikrokontrolerów chętnie sięgną po 8-bitowe, sprawdzone mikrokontrolery PUC. Zastosowano pomysłowe połączenie starego, ale sprawdzonego i bardzo popularnego rdzenia PIC16 z nietypowymi, nowatorskimi peryferiami, pracującymi niezależnie od rdzenia ...

Mobilna
Elektronika
Praktyczna

Elektronika Praktyczna

 2017

PrenumerataePrenumerataKup w kiosku wysyłkowym

Elektronika Praktyczna Plus

lipiec - grudzień 2012

Kup w kiosku wysyłkowym