Wygląd zewnętrzny wyświetlacza
Działanie wyświetlacza
Wyświetlacz VFD DSP

Charakterystyka wyświetlacza
Wyświetlacz wykonany jest w technologii VFD (Vacuum Fluorescent Display). Posiada 40 pól (2 linie po 20 pól) alfanumerycznych. Potrafi wyświetlać większość znaków z tablicy ASCII.

TUTAJ można zobaczyć, jak działa taki wyświetlacz w akcji (YouTube).

Parametry techniczne:
zasilanienapięcie5V DC
natężenieok. 0,4A
wymiary całkowitewysokość77mm
szerokość198mm
grubość29mmm
wymiary lampy próżniowejwysokość48mm
szerokość175mm
grubość10mm
rozstaw otworów montażowychw pionie60mm
w poziomie189mm
rozmiar znakuwysokość11mm
szerokość6mm
komunikacjaRS-232
parametry komunikacjibaud rate9600 bps
kontrola przepływubrak
ilość bitów danych8
ilość bitów stopu1
parzystośćbrak
napięcie+/- 10V (RS-232!)

Wyświetlacz posiada na płytce drukowanej złącze RJ45 do podłączenia do terminala bądź PC. Złączem tym poprowadzone jest zarówno zasilanie jak również transmisja danych. Złącze posiada 10 kontaktów, ale stosuje się do niego przewód z wtyczkami z 8 kontaktami. Przy takiej konfiguracji znaczenie każdego z kontaktów jest następujące:

nr pinuznaczenie
15V DC
2nie podłączać
3RX - do wyświetlacza
4nie podłączać
5GND
6TX - z wyświetlacza
75V DC
8GND
Podłączenie wyświetlacza


Złącza wyświetlacza
Zasilanie

Wyświetlacz zasilany jest napięciem stałym 5V. Na płytce drukowanej znaleźć można złącze do podłączenia wyłącznika zasilania wyświetlacza. W zależności od wyświetlacza, złącze to może być na sztywno zlutowane - wyświetlacz wówczas cały czas jest włączony. Jeśli będziemy chcieli skorzystać ze złącza zasilającego - wówczas wyłącznik montuje się między pin 1 a 3.

Podłączenie do PC
Wyświetlacz w akcji

Wyświetlacz można w prosty sposób podłączyć do komputera. Wystarczy skonstuować przewód umożliwiający podłączenie wyświetlacza do portu szeregowego komputera.

Nie wszystkie współczesne komputery posiadają wyprowadzone złącze portu szeregowego. Wówczas można próbować pomóc sobie wykorzystując popularne przewody z konwerterem USB-serial. Praktyka pokazuje, że wyświetlacz bez problemu działa przy zastosowaniu tanich konwerterów RS-232-USB (testowałem go z chipami FTDI oraz Prolific). Wówczas otrzymujemy urządzenie gotowe do pracy praktycznie z każdym komputerem.

Do zasilania wyświetlacza użyć można dowolnego źródła zasilania 5V (można próbować nawet użyć napięcia z portu USB). Zapotrzebowanie na prąd przez wyświetlacz to około 0,4A (wg standardu USB powinno dać 0,5A z jednego portu). Zalecam jednak zastosowanie oddzielnego zasilacza zwłaszcza, że zasilacze stabilizowane 5V o takim prądzie nie są drogie (do 20zł).

Podłączenie do innych urządzeń (RS-232 TTL)

Wyświetlacz można bez problemu podłączyć do mikrokontrolera (np. ATmega16). Wówczas należy zastosować dodatkowo konwerter napięć (MAX232) między mikrokontrolerem a wyświetlaczem. Można też (wersja dla bardziej wprawionych elektroników) podłączyć wyświetlacz bezpośrednio do pinów mikrokontrolera ale wówczas należy dołączyć się nie poprzez złącze RJ45, tylko dolutowując przewody do odpowiednich nóżek układu MAX232 (lub odpowiednika) na płytce drukowanej wyświetlacza albo do nóżek mikroprocesora na PCB.
schemat podłączenia wyświetlacza do komputera przez złącze RS-232 (COM)
schemat podłączenia wyświetlacza do komputera przez złącze USB

DIP-switche
Konfiguracja DIP-switchy na wyświetlaczu

W zależności od zawartości EEPROMa na wyświetlaczu (wersji wyświetlacza) różne może być znaczenie położenia DIP-switchy na płytce drukowanej. Znaczenia wszystkich z nich jeszcze nie rozpracowałem - dla każdej z wersji wyświetlacza. Wiadome jest na pewno, że korzystając z switcha 1 lub 8 (w zależności od wersji wyświetlacza) można włączyć (gdy przestawiony jest w pozycję ON) tryb testowy wyświetlacza. Warto pamiętać, że położenie switchy odczytywane jest tylko raz w momencie inicjalizacji wyświetlacza (przy podłączaniu napięcia zasilania). Zatem aby uruchomić tryb testowy należy odłączyć zasilanie, przełączyć switch 1 lub 8 w pozycję ON a następnie ponownie podłączyć zasilanie.

Komendy sterujące

W międzyczasie pojawiły się spekulacje, że pozostałe switche służą do ustawiania zestawu komend sterujących. Nie jest to wykluczone. Polecenia, które udało mi się rozszyfrować przy pomocy reversed engineeringu są następujące:

oznaczenie
szesnastkowe
oznaczenie
dziesiętne
znaczenie
0x08backspace (bez kasowania znaku)
0x0Cwyczyść ekran (zachowanie podobne jak komendy 0x1B 0x48 0x1B 0x4A)
0x0Alinia niżej
0x1B 0x44przesuń kursor w lewo
0x1B 0x43przesuń kursor w prawo
0x1B 0x41przenieś kursor do górnego wiersza
0x1B 0x42przenieś kursor do dolnego wiersza
0x1B 0x48ustaw kursor w pozycji HOME (1, 1)
0x1B 0x49umieść górną linię w dolnej
0x1B 0x48 0x1B 0x4Awyczyść ekran i umieść kursor w pozycji HOME
0x1B 0x48 0x1B 0x4Bwyczyść górną linię i umieść kursor w pozycji HOME
0x1B 0x4Bwyczyść wszystkie znaki w bierzącej linii od kursora w prawo (z kursorem włącznie)
0x1B 0x68włączenie przewijania wierszy (kursor przechodzi do nowej linii a linia jest przewijana w dół)
0x1B 0x69wyłączenie przewijania wierszy (nadpisywany jest ostatni znak aktualnej linii)
0x1B 0x59 X Yumieść kursor w określonej pozycji.
X=0x20 (dla wiersza 1), X=0x40 (dla wiersza 2)
Y=0x20+numer kolumny
0x1B 0x79 0x30wyłącz migający kursor (blok)
0x1B 0x79 0x31włącz migający kursor (blok)
Z pomogą Pana Marcina Stolarskiego udało się rozszerzyć powyższą listę rozkazów.

Wyświetlacz umożliwia wyświetlenie wszystkich polskich znaków diakrytycznych. Ponadto warto zwrócić uwagę na inne znaki:

oznaczenie
szesnastkowe
oznaczenie
dziesiętne
symbol
0x8F143Ą
0x86134ą
0x90144Ę
0x91145ę
0x95149Ć
0x8D141ć
0x98152Ś
0x9E158ś
0xA5165Ń
0xA4164ń
0xA0160Ź
0xA6166ź
0xA1161Ż
0xA7167ż
0x9C156Ł
0x92146ł
0xA3163Ó
0xA2162ó
od 0xDB do 0xDFbloki
od 176 do 178siatki z różnym stopniem wypełnienia

Jeśli wiesz coś więcej na temat komend sterujących - proszę napisz do mnie w tej sprawie.

Domyślnie wyświetlacz pracuje w trybie przewijania pionowego (vertical scrolling). Czyli jeśli pierwsza linia zapełni się, kursor przenosi się na początek drugiej linii. W momencie zapełnienia drugiej linii, jej zawartość przenoszona jest do pierwszej linii (nadpisując ją) a druga linia jest pusta - z kursorem na jej początku.

Ponadto wyświetlacz reaguje prawidłowo na znak BKSP (backspace), CR i LF (powrót do początku linii i przejście do kolejnej linii).

Tryb testowy

W trybie testowym wyświetlacz nie odczytuje żadnych informacji z portu szeregowego. Na wyświetlaczu pojawia się wersja firmware'u zawarta w EEPROMie po czym prezentowane są wszystkie znaki, które mogą być wyświetlane przez wyświetlacz. Cykl ten powtarza się.

Tryb testowy pokazuje wszystkie znaki,
które potrafi wyświetlić wyświetlacz. Na tym zdjęciu przedstawiono
tylko jeden z "ekranów". Znaki zmieniają się cyklicznie.

Oprogramowanie alternatywne dla wyświetlacza

Obecnie pracuję nad alternatywnym oprogramowaniem (firmware) do wyświetlacza (umożliwiającym np. przesuwanie znaków (scrolling), umieszczanie kursora w dowolnym miejscu etc). W tym momencie jednak nie jest ono dostępne.

Projekt oprogramowania alternatywnego (firmware'u) (wsad do EPROMu) dla wyświetlacza zarzucony.


Współpraca z programem SMARTIE

Wyświetlacz współpracuje z programem SMARTIE. Pracuje on ze sterownikiem TESTDRIVER. Do programu Smartie należy dograć plik testdriver.ini konfigurujący sterownik. Plik należy umieścić w tym samym katalogu, co program LCDsmartie.exe. Plik można pobrać tutaj.

Oprogramowanie na komputerze (wykorzystanie z PC)
Okno programu

Aby ożywić swój wyświetlacz - postanowiłem napisać program z wykorzystaniem Visual Studio C++ 2008 (z MFC). Pierwotnie miał to być jedynie odtwarzacz radiowy (do słuchania streamingów z internetu). Jednak w czasie pracy nad nim dodałem jeszcze kilka innych opcji.

Okno konfiguracji portu

Program przygotowałem z myślą o swoim komputerze, na którym mam zainstalowanego Windowsa 7. Jednak program działa również na Windowsie XP i Viście (z pewnymi brakami). Wynika to głównie z faktu, że moja aplikacja wykorzystuje API Windows Media Playera w wersji 12, która dostępna jest jedynie z systemem Windows 7. Niemniej jednak program działa na wszystkich tych systemach.

Jeśli jesteś zainteresowany - mogę Ci wysłać również kod źródłowy mojego programu. Niemniej jednak są warunki:

Program dostępny jest tutaj RP.zip
Ponadto mogą być potrzebne biblioteki Microsoft Visual C++ 2008 redistributable package