Ekspander 7-segmentowego wyświetlacza LCD

Ekspander 7-segmentowego wyświetlacza LCD

Prezentowany wyświetlacz – w porównaniu z tymi z tokijskiej dzielnicy Shibuya lub nowojorskiego Time Square – prezentuje się raczej skromnie, można powiedzieć nawet „szaro”, prześcigając konkurentów jedną tylko zaletą, jaką jest niewielki pobór prądu. Czasem jednak właśnie ta jedna cecha czyni go bezkonkurencyjnym w zastosowaniach, w których inne wyświetlacze (nawet superkolorowe i o wysokiej rozdzielczości) nie zdają egzaminu. Omówiony w artykule minimoduł ze sterownikiem czterocyfrowego wyświetlacza segmentowego LCD z magistralą I²C okazuje się przydatny, gdy zastosowany procesor nie ma wbudowanego kontrolera LCD, a zależy nam na wyświetleniu niewielkiej ilości informacji przy maksymalnym ograniczeniu poboru mocy. Moduł jest zgodny Raspberry Pi Pico, STM32, Arduino i nie tylko...

Podstawowe parametry:
  • konstrukcja oparta na układzie PCA8561A,
  • niewielki pobór prądu: 4,5 μA przy odświeżaniu 32 Hz, 1 μA przy wyłączonym wyświetlaczu,
  • napięcie zasilania: 3...5 V,
  • wbudowany 7-segmentowy, 4-pozycyjny ekran LCD.

Komunikacja z użytkownikiem nie zawsze wymaga „dużych” wyświetlaczy graficznych, w wielu przypadkach sprawdzi się prosty, siedmiosegmentowy wyświetlacz LED. Cechuje się on jednak znacznym poborem mocy. Gdy zależy nam na oszczędnym gospodarowaniu energią, warto przemyśleć zastosowanie znakowego ekranu LCD, a gdy dodatkowo poszukujemy rozwiązania o niewielkich rozmiarach, pozostają do wyboru tylko wyświetlacze multipleksowane. Wybór mikrokontrolerów z wbudowanym sterownikiem LCD jest ograniczony, sam interfejs zajmuje sporą liczbę wyprowadzeń, a nie zawsze chcemy rezygnować z własnych preferencji co do wyboru mikrokontrolera. Wtedy z pomocą przychodzą zewnętrzne układy driverów LCD, m.in. zastosowany w module PCA8561A, którego strukturę wewnętrzną ukazano na rysunku 1.

Rysunek 1. Budowa wewnętrzna PCA8561A (za notą NXP)

PCF8561A zawiera układ drivera i polaryzacji wyświetlacza LCD pracującego w trybie multipleksowym, umożliwiając wysterowanie do 18 segmentów (SEG) z maksymalnie czterema elektrodami wspólnymi (COM). Układ obsługuje tryb statyczny i multipleksowany 1:2/3/4 wraz z generowaniem napięcia zasilającego elektrody wspólne. PCA8561A ma wbudowany generator taktujący, układ resetu POR, rejestry pamięci przechowujące kształt wyświetlanego znaku oraz – oczywiście – kontroler interfejsu I²C 400 kHz. Dostępna jest też wersja PCA8561B z łączem SPI.

Schemat układu pokazano na rysunku 2. Układ U1 taktowany jest wbudowanym generatorem, magistrala I²C doprowadzona została do złącza I²C zgodnego ze standardem QWIIC. Zwora A0 umożliwia wybór adresu 0x38/0x39, pod którym widoczny jest moduł na magistrali, co umożliwia zastosowanie nawet dwóch wyświetlaczy na wspólnej szynie komunikacyjnej. Sam układ pozwala na przypisanie czterech adresów poprzez zmianę stanów wyprowadzeń A0, A1 (przy czym wyprowadzenie A1 nie zostało użyte w modelu). Układ wymaga zasilania 3...5 V; wbudowany w U1 układ resetu POR, aktywowany stanem wysokim wyprowadzenia PORE, zapewnia prawidłowy restart po włączeniu zasilania. Wbudowany stabilizator U2 zapewnia zasilanie 2,5 V ekranowi LCD i jest ono niezależne od napięcia zasilającego U1, co gwarantuje elastyczność aplikacji. Napięcie 2,5 V oferuje wystarczająco dobrą czytelność i margines zasilania dla LDO. Można też zastosować stabilizator o napięciu 2,8 V w celu zwiększenia kontrastu wyświetlacza. Do wyprowadzeń SEG0..7 podłączone są segmenty ekranu LCD, natomiast elektrody wspólne wyprowadzono na linie COM0..3. Model współpracuje z miniaturowym wyświetlaczem S401M16KR, umożliwiającym wyświetlenie czterech cyfr siedmiosegmentowych o wysokości 4,4 mm, wraz z przecinkami i dwukropkiem zegarowym.

Rysunek 2. Schemat ideowy układu

Układ zmontowany został na niewielkiej dwustronnej płytce drukowanej, rozmieszczenie elementów pokazano na rysunkach 3a i 3b. Montaż jest typowy i nie wymaga opisu. Podczas prac montażowych należy zachować wymogi ESD, gdyż układ PCF i wyświetlacz mogłyby zostać uszkodzone ładunkami statycznymi. Przed przylutowaniem wyświetlacza warto ustalić mechanicznie jego położenie za pomocą paska samoprzylepnej, dwustronnej taśmy piankowej.

Rysunek 3. Rozmieszczenie elementów na płytce modułu (a – strona TOP, b – strona BOTTOM)

Zmontowany moduł zaprezentowano na fotografii tytułowej.

Sterowanie wyświetlaczem odbywa się poprzez rejestry układu PCA8561A, mapę rejestrów pokazano na rysunku 4.

Rysunek 4. Mapa rejestrów PCF8561A (za notą NXP)

Układ ma cztery rejestry sterujące pod adresami 0x00...0x03 i 12 rejestrów przechowujących kształt wyświetlonego znaku przypisanego do elektrody wspólnej 0x04...0x0F. W przypadku wyświetlacza S401 tryb multipleksowania oraz napięcia elektrod (MUX=1:4, BIAS=1/3) odpowiadają ustawieniom domyślnym PCA8561A. Aby uruchomić wyświetlanie, wystarczy określić częstotliwość odświeżania z zakresu 32 Hz...256 Hz: FF[2:0] domyślnie 64 Hz, załączyć oscylator OSC w rejestrze kontrolnym Device_Ctrl_1(0x02), skonfigurować tryb pracy podłączonego wyświetlacza: BOOST, MUX[1:0], B(BIAS) w rejestrze kontrolnym Device_Ctrl_2(0x03) oraz aktywować sterownik DE w rejestrze Display_ctrl_1(0x02). Dodatkowo można zastosować tryb automatycznego migania BL[1:0] w zakresie 0,5 Hz...2 Hz oraz określić tryb sterowania kompensujący składową stałą INV (linia/ramka). Szczegółowy opis rejestrów zamieszczono w karcie katalogowej PCA8561A.

Do sterowania segmentami LCD użyte zostały rejestry COM0..3, w związku z użyciem wyprowadzeń SEG0..7, aktywne są tylko rejestry pod adresami 0x04, 0x07, 0x0A, 0x0D. Przypisanie fizycznych segmentów LCD pokazano w tabeli 1.

Moduł LCD nie wymaga uruchamiania. W celu szybkiego sprawdzenia zmontowaną płytkę można podłączyć do Raspberry Pi lub Arduino. Adres bazowy ustalony zworą A0 określony jest na 0x38, co w przypadku Raspberry można sprawdzić poleceniem:

i2cdetect -y 1

którego wynik działania pokazano na rysunku 5.

Rysunek 5. Detekcja układu PCA8561A

Jeżeli układ jest dostępny na magistrali, możemy określić parametry wyświetlania (MUX, BIAS, BL) w rejestrach konfiguracyjnych:

i2cset -y 1 0x38 0x01 0x00
i2cset -y 1 0x38 0x02 0x01
i2cset -y 1 0x38 0x03 0x00

oraz wysterować w celu sprawdzenia wszystkie segmenty LCD:

i2cset -y 1 0x38 0x04 0xFF
i2cset -y 1 0x38 0x07 0xFF
i2cset -y 1 0x38 0x0A 0xFF
i2cset -y 1 0x38 0x0D 0xFF

można też wypróbować tryb migania:

i2cset -y 1 0x38 0x03 0x06

Wszystkie polecenia jesteśmy w stanie wykonać skryptem pca8561a.sh z listingu 1 lub szkicem PCA8561A.ino z materiałów dodatkowych.

#!/bin/bash
#PCA8561A test
echo "PCA8561 Test – 8.8:.8.8 blink"
i2cset -y 1 0x38 0x01 0x00
i2cset -y 1 0x38 0x02 0x01
i2cset -y 1 0x38 0x03 0x06
i2cset -y 1 0x38 0x04 0xFF
i2cset -y 1 0x38 0x07 0xFF
i2cset -y 1 0x38 0x0A 0xFF
i2cset -y 1 0x38 0x0D 0xFF
sleep 2
echo "PCA8561 Test – 12:45"
i2cset -y 1 0x38 0x03 0x00
i2cset -y 1 0x38 0x04 0xC4
i2cset -y 1 0x38 0x07 0xA6
i2cset -y 1 0x38 0x0A 0x7E
i2cset -y 1 0x38 0x0D 0xD8
echo "Quit"

Listing 1. Skrypt testowy PCA8561A

Efekt działania skryptu pokazano na fotografii 1.

Fotografia 1. Test wyświetlacza

Podczas testów pobór prądu modułu zasilanego napięciem 3,3 V, w którym wysterowano wszystkie segmenty, wynosił poniżej 4,5 μA przy odświeżaniu 32 Hz – wzrastając do 6,5 μA przy częstotliwości odświeżania 256 Hz. W trybie wyłączonego wyświetlania (DE=0) wynosił poniżej 1 μA, co sprowadza się praktycznie do prądu spoczynkowego stabilizatora U2. Niskie pobory prądu pozwalają zasilać wyświetlacz z niewielkiej baterii przez długi czas.

Jeżeli wszystko działa poprawnie, można moduł zastosować we własnej aplikacji. Powodzenia!

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD 0402)
  • R1, R2: 10 kΩ
Kondensatory: (SMD 0402, X7R, 10 V)
  • C1: 100 nF
  • C2, C3: 1 μF
Półprzewodniki:
  • U1: PCA8561AHN (QFN32_050)
  • U2: AP2138N-2.5TRG1 (SOT-23)
Pozostałe:
  • LCD: wyświetlacz LCD, typ S401M16KR
  • I²C: złącze JST 1 mm
Artykuł ukazał się w
Elektronika Praktyczna
czerwiec 2024
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik listopad 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna listopad 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów