Payti Opublikowano 1 Lipca 2010 Zgłoś Opublikowano 1 Lipca 2010 (edytowane) Wyświetlacz LCD 4x20 znaków działający na porcie USB - LCD2USB mod 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. 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. 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. 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). 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 . 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 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: 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 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. 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. 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. 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. 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. 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: PCB layout: PCB do druku: 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 4 Lipca 2010 przez Payti 7 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
-=YoGi=- Opublikowano 2 Lipca 2010 Zgłoś Opublikowano 2 Lipca 2010 Dobry opis :) może się skuszę :) plusik :) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mib Opublikowano 2 Lipca 2010 Zgłoś Opublikowano 2 Lipca 2010 Fajny temat ale ja bym się raczej zainteresował tematem LCD2USB dużo lepszy patent i działa pod USB (dane i zasilanie). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Payti Opublikowano 2 Lipca 2010 Zgłoś Opublikowano 2 Lipca 2010 (edytowane) 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 4 Lipca 2010 przez Payti Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
mib Opublikowano 2 Lipca 2010 Zgłoś Opublikowano 2 Lipca 2010 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
romek-o Opublikowano 3 Lipca 2010 Zgłoś Opublikowano 3 Lipca 2010 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ć) Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Payti Opublikowano 4 Lipca 2010 Zgłoś Opublikowano 4 Lipca 2010 Uzupełniłem jeszcze opis o dane/linki dot. portu USB i metody termotransferu dla PCB. pozdrawiam, Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Payti Opublikowano 4 Lipca 2010 Zgłoś Opublikowano 4 Lipca 2010 (edytowane) 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 4 Lipca 2010 przez Payti 1 Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Payti Opublikowano 6 Lipca 2010 Zgłoś Opublikowano 6 Lipca 2010 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, Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...