Proponowana przejściówka ma prostą budowę, składa się z niewielu elementów i dzięki temu bez problemu mieści się w obudowie wtyczki DB25. Przejściówki można użyć do podłączenia programatorów (AVR, ISP, PIC...), rejestratorów danych, kontrolerów, realizacji interfejsów I²C, SPI itp. Została ona zbudowana w oparciu o popularny i łatwo dostępny mikrokontroler ATmega8, który emuluje interfejsy LPT i USB. Przejściówka ma następujące parametry użytkowe:
- napięcia wejściowe/wyjściowe 5 V lub 3,3 V,
- dioda LED do sygnalizacji pracy,
- poprawna praca z systemami Windows 98/Me/2k/XP,
- tryby pracy interfejsu LPT: SPP, EPP 1.9, ECP oraz ECP+EPP,
- prosta budowa oraz niskie koszty wykonania.
Projekt przejściówki jest publikowany za zgodą autora projektu, którym jest Henrik Haftmann. Tu zaprezentowaną szóstą wersję urządzenia.
Na rysunku 1 pokazano schemat ideowy urządzenia. Jego najważniejszym elementem jest mikrokontroler ATmega8. Linie D+ i D– interfejsu USB zostały dołączone do linii PB0 i PB1 mikrokontrolera. Diody D1, D2 obniżają napięcie zasilające konwerter do około 3,6 V, aby uniknąć błędów SYNC związanych z komunikacją za pośrednictwem interfejsu USB. Elementy R1...R3 ustalają poziomy napięć oraz zabezpieczają wejścia mikrokontrolera. R4 ogranicza prąd diody D3 sygnalizującej pracę konwertera.
Linie interfejsu LPT zostały doprowadzone do gniazda J2. Również do gniazda J2 doprowadzono linie umożliwiające zaprogramowanie mikrokontrolera. Zworka JP1 umożliwia doprowadzenie sygnału ze złącza J2 do wejścia reset. Jest to niezbędne dla spełnienia wymagań programowania ISP.
Mikrokontroler jest taktowany przez wewnętrzny generator RC o częstotliwości 8 MHz. Całość jest zasilana z portu USB komputera PC.
Montaż
Schemat montażowy konwertera pokazano na rysunku 2.
Montaż należy rozpocząć od wlutowania mikrokontrolera U1, a następnie pozostałych elementów SMD. W pierwszej kolejności należy zaprogramować mikrokontrolerem dołączając linie programatora do odpowiednich linii gniazda J2. Do programowania mikrokontrolera są przeznaczone następujące linie AF (MOSI), INI (MISO), SEL (SCK) oraz ONL (RST). Aby zaprogramowanie było możliwe, należy kropelką cyny zewrzeć na płytce zworkę JP1. Mikrokontroler należy zaprogramować dostępnym plikiem usb2lpt6+bootloader.hex. Jest to plik zawierający oprogramowanie konwertera wraz z bootloader’em, przy użyciu którego można będzie w późniejszym czasie zaktualizować oprogramowanie konwertera bez potrzeby dołączania do niego programatora. Do późniejszej aktualizacji oprogramowania konwertera dostępny jest program bootloadHID.exe. Co ważne, w zaprogramowanym mikrokontrolerze należy poprawnie ustawić jego FuseBity w sposób pokazany na rysunku 3.
Po poprawnym zaprogramowaniu mikrokontrolera należy usunąć zworkę JP1. Konwerter można umieścić w typowej obudowie na gniazdo DB25, w której należy wywiercić otwór pod diodę LED.
Uruchomienie
Po dołączeniu konwertera do komputera i podaniu ścieżki dostępu do sterowników, zostanie on zainstalowany jako urządzenie h#s USB-zu-LPT-Umsetzer (LPT3) (rysunek 4). Po poprawnym zainstalowaniu sterowników zaświeci się dioda D3 konwertera, która podczas komunikacji będzie migać.
We właściwościach sterownika (rysunek 5) jest możliwość skonfigurowania pracy konwertera. Można ustawić numer portu LPT oraz wybrać tryb jego pracy.
Dostępne są następujące tryby pracy portu LPT:
- Tryb SPP (Standard Parallel Port) jest to pierwotny tryb portu równoległego.
- EPP (Enhanced Parallel Port) jest to tryb dwukierunkowy.
- ECP (Enhanced Capabilities Port) jest to tryb dwukierunkowy (rozszerzenie EPP), wykorzystujący dodatkowe bufory i DMA.
- EPP+ECP.
Pozostałe opcje w oknie Emulation związane są z działaniem przejściówki USB-LPT. Zakładka Statistics (rysunek 6) umożliwia wyświetlenie statystyk roboczych przejściówki.
Podczas użytkowania należy mieć na uwadze kilka ograniczeń wynikających z faktu, że port równoległy jest emulowany. Działa on wolniej, niż wbudowany w płytkę główną port LPT. Mimo tego przejściówka USB/LPT będzie idealna nie tylko do komunikacji z drukarką, ale dzięki niemu można do komputerów bez portu równoległego dołączyć tanie programatory, w których duża szybkość transmisji danych raczej nie jest wymagana.
Marcin Wiązania
- R1, R2: 220 Ω SMD
- R3: 10 kΩ SMD
- R4: 330 Ω SMD
- C1: 10 µF/16 V SMD
- C2: 100 nF SMD
- U1: ATmega8 SMD
- D1,D2: Dioda 1N4148 SMD
- D3: LED 3 mm (czerwona)
- J1: Złącze USB typu B SMD 5-kontaktowe
- J2: Złącze kątowe DB25 do druku typu żeńskiego