
W poprzedniej części opisałem zasadę działania i podstawy sterowania wyświetlaczy VFD, w tej części przejdę do praktycznych działań

• Wyświetlacz (PCB przedniego panelu) NBOX

Jak widzimy na powyższym zdjęciu mamy do czynienia z wyświetlaczem 1x16 znaków + dodatkowe kursory pod każdym znakiem. Widoczny transformator to element przetwornicy zapewniający napięcia żarzenia oraz ujemne napięcie dla sterownika. Elementy dodatkowe (również możliwe do wykorzystania) to odbiornik podczerwieni, cztery diody LED oraz dziewięć mikroswitchy. Sam panel występuje w dwóch wersjach, jedna z wyświetlaczem LED 4x7 segmentów oraz z wyświetlaczem VFD (ta nas interesuje). Wspólnym dla obu wersji jest układ PT6958 zajmujący się obsługą klawiatury oraz wyświetlacza i kontrolek LED.
Druga strona PCB wszystko wyjaśnia;

Jeśli nie planujemy użycia klawiatury, odbiornika IR czy kontrolek LED możemy śmiało pozbyć się ich z PCB. Zmniejszy to prąd pobierany z zasilania i można też pokusić się o zmniejszenie PCB jeśli wymiary mają znaczenie w naszej konstrukcji. W przypadku tego wyświetlacza jesteśmy w tej dobrej sytuacji że schemat NBOXa jest dostępny co ułatwi nam podłączenie;

Ze schematu dowiadujemy się że aby go uruchomić potrzebujemy podłączyć jedynie 5 linii z czego dwie to zasilanie (+5V i GND) oraz trzy linie sygnałowe (CS/ Data/ Clk/);

Poniżej oznaczone sygnały na PCB;

Do testów użyłem "dyżurnego" Arduino Uno programowanego przez USBasp w BascomAVR;

Aby zacząć próby uruchomienia wyświetlacza warto zapoznać się z notą katalogową drivera PT6302 (nota w załączniku) co pozwoli nam zrozumieć jego budowę wewnętrzną i sposób sterowania;

8-bit shift register - 8-mio bitowy rejestr przesuwający zamieniający dane z szeregowych na równoległe
Command decoder - dekoder poleceń
Control circuit - układ kontrolny
Timing generator 1 - generator odpowiednich przebiegów sterujących 1
Timing generator 2 - jak wyżej 2
Oscillator - generator przebiegu zegarowego
Adress selektor - przełącznik adresów
Write adress counter - licznik adresu zapisu
Read adress counter - licznik adresu odczytu
Digit control - kontroler znaku
Duty control - sterownik PWM odpowiadający za poziom jasności
I w sumie najważniejsze;
DCRAM - pamięć RAM zawierająca kod (ASCII) znaku do wyświetlenia
CGROM - pamięć ROM zawierająca generator znaków
CGRAM - pamięć RAM gdzie umieszczamy zdefiniowane "własne" znaki
ADRAM - pamięć RAM pozwalająca sterować dodatkowymi wyjściami AD1 i AD2 (tu AD1 wykorzystano dla dodatkowych kursorów)
Segment driver - bufor wyjściowy segmentów (pikseli) 35 wyjść dla znaku 5x7 punktów
AD driver - bufor wyjściowy dodatkowych wyjść AD1 i AD2 (AD1 to dodatkowy kursor pod każdym znakiem w NBOXie)
Port driver - bufor wyjściowy (niskonapięciowy) dla sterowania np. dodatkowymi LED
Grid driver - bufor wyjściowy siatek (znaków)
Aby zmusić kontroler/driver do współpracy warto poznać sposób transmisji i rozkazy sterujące;

Komendy sterujące pozwoliłem sobie przetłumaczyć na nasz rodzimy język;

Generator znaków zawiera wszystkie niezbędne symbole a jeśli potrzebujemy dodatkowych to definiujemy je w ośmiu najmłodszych komórkach. Zawartość generatora różni się od wersji układu, tu dla PT6302-001 stosowanego w NBOXie (szczegóły w DS PT6302);

W dużym uproszczeniu aby zmusić kontroler do współpracy powinniśmy go zainicjować, czyli przed wyświetleniem czegokolwiek wysłać do niego komendy konfiguracyjne zależnie od obsługiwanego wyświetlacza VFD i układu połączeń. Pokażę to w BascomAVR ponieważ go lubię a innych języków programowania dopiero się uczę. Zasada jest taka sama; najpierw konfiguracja a później dane do wyświetlenia. W jednym z rysunków pokazałem przebiegi sterujące magistralą dla kontrolera, widać z nich że aby kontroler odebrał dane musimy ustawić stan niski na wejściu CS/ (STB/) a następnie wygenerować sygnał CLK (Zegar) i szeregowo przesłać dane gdzie najmniej znaczący bit jest pierwszy (LSB first).
W BascomAVR idealnie nadaje się do tego komenda Shiftout (zaczerpnięte z helpa w wersji PL);

Dla PT6302 musimy wybrać opcję 3;

Można oczywiście skorzystać ze sprzętowego SPI mi jednak ta funkcja przypadła do gustu dlatego że daje możliwość wykorzystania dowolnych GPIO do sterowania. Jedynie pinem CS/ musimy sterować "zewnętrznie" co też daje nam możliwość komunikacji z kilkoma kontrolerami VFD.
Długo by tłumaczyć poszczególne kroki, nie mniej po około dwutygodniowych próbach powstał taki "driver";
Code: vbnet
Oraz przykładowy program demo dla Arduino UNO w BascomAVR;
Code: vbnet
Oraz film z działania "dema" (założyłem na wyświetlacz filtr w celu poprawienia czytelności);
Chciałem pokazać jeszcze jak wygląda multipleksowanie wyświetlacza ale niestety mój sprzęt nie bardzo sobie radził przy 120kl/s. Musiałem nagrać w 4k/120kl/s i troszkę popracować. Też nie bardzo (taktowanie wyświetlacza zmniejszone z 244 kl/s na około 15kl/s) ale mniej więcej wiadomo o co chodzi;
Demo dla ArduinoUNO napisane przez Andrzeja @And! na podstawie moich "wypocin" w BascomAVR. Dziękuję!
Code: c
Oraz film z działania;
• Identyfikacja wyprowadzeń nieznanego wyświetlacza
To jest największy problem. Do większości wyświetlaczy pochodzących z fabrycznych urządzeń noty katalogowe nie są dostępne, wynika to z tego że te wyświetlacze są produkowane pod konkretne urządzenie i tylko producent urządzenia(i wyświetlacza) dysponują pełnymi danymi tegoż.
Najważniejsze dane wyświetlacza czyli układ wyprowadzeń możemy w miarę szybko ustalić, pokażę to na przykładzie wyświetlacza Futaba FV821NA pochodzącego z amplitunera kina domowego firmy LG;

Jest to wyświetlacz o odmiennej od typowych konstrukcji, gdzie siatki i katoda(grzałka) są umieszczone po przeciwnej stronie wyświetlacza.
W celu łatwiejszego dostępu wyświetlacz umieściłem na płytce stykowej. Najłatwiejsze do identyfikacji będą wyprowadzenia katody(grzałki) z racji tego że ze względów konstrukcyjnych są najczęściej umieszczane jako skrajne. Dla potwierdzenia mierzymy opór między nimi;

Zmierzony opór to około 6 Ω;

Teraz musimy ustalić parametry prądowo/napięciowe grzałki katody. Przyda się do tego zasilacz regulowany (nawet najprostszy) o napięciu 3-6V i wydajności prądowej rzędu kilkudziesięciu- kilkuset mA(większość wyświetlaczy z którymi miałem styczność). Wskaźnikiem poprawnego zasilania grzałek katody będą nasze własne oczy, zwiększając napięcie zasilania od zera obserwujemy napinacze grzałek. W stanie spoczynku (bez zasilania) są wygięte przez naprężone druciki grzałek, po podaniu napięcia pod wpływem rozszerzalności cieplnej grzałki się wydłużają a napinacze prostują;
Na powyższym filmie widać ruch napinaczy pod wpływem zwiększania długości grzałek. Dla tego wyświetlacza zmierzony prąd żarzenia to około 130mA;

Powinniśmy też zobaczyć lekkie żarzenie rozgrzanych grzałek. Podczas normalnej pracy powinno być minimalne;

Aparat w telefonie miał problemy ze złapaniem ostrości w słabym oświetleniu. Skoro już znamy parametry prądowo-napięciowe to przygotowujemy sobie drugi zasilacz o napięciu około 12VDC z włączonym szeregowo w dodatni biegun rezystorem 1-10k (dla bezpieczeństwa). Oba zasilacze łączymy minusami razem, włączamy zasilacze (najpierw zasilający żarzenie) i przewód plusowy 12VDC rozdzielony na dwa przykładamy do przypadkowych nóżek wyświetlacza. Jeśli dopisało nam szczęście i od razu trafiliśmy na anodę i siatkę to powinien pokazać się jakiś symbol na wyświetlaczu (segment cyfry czy znak graficzny);

No fajnie, coś się świeci


Jeśli zaświeci się ten sam segment w innym znaku to będzie segment;

Ogólnie zasada identyfikacji wyprowadzeń jest taka sama jak w przypadku nieznanego wyświetlacza LED, tylko tu mamy jedynie anody/siatki.
Możemy sobie przygotować tabelkę i odpowiednio wpisywać oznaczenia wyprowadzeń segmentów. Dawno temu rysowałem rozkład graficzny wyświetlacza na kartce papieru i na każdym segmencie/znaku graficznym w stylu A1, B2 gdzie cyfra to pozycja znaku(siatka) a litera(segment/anoda) to nazwa segmentu w/g ogólnie przyjętej nomenklatury;



Powyższe rysunki przedstawiają oznaczenia literowe dla najczęściej spotykanych wyświetlaczy 7-mio, 14-to i 16-to segmentowych. DP (z ang. Decimal Point) to punkt dziesiętny (przecinek). Oczywiście musimy sprawdzać połączenia aż ustalimy wszystkie wyprowadzenia. Mi w trakcie "badania" tego VFD przypomniało się że powinienem mieć serwisówkę do tego sprzętu, i faktycznie ją znalazłem


Oznaczenia są nieco inne niż się spodziewałem, siatki to 1G-11G a segmenty P1-P15

Kilka popularnych driverów wyświetlaczy VFD;
UCN5810 - 10 wyjść transmisja szeregowa, możliwość kaskadowego łączenia (nowszy model to HV6810)
MAX6921 - 20 wyjść transmisja szeregowa, możliwość kaskadowego łączenia
UDN6118 - 8 wyjść, bufor napięciowy
SN75480 - 7-mio segmentowy dekoder/driver kompatybilny z TTL 7447, może sterować również lampy NIXIE
MSC1937-01 - 16-to cyfrowy driver/kontroler z wbudowanym generatorem znaków dla wyświetlaczy 14/16-to segmentowych
NJU3426 - 16-to segmentowy 14-to cyfrowy driver/kontroler bez generatora znaków
PT6301 - 2x20 znaków alfanumerycznych (5x7 pikseli) dla wyświetlaczy CiG (chip in glass, kontroler w "bańce" wyświetlacza) z generatorem znaków
PT6302 - 1x16 znaków alfanumerycznych z wbudowanym generatorem znaków
PT6305 - 48-mio bitowy bufor/driver HV (uniwersalny bez generatora znaków)
PT6306 - 64-ro bitowy bufor/driver HV (uniwersalny bez generatora znaków)
PT6311 - uniwersalny bufor/driver z obsługą klawiatury i dodatkowego portu
PT6312 - uniwersalny bufor/driver z obsługą klawiatury i dodatkowego portu
PT6313 - bufor/driver dla wyświetlaczy 7-mio segmentowych z obsługą klawiatury
PT6314 - driver/kontroler dla wyświetlaczy alfanumerycznych max. 24x2 (5x8 pikseli), sterowanie uniwersalne(4/8-mio bitowe równoległe, lub szeregowe). Najprawdopodobniej kompatybilny z HD44780
PT6315 - uniwersalny driver/kontroler max. 24 segmenty/4 cyfry bez generatora znaków, obsługa klawiatury
M66004FP - driver/kontroler dla wyświetlaczy alfanumerycznych 16x1 (5x7 pikseli) z generatorem znaków
Nie są to wszystkie z produkowanych/dostępnych kontrolerów/driverów. Można oczywiście zbudować własny driver HV i sterować go mikrokontrolerem ale po co wyważać otwarte drzwi? Stosując dedykowany kontroler wyświetlacza nie musimy się przejmować zależnościami czasowymi czy generatorem znaków (w przypadku kontrolera posiadającego taki "na pokładzie") i odciąża nam to mikrokontroler a jego zasoby możemy przeznaczyć na inne rzeczy. Szczegóły sterowania w/w driverów/kontrolerów można znaleźć w DS dostępnych w internecie. Zachęcam do eksperymentów i prób z wyświetlaczami VFD, ich zastosowanie we własnoręcznie budowanych urządzeniach na pewno doda im uroku.
Życzę Wszystkim Użytkownikom na nadchodzący Nowy Rok Zdrowia przede wszystkim i wielu udanych konstrukcji!
Do Siego Roku!
ArturAVS
Pierwsza część artykułu o wyświetlaczach VFD; https://www.elektroda.pl/rtvforum/topic3757971.html
Trzecia część; https://www.elektroda.pl/rtvforum/viewtopic.php?p=19459767#19459767
Załączniki, nota PT6302, schemat panelu NBOXa oraz pliki demo dla BascomAVR oraz ArduinoIDE;
Cool? Ranking DIY