Wyświetlacze VFD wiodły prym raczej w latach 80/90, montowano je głównie w urządzeniach audio/wideo, zegarkach, a nawet kalkulatorach czy samochodach. Wyparte zostały przez prostsze, tańsze w produkcji i użytkowaniu wyświetlacze lcd. Dzisiaj dostrzec je można jeszcze w urządzeniach audio, czy dekoderach satelitarnych.
Sam jestem wielkim fanem tych modułów, ich ładny i różniący się w każdym modelu wygląd po prostu cieszy oko.
Także cofnijmy się do czasów gdy elektronika nie była tak generyczna i nudna… Postaram się dzisiaj pokazać najpsotszy sposób uruchomienia i obsługi VFD, czyli za pomocą układu MAX6921.
Układy MAX6921AWI, w rozsądnej cenie możesz zakupić tutaj: https://mcinm.pl/max6921
Wyświetlacz VFD obsługa
Obsługa vfd jest w zasadzie banalnie prosta… Wyświetlacz VFD składa się z katod (cathodes), siatek (grids) i anod (anodes). Katody są drucikiem ciągnącym się przez całą długość wyświetlacza. Według sztuki powinny być one zasilane napięciem ujemnym. By jednak moduł zadziałał poprawnie nie musimy generować napięcia o ujemnym potencjale i możemy do nich pociągnąć ok. 3V. Tutaj warto wybadać każdy moduł osobno, od tego napięcia zależy jasność świecenia wyświetlacza. Katody nie powinny się żarzyć.
Siatki stanowią barierę dla elektronów i zależnie od czego czy jest na nich potencjał dodatni to przepuszczają, lub odpychają elektrony względem anod. Siatki wyraźnie widać jak są względem siebie odseparowane. Każda siatka zawiera konkretną ilość segmentów, które są podłączone do anod.
Więc podając napięcie na anodę zapalimy segment, do którego jest podłączona, w siatce aktualnie zasilanej. 🤔
To oczywiście bardzo mocno uproszczony opis działania. Pod anody i siatki podpinam napięcie między 12-30V.
Są to wyświetlacze multipleksowane, czyli po kolei zasilamy przez ok. 1ms każdą siatkę, a w niej segmenty jakie chcemy podświetlić. Obsługa jest banalna, wymaga tylko trochę czasu by opisać sobie wyprowadzenia, pod jakie siatki i anody są one podpięte.
MAX6921
Do VBB doprowadzamy zasilanie jakie wystawiane będzie na wyprowadznia, VCC napięcie układu (5V). Warto dodać po kondensatorze 100nF przy tych pinach.
Z układem komunikuję się za pomocą magistrali SPI, linię MOSI podpinam do wyprowadzenia DIN, SCK do CLK, natomiast CS poprowadziłem do pinu LOAD.
Jeżeli BLANK jest w stanie niskim, to na wyprowadzeniach pojawiają się nasza konfiguracja, lub nie w przeciwnym wypadku. W naprawdę niewielu przypadkach będziesz tego potrzebować więc można ten pin na stałe podpiąć pod GND.
Chip Select doprowadziłem do LOAD, ale MAX6921 nie ma takiego typowego wyprowadzenia CS, on zawsze będzie przyjmował dane. Zboczem opadającym na LOAD po prostu je „przerzucimy” na wyjścia. Trochę jak w przypadku rejestrów przesuwnych.
DOUT jak się nie trudno domyśleć jest pinem danych wyjściowych, odbiór wywołamy zboczem narastającym na linii zegarowej. Ja nie używam.
Przykładowy kod wysłania pakietu danych, a więc 20 bitów do układu. Bity wysyłane są od najstarszego. Zmienna vfd w moim przypadku to zmienna 16-bitowa, więc najpierw wysyłam jej starsze 8 bitów, a następnie resztę. Mój wyświetlacz ma tylko 8 siatek, a więc idealnie się zmieściła tutaj zmienna 8-bitowa. PB4 to impuls na pin LOAD (nasz CS).
void send_vfd(uint8_t grid) { //cli(); SendSpi(vfd >> 8); SendSpi(vfd); SendSpi(grid); PORTB &= ~(1<<PB4); _delay_ms(1); PORTB |= (1<<PB4); }
fajne, można by sobie zrobić zabawny budzik jakiś z takim wyświetlaczorem