Dawno temu kupiłem kilka wyświetlaczy matrycowych 5x7 (takich:
Znalazłem te wyświetlacze w szafie i sprawdziłem, czy może istnieje już jakiś wygodny w użyciu sterownik (żeby jednak zrobić kompletny zegar). Znalazłem MAX6953 sterujący czterema takimi wyświetlaczami. Ale jest według mnie zbyt skomplikowany w obsłudze i trudno go kupić.
Znalazłem też kilka opisów projektów sterowania wieloma wyświetlaczami 5x7 (np. cgh_SVRqchs na YT). Zwykle zastosowanych jest kilka rejestrów przesuwnych, służących do wybierania kolejnych kolumn. Diodami w rzędach sterują oddzielne wyjścia mikrokontrolera. Przy 8 modułach 5x7 jest 40 kolumn, co sprawia problemy: szybkość odświeżania oraz konieczność stosowania dużych prądów chwilowych. Każda kolumna świeci przez mniej niż 1/40 czasu i musi świecić odpowiednio jasno.
Dlatego chcę zrobić prosty (w montażu) i tani sterownik wyświetlacza. Jedną matrycą 5x7 sterowałby jeden układ ATtiny2313 za ok. 5 zł. Ogólna koncepcja: głównym zadaniem 2313 będzie multipleksowanie pięciu kolumn i wyświetlanie 5x7 punktów, możliwie szybko (10 kHz?). Dane do wyświetlania przesyłane byłyby szeregowo, np. przez USART. Komunikacja z głównym procesorem byłaby jednokierunkowa
- procesor tylko wysyła dane ("bitmapę") do wyświetlacza. Przy zastosowaniu wielu modułów, wszystkie wejścia RxD są połączone, a każdy moduł 5x7 ma indywidualny numer 8-bitowy nadany na stałe podczas programowania. Procesor wysyła "słowo sterujące", numer modułu i 5 (lub 7) bajtów bitmapy. W razie potrzeby można zrobić buforowanie i przesyłane dane tylko zapamiętywać (a wyświetlać stare). Dopiero w chwili wysłania ustalonego "słowa synchronizującego" (które dotrze do wszystkich modułów jednocześnie) może nastąpić aktualizacja treści. Takie rozwiązanie pozwoli na realizację precyzyjnego synchronizowania wyświetlanej treści, "skalowalność" (w podstawowej wersji do 256 modułów) i małą ilość dodatkowych elementów (na każdy moduł 5x7 jeden układ 2313 i kilka rezystorów). Przy szybkości transmisji
250 kbps, 7 bajtach potrzebnych na przesłanie danych do jednego modułu i 8 modułach daje to możliwość zmiany treści całego wyświetlacza około 450 razy na sekundę.Czy ktoś mógłby ocenić powyższą koncepcję (np. napisać, że da się łatwiej używając ...)?
Drugi element to właściwy zegar. Skoro ma być "inny", to będzie różnił się od zwykłych następująco:
- Zamiast zwykłego rezonatora kwarcowego (albo 50 Hz z sieci, DCF, GPS) będzie miał układ DS32KHZ - generator 32768 Hz z kompensacją temperatury. Jest tam termometr i zapisana funkcja częstotliwość = f(temperatura). Generator automatycznie dokonuje korekty. Układ kosztuje 12 zł.
- Zegar będzie wyświetlał czas z rozdzielczością 0,1 sekundy (a może 0,01 sekundy). M.in. do tego jest potrzebne dokładne sterowanie wyświetlaczem.
- Zależnie od oprogramowania - wyświetlanie fontem "proporcjonalnym", fragment wyświetlacza przeznaczony na "linijkę świetlną" pokazującą dziesiąte części sekundy itp.
A może ktoś już zrobił coś podobnego?
P.