PCA9530 i inne dimmer LED

Twoja opinia, jest ważna dla mnie!

Bardzo ciekawe, zarazem proste w obsłudze, oraz wygodne w użyciu, mógłbym tak długo … Generalnie chodzi mi o rodzinę układów scalonych będącymi „sterownikami PWM” do obsługi źródeł światła LED, lub po prostu samych LED itp. Generalnie zostały zaprojektowane przez producenta jako I/O expander, zoptymalizowane do dimmer LED.

Kiedyś dla odciążenia/uproszczenia kodu, który pisałem dla µC AT89C2051, postanowiłem zapoznać się z  fajnym układem PCA9530D (NXP Semiconductors), który to jest: 2-bit LED dimmer 25mA, I²C, 2.3/5.5V DC. Jest na tyle sympatyczny i prosty do nauczenia, że będąc wtedy początkującym, „rozkminiłem” go stosunkowo szybko. Był to koniec 2012 roku, zdaje się sierpień.

dimmer w układzie na płytce stykowej

dimmer w układzie na płytce stykowej

Wracając do tematu, układ jest przystosowany do bezpośredniego sterowania diodami LED prądem do 25mA na pin dzięki wyjściom „open-drain”. Częstotliwość PWM na wyjściu jest większa od 100Hz w związku z czym nie zobaczymy mrugania.
Scalak posiada wejście adresowe A0, dwa piny GPIO będące też wyjściami do sterowania LED, dwa piny do obsługi standardowej magistrali I²C (SDA i SCL), pin RESET (active LOW) i piny „zasilające” Vss oraz Vdd. Układ może pracować w zakresie napięć od 2,3V do 5,5V. Jego magistrala I²C pracuje do częstotliwości 400kHz. Wypełnienie przebiegu prostokątnego (jasność świecenia) na wyjściu można kontrolować w 256 krokach, a częstotliwość (mruganie) uzależniona jest od ustawień preskalera, oba parametry indywidualnie dla każdego z kanałów. Dzięki takim możliwością sterowana dioda LED może świecić z ustawioną jasnością, mrugać lub być wyłączona. Po użyciu sygnału reset, LED pozostaje w stanie OFF. Ciekawostką jest to, że układ ma wsparcie dla „hot insertion” czyli do działającego układu można podłączać LEDy bez obawy na uszkodzenie czegokolwiek, oraz to, że układ ma funkcję power-on reset. Dodatkowo pin nie używany do sterowania LED może z łatwością zostać wykorzystany jako GPIO.

Gdy chcemy taki pin wykorzystać jako wejście, ustawiamy go w stan wysokiej impedancji (00), po czym można odczytywać jego stan z rejestru input. Natomiast gdy ma być sterowany jako wyjście, należy zastosować odpowiedni rezystor pull-up. Stan wysoki otrzymamy ustawiając wysoką impedancję przez rejestr „LED selektor”, a stan niski ustawiając na tym wyjściu logiczne zero. Akurat z tej funkcjonalności nie korzystałem.
Układ może występować w różnych wersjach różniących się ilością wyprowadzeń do sterowania LED. I tak np:
PCA9530 – 2 wyjścia,
PCA9531 – 8 wyjść,
PCA9532 – 16 wyjść,
PCA9533 – 4 wyjścia.

Sterowanie czy ustawianie funkcjonalności odbywa się dzięki sześciu rejestrom:
INPUT – Input register
używamy gdy korzystamy z funkcjonalności GPIO,
PCS0 – Frequency Prescaler 0
określa szybkość migania kanału 0, z nastawioną jasnością PWM0,
PWM0 – Pulse Width Modulation 0
określa jasność świecenia kanału nr 0,
PCS1 – Frequency Prescaler 1
określa szybkość migania kanału 1, z nastawioną jasnością PWM1,
PWM1 – Pulse Width Modulation 1
określa jasność świecenia kanału nr 1,
LS0 – LED selector
określa stan LEDa, wpisanie 00 ustawia na wyjściach stan wysokiej impedancji – LED off – nastawa domyślna; wpisanie 01 ustawia na wyjściach stan niski – LED on; wpisanie 10 uaktywnia świecenie/mruganie LED0 z jasnością określoną przez PWM0; wpisanie 11 analogicznie dla kanału drugiego.

podstawowy schemat zastosowania dimmera

podstawowy schemat zastosowania dimmera

Dla aplikacji, które mają być energooszczędne przy zasilaniu ze wspólnego źródła producent zaleca stosowanie rezystora o dużej wartości równoległego do LED , lub aby napięcie zasilające LED było wyższe o co najmniej 1,2V niż napięcie zasilające USC. Szczegóły na stronie 10 załączonej noty. Na kolejnej stronie jest „pięknie” przedstawiony sposób programowania zamierzonych zachowań wyjść. Myślę że opis nie wymaga dodatkowego komentarza. Programowanie i obsługa jest jeszcze prostsza przy uaktywnieniu flagi Auto-Increment podczas adresowania „control register” i sprowadza się da zapisu na szynę i²C wybranych wartości.

A.D. 2015-02-10 Trochę już czasu upłynęło, odkąd powstał ten artykuł. Kilka dni temu trafiłem na prawdziwy kombajn związany z tematem i postanowiłem o nim wspomnieć ;-Dmoduł z PCA9685PCB zawiera układ scalony PCA9685, o funkcjonalności: 16-channel, 12-bit PWM I2C-bus LED controller. Wooww ;-D
Fotka pochodzi z internetowej wyszukiwarki.


Nota katalogowa PCA9530.pdf (4171 pobrań )
Nota katalogowa PCA9533.pdf (4145 pobrań )

Otagowano , , , , , , , , .Dodaj do zakładek Link.

3 odpowiedzi na „PCA9530 i inne dimmer LED

  1. Olo komentarz:

    400kHz nie MHz
     

  2. Pikczu komentarz:

    Dobrych parę lat temu popełniłem bibliotekę do podobnego „migacza”.

    Można ja znaleźć na forum u kolegi Bartka w dziale biblioteki

    https://bart-projects-forum.cba.pl/viewtopic.php?f=13&t=7

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

dwadzieścia − szesnaście =

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.