Skocz do zawartości
Payti

Wyświetlacz LCD 4x20 znaków działający na porcie USB - LCD2USB mod

Rekomendowane odpowiedzi

Wyświetlacz LCD 4x20 znaków działający na porcie USB - LCD2USB mod

 

Dołączona grafika

 

Na podstawie:

Strona Gonzy - Wyświetlacz LCD 4x20 znaków działający na porcie USB

Guide Make your own USB LCD controller! - bit-tech.net Forums

 

Od kilku już lat, posiadam w obudowie komputera wyświetlacz LCD alfanumeryczny 4x20 znaków oparty na sterowniku zgodnym z HD44780. Schemat podłączenia wyświetlacza znalazłem w jednym z numerów magazynu Chip z 2003 roku. Jest on sterowany przez program Smartie i do tej pory był podłączony do portu LPT komputera. Jednak ze względu na to, że od czasu do czasu potrzebuję skorzystać z portu LPT w innych celach, postanowiłem zmontować odpowiednią "przejściówkę", która umożliwi mi podpięcie mojego wyświetlacza do portu USB. Poza tym, nowe płyty główne rzadko posiadają porty COM i LPT, oferując w zamian zintegrowane karty sieciowe, radiowe i inne bajery. Natomiast gniazd USB jest dość dużo, sam mam 4 gniazda wyprowadzone z tyłu obudowy oraz możliwość podłączenia 8-miu kolejnych. Kolejną zaletą tego rozwiązania jest zastosowanie przewodu jedynie 4-żyłowego, za pomocą którego przejściówka podłączona jest do gniazda USB znajdującego się na płycie głównej. Wcześniej musiałem przez obudowę prowadzić 11-żyłowy kabel zakończony wtykiem do portu LPT, znajdującego się na zewnątrz obudowy komputera, oraz podłączyć jeszcze zasilanie z jednej z wolnych wtyczek zasilacza komputerowego.

 

Link do zagranicznego forum, na podstawie którego wykonałem swoją przejściówkę, znalazłem na forum elektroda.pl, gdzie został on podany przez jednego z userów piszących w temacie "Wyświetlacz LCD do PC".

 

Rozwiązanie zaprezentowane poniżej oparte jest na mikrokontrolerze PIC18F2550 firmy Microchip, który posiada wbudowaną obsługę USB w wersji 2.0. Dzięki temu potrzeba jedynie garstki elementów, żeby zbudować działającą przejściówkę.

 

Potrzebne będzie jedynie kilka kondensatorów, rezystorów, tranzystor, kwarc, płytka drukowana (wykonana metodą termotransferu według wzoru z oryginalnej strony projektu, choć nic nie stoi na przeszkodzie aby zmontować układ na płytce uniwersalnej) oraz zaprogramowany PIC18F2550. Oryginalny projekt zawiera jeszcze buzzer i enkoder, które służą do regulacji głośności, zmiany utworów, nawigacji po menu. Ja u siebie pominąłem te elementy, gdyż nie są mi potrzebne.

 

Do PICa trzeba będzie wgrać program sterujący, pobrany ze strony Guide Make your own USB LCD controller! - bit-tech.net Forums Do zaprogramowania PICa użyłem programatora z zewnętrznym zasilaniem, którego schemat znajduje się w dalszej części tej strony, oraz softu o nazwie WinPic.

 

Ogólnie jedynym elementem przejściówki, który może być trudno dostępny lub drogi, jest PIC18F2550. Ja zakupiłem 3 sztuki na Allegro za 30 zł, co daje 10 zł za sztukę, choć wiem że cena w sklepach oscyluje w granicach nawet 30-40 zł. Także polecam przejrzeć Allegro w poszukiwaniu tego PICa.

 

Przygotowanie płytki drukowanej

 

Jeszcze zanim udało mi się upolować na Allegro PICe 18F2550 w dobrej cenie, zająłem się wykonaniem płytek drukowanych. Potrzeba było wykonać dwie identyczne płytki, gdyż mój znajomy również zdecydował się podpiąć swój nowo zakupiony wyświetlacz poprzez USB.

Wzór płytki do termotransferu znajduje się w pierwszym poście na forum bit-tech.net, do którego link już podawałem. Plik w formacie GIF trzeba przed wydrukiem odpowiednio zwymiarować, ja zmniejszyłem go do wymiarów ok. 6,5 x 4,7 cm. Po wydrukowaniu wzoru na papierze kredowym, na drukarce laserowej Samsung ML-2010P przystąpiłem do wykonywania płytek metodą termotransferu.

 

Jak wykonywać płytki metodą termotransferu ?

 

Dowiesz się tego na forum Elektrody, bądź na stronach www lub tu -->>

Ogólnie nie jest to trudna metoda, a efekty są bardzo dobre. Przy odrobinie wprawy można uzyskać naprawdę świetne płytki.

 

Poniżej zdjęcia moich płytek, z wywierconymi już otworami.

 

Dołączona grafika

 

Programowanie PIC18F2550

 

Najważniejszą częścią przejściówki jest mikrokontroler PIC18F2550. Dotychczas przy programowaniu PICów korzystałem z softu o nazwie IC-Prog, jednak teraz było konieczne użycie programu WinPic.

 

Dołączona grafika

 

Powyżej znajduje się schemat programatora, którego użyłem do zaprogramowania PIC18F2550. Jako że mój programator ma podstawki do układów 18 i 8-pinowych, skorzystałem jeszcze z płytki stykowej, na której umieściłem PICa. Między tą płytką a programatorem wykonałem kilka połączeń za pomocą drucików.

 

Dołączona grafika

 

Na płytce stykowej był również zmontowany inny układ na ATmega8, ale było jeszcze trochę miejsca na PICa i kilka przewodów.

 

Ważną sprawą jest prawidłowe podłączenie PICa do programatora. Nieocenioną pomocą okazał się tutaj plik pomocy programu WinPic, w którym znalazłem cenne informacje. Bez nich nie mogłem zaprogramować mikrokontrolera. Poniżej w tabelce opisany jest sposób podłączenia PIC18F2550 do programatora dla układów 18-nóżkowych (patrz schemat wyżej) wraz z niezbędnymi objaśnieniami.

 

Pin	        Nazwa i numer pinu SDIP18 (PIC16F84A)	Nazwa i numer pinu SDIP28 (PIC18F2550)	Uwagi (dla PIC18F2550)Zasilanie (+)	14 - Vdd	                        20 - Vdd	 Masa (-)	5 - Vss	                                8, 19 - Vss	                        Należy podłączyć wszystkie piny masyNapięcie progr.	4 - MCLR/Vpp	                        1 - MCLR/Vpp/RE3	 CLOCK	        12 - RB6	                        27 - RB6/KBI2/PGC	                Podłączyć pin do masy poprzez kondensator o wartości 22-47pF.DATA	        13 - RB7	                        28 - RB7/KBI3/PGD	                Podłączyć pin do masy poprzez kondensator o wartości 22-47pF.

Przed zaprogramowaniem PICa, należy sprawdzić konfigurację programu WinPic (poniżej moja konfiguracja - kliknij żeby powiększyć obrazy).

 

Dołączona grafikaDołączona grafika

 

Następnie otwieramy plik HEX (usblcdconfig.hex) i klikamy Program Device. Nie jest konieczne ręczne ustawianie przed programowaniem fusebitów dla PICa, gdyż odpowiednie słowa konfiguracyjne (Config words na zakładce "Układ, konfiguracja") zapisane są w pliku HEX i ustawią się w programie po załadowaniu tego pliku (patrz screen poniżej) - czyli wystarczy jedynie zaprogramować PICa gotowym wsadem bez zbędnego zastanawiania się nad ustawieniem bitów konfiguracyjnych. Dokładne wyszczególnienie wszystkich ustawień jest widoczne na screenie, do którego link znajduje się w pierwszym poście tematu "Make your own USB LCD controller" na forum bit-tech.net, bezpośredni link do screena: Required programmer config .

 

Dołączona grafika

 

Części i montaż

 

Większość elementów to drobne rezystory, kondensatory i tranzystory. Wszystkie dostałem bez problemu w sklepie elektronicznym w moim mieście. Montaż na pewno nie sprawi kłopotu. Pod PICa zastosowałem, jak zwykle zresztą, podstawkę DIL-28 wąską.

 

Dokładnie były mi potrzebne następujące elementy:

 

rezystor 4,7k - 1 szt.

rezystor 10k - 4 szt.

kondensator 22pF - 2 szt.

kondensator 100nF - 2 szt.

kondensator 220nF - 1 szt.

kondensator 100uF - 1 szt.

tranzystor BC549 - 1 szt.

potencjometr 4,7k

kwarc 4 MHz

podstawka DIL-28 wąska - 1 szt.

listwa goldpin

wtyki plastikowe i złącza metalowe zaciskane na kabel

 

Dołączona grafika

 

Przy montażu tranzystora Q1, sterującego podświetleniem wyświetlacza, należy zwrócić uwagę na poprawne wlutowanie poszczególnych wyprowadzeń. Ukazuje to poniższy obrazek:

 

Dołączona grafika

 

Ja, stosując tranzystor BC549, musiałem odpowiednio wygiąć jego nóżki tak, aby kolektor ©, baza (B) i emiter (E) były na odpowiednich miejscach. Tranzystor ten jest odpowiedzialny za włączanie podświetlenia wyświetlacza LCD. W razie jakichkolwiek wątpliwości poniżej obrazek ilustrujący rozkład wyprowadzeń popularnych tranzystorów z serii BC.

 

Dołączona grafika

 

Do połączenia płytki oraz wyświetlacza użyłem listw goldpin wlutowanych w płytkę i wyświetlacz, oraz metalowych styków (Crimp) zaciśniętych na taśmie AWG, włożonych w plastikowe gniazda typu BLS i BLD. Tym samym sposobem zrealizowane jest połączenie płytki z gniazdem USB na płycie głównej, za pomocą przewodu 4-żyłowego.

 

Dołączona grafika

 

Ponieważ wyświetlacz jest umieszczony w obudowie komputera, konieczne jest zabezpieczenie płytki drukowanej przed możliwością zwarcia. Przejściówkę umieściłem w obudowie plastikowej Z-70U koloru czarnego. Konieczne okazało się wyłamanie w obudowie 3 wewnętrznych plastikowych wypustek z otworami na śruby (dwie małe i jedna duża), tak aby płytka zmieściła się w obudowie. Konieczne też było przycięcie płytki w jednym rogu. Następnie nożykiem do tapet naciąłem obudowę w dwóch miejscach tak aby było możliwe wyprowadzenie przewodów na zewnątrz. Na koniec obudowę skręciłem jedną śrubką. Całość można teraz umieścić wewnątrz obudowy komputera.

 

Dołączona grafika

 

Dołączona grafika

 

Dołączona grafika

 

Uruchamianie wyświetlacza - instalowanie sterownika, konfiguracja oprogramowania LCD Smartie

 

Kiedy na płytce są już wlutowane wszystkie elementy, wyświetlacz LCD jest do niej podłączony a PIC zaprogramowany i włożony w podstawkę - czas na podłączenie całości do gniazda USB. Ja podłączyłem całość do gniazda znajdującego się wewnątrz komputera, na płycie głównej. Nic nie stoi na przeszkodzie aby wykorzystać np. kupiony kabel USB, uciąć jedną wtyczkę, przewody przylutować do płytki a drugą wtyczkę wpiąć do jednego z gniazd standardowo umieszczonych na płycie głównej, wyprowadzonych z tyłu obudowy komputera. Każdy zrobi jak mu bardziej pasuje.

 

Podłączenie do gniazda USB można wykonać przy włączonym komputerze. Nie trzeba stosować żadnych dodatkowych przewodów zasilających, gdyż zarówno przejściówka jak i wyświetlacz zasilane są napięciem 5V z portu USB.

 

Po podłączeniu przejściówki, o ile PIC jest poprawnie zaprogramowany a układ zlutowany poprawnie ze sprawnych części - w Windowsie pojawi się komunikat o wykryciu nowego urządzenia. Trzeba będzie teraz wskazać plik sterownika dla naszej przejściówki. Zatem ręcznie wskazujemy plik o nazwie mchpcdc.inf ściągnięty ze strony projektu. W systemie pojawi się nam urządzenie o nazwie Communications Port (COMx) gdzie x to numer portu, np. COM5 - jak na załączonym poniżej obrazku.

 

Dołączona grafika

 

Następnie instalujemy oprogramowanie do obsługi naszego wyświetlacza - LCD Smartie, które można pobrać z oficjalnej strony LCD Smartie - A free open-source LCD program! Ja używam wersji 5.3.2, ale oczywiście można spróbować nowszych dostępnych wersji. Po zainstalowaniu i uruchomieniu LCD Smartie, należy jeszcze skonfigurować kilka rzeczy (patrz też screen poniżej - kliknij żeby zobaczyć obrazek w większym rozmiarze). Zatem po kliknięciu na Setup, w części LCD Settings, ustawiamy rozmiar naszego wyświetlacza (4 x 20), typ: Matrix Orbital (Serial), wybieramy port COM pod jakim zainstalowana została przejściówka, ustawiamy speed/baud rate na wyższy (wymaga to ustawienia wyższego baudrate również we właściwościach portu COM przejściówki, ja mam 115200). Klikamy Apply i cieszymy się pierwszymi screenami wyświetlanymi na wyświetlaczu.

 

Dołączona grafika

 

Dołączona grafika

 

Teraz można przystąpić do indywidualnej konfiguracji poszczególnych screenów, jakie program będzie wyświetlał. W menu po lewej stronie okna Smartie jest masa opcji ułatwiających to zadanie.

 

Na stronie programu LCD Smartie dostępne sa dodatkowe pluginy, które umożliwiają m.in. wyświetlanie analizatora widma z Winampa (Winamp Spectrum Analyzer), czy też zegara z dużymi cyframi (BigNum Plugin). Patrz też zdjęcia poniżej.

 

Dołączona grafika

 

Dołączona grafika

 

Napotkane problemy

 

Przy montażu przejściówki nie miałem większych problemów, kłopot był jedynie przy programowaniu PICa, ale plik pomocy programu WinPic nakierował mnie na dobre rozwiązanie.

 

Przydatne linki

 

Wszystkie potrzebne materiały do wykonania przejściówki (wzór płytki do termotransferu, schemat ideowy, schemat rozmieszczenia elementów na płytce, wsad do PIC18F2550 w pliku HEX, plik sterownika do Windows 2000/XP, screen ustawień Fusebits) znajdują się pod adresem:

Guide Make your own USB LCD controller! - bit-tech.net Forums

 

Schemat:

Dołączona grafika

 

PCB layout:

Dołączona grafika

 

PCB do druku:

Dołączona grafika

 

Program do PIC18F2550:

http://www.ch424.net/junk/usblcdconfig.hex

 

Sterowniki Windows:

XP/2000: http://www.ch424.net/junk/mchpcdc.inf

Vista, Windows7 64-bit: Windows Drivers

 

Port USB:

Plik:USB.svg – Wikipedia, wolna encyklopedia

 

Termotransfer PCB:

 

WinPic jest dostępny do ściągnięcia pod adresem:

DL4YHF's WinPic - A PIC Programmer for Windows

 

LCD Smartie jest do ściągnięcia pod adresem:

LCD Smartie - A free open-source LCD program!

Edytowane przez Payti
  • Upvote 7

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No ten projekt to właśnie też LCD2USB ale rozbudowany z buzerem i rotary encoderem i na PIC'u oraz są sterowniki do Windows7 x64, które działają z tą wersją LCD2USB perfect ;) A zasilanie też jest z USB ;) Nie czytałeś dokładnie @mib ;)

 

pozdrawiam,

Edytowane przez Payti

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

No ten projekt to właśnie LCD2USB ;) Nie czytałeś dokładnie @mib ;)

 

pozdrawiam,

 

Hmm widocznie to kolejna wersja. Ja mam lcd2usb i jest sporo mnijesze ;p 

 

Znalazłem to na elektrodzie. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ogromny szacunek za "home-made" w obecnych czasach. Obecnie 99% użytkowników kupiłoby gotowy panel w sklepie za xxx zł (chociaż to zapewne dlatego że mało kto zna się na elektronice i potrafi porządnie lutować)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sprawdzone i lekko zmodyfikowane sterowniki dla Windows XP (32bit) oraz Windows7 64-bit dla powyższego LCD2USB na PIC18F2550, które instalują się bez problemu i bez żadnych kombinacji z podpisywaniem sterownika jak dla LCD2USB na ATMega8 (z Elektrody) oraz zdejmowaniem ochrony uprawnień w Win7 do najnizszego poziomu, co u mnie nie ruszyło nie wiedzieć czemu.

 

Modyfikacja polega na tym, że sterownik instaluje się pod - Porty (COM i LPT) jako: "LCD 4x20 Characters Display (COMx)" i działa perfect!

 

W załączniku to o czym mowa.

 

A tu -->>

mała pokazówka (nie moja) co takie cacko potrafi ;)

 

pozdrawiam,

LCD2USB_PIC18F2550_drivers.ZIP

Edytowane przez Payti
  • Upvote 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ostatnio dodatkowo do powyższego uruchomiłem jeszcze buzer i rotary encoder (impulsatorek), które działają świetnie. Mamy w zasadzie w pełni konfigurowalny panel z obsługą zdarzeń i gałką wyboru funkcji oraz w pełni konfigurowalne wyświetlanie na LCD w zasadzie prawie wszystkiego co się chce.

 

pozdrawiam,

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...