[PROJEKT] KA-NUCLEO-F411CE i Waveshare Accessory Shield – obsługa diody RGB i sterownika P9813

Ekspander Waveshare Accessory Shield zawiera wiele komponentów, dzięki którym możemy zapoznać się z technikami programowania peryferiów mikrokontrolera. Na płytce ekspandera znajdziemy następujące elementy:

  • 5-pozycyjny joystick
  • potencjometr
  • głośnik
  • dioda RGB sterowana poprzez układ P9813
  • czujnik temperatury LM75BDP o rozdzielczości 0,125℃
  • 3-osiowy akcelerometr ADXL345
  • wyświetlacz OLED o przekątnej 0,96 cala, rozdzielczość 128×64
  • zegar RTC DS3231

Rys. 1. Ekspander Waveshare Accessory Shield

W tym przykładzie zajmiemy się oprogramowaniem sterownika diod LED RGB – P9813.

Sterownik P9813

Układ P9813 jest sterownikiem diod LED zapewniający prąd o stałej wartości dla każdego z trzech kanałów, a co za tym idzie dla każdej z diod LED w diodzie RGB. Interfejs komunikacyjny sterownika oparty jest na dwóch liniach: CIN i DIN, co sprawia że nie potrzebuje on zbyt wielu zasobów mikrokontrolera do pracy. Układ może być zasilany napięciem z zakresu 5…6,5 V i ma wbudowany regulator LDO obniżający napięcie do wartości 4,5 V. Napięcie z regulatora dostępne jest na pinie VOUT. Prąd każdego z trzech kanałów RGB jest regulowany za pomocą rezystora podłączanego do wejścia R-EXT. Prąd regulowany jest w zakresie 0..45 mA na kanał.

Interfejs komunikacyjny

Jak już wcześniej wspomniałem interfejs komunikacyjny składa się z dwóch linii: CIN oraz DIN.

Pierwsza z nich (CIN) jest sygnałem zegarowym, którego szerokość impulsu, zarówno w stanie wysokim, jak i w stanie niskim, powinna wynosić powyżej 30 ns. Zdeterminowane jest to maksymalną częstotliwością pracy układu wynoszącą 15 MHz. Pełny zakres częstotliwości pracy układu wynosi 0…15 MHz. W naszym przykładzie pełny okres sygnału zegarowego wynosić będzie 70 us (35 us na stan niski i 35 us na stan wysoki). W efekcie uzyskana częstotliwość pracy układu wyniesie 14,285 kHz.

Na drugiej linii interfejsu komunikacyjnego (DIN) występuje sygnał szeregowego przesyłania danych o kolorze diody RGB. Układ P9813 ma dwa dodatkowe wyjścia oznaczone jako COUT i DOUT. Umożliwiają one podłączenie szeregowe kolejnego sterownia z diodą RGB i w efekcie stworzenie łańcucha diod, w którym każda dioda jest sterowana osobno.

Stan linii danych sprawdzany jest na każdym zboczu narastającym sygnału zegarowego. Dlatego w pierwszej kolejności musi zostać ustawiona wartość sygnału DIN a następnie po niej, wykonana sekwencja sygnału zegarowego.

Protokół komunikacyjny

Protokół komunikacyjny jest podzielony na bloki 32-bitowe. Na samym początku komunikacji są wysyłane 32-bity zerowe, oznaczające początek transmisji. Po nich następują 32 bity danych. Blok danych podzielony jest na 4 dane, 8-bitowe: prefix, wartość koloru niebieskiego (0…255), wartość koloru zielonego (0…255) i wartość koloru czerwonego (0…255).

Prefix ramki danych składa się z dwóch bitów o wartości „1”, które stanowią najstarsze bity. Następnie podawane są po dwa najstarsze bity każdego koloru w notacji BGR i dodatkowo każdy z nich jest zanegowany. Protokół komunikacyjny układu P9813 prezentuje rysunek 2.

 

1
Rys. 2. Ramka danych i protokół komunikacyjny układu sterownika P9813

Do pobrania

O autorze