Goto page 1, 2 Next
konrad95
Guest
Sat May 09, 2009 11:17 pm
Witam,
Ostatnio zacząłem bawić się w programowanie portu LPT. Jestem na etapie
wysyłania bitów (umiem zapalać i gasić diody, etc). Przeglądając sieć,
wpadłem na pomysł zaprogramowania wyświetlacza. Niestety - stary komp
posiadający port LPT stoi teraz w szkole i pełni rolę serwera. W domu
mam tylko laptopa z usb.
I moje pytanie - czy ta (
http://tinyurl.com/lptusb ) przejściówka
działa na zasadzie emulacji portu LPT (czy mogę się odnosić do niej i
wysyłać dane tak jak do zwykłego portu LPT)? Czy ten (
http://tinyurl.com/lcd4x16 ) wyświetlacz zadziała na niej? Używam
Linuksa (Ubuntu).
Pozdrawiam
Konrad95
Adam Dybkowski
Guest
Sat May 09, 2009 11:24 pm
konrad95 pisze:
Quote:
Ostatnio zacząłem bawić się w programowanie portu LPT. Jestem na etapie
wysyłania bitów (umiem zapalać i gasić diody, etc). Przeglądając sieć,
wpadłem na pomysł zaprogramowania wyświetlacza. Niestety - stary komp
posiadający port LPT stoi teraz w szkole i pełni rolę serwera. W domu
mam tylko laptopa z usb.
I moje pytanie - czy ta (
http://tinyurl.com/lptusb ) przejściówka
działa na zasadzie emulacji portu LPT (czy mogę się odnosić do niej i
wysyłać dane tak jak do zwykłego portu LPT)?
Nie zadziała. Potrzebujesz do laptopa karty PCMCIA LPT. Ale jeżeli jest
to nowy sprzęt z ExpressCard to karty LPT nie zadziałają (w trybie
sterowania indywidualnymi bitami). Już lepiej kup wyświetlacz z USB i
już. Szukaj hasła "CrystalFontz".
Quote:
Wyświetlacz wygląda standardowo. Czyli na powyższym konwerterze USB->LPT
nie zadziała.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
konrad95
Guest
Sat May 09, 2009 11:29 pm
Adam Dybkowski pisze:
Quote:
konrad95 pisze:
Ostatnio zacząłem bawić się w programowanie portu LPT. Jestem na etapie
wysyłania bitów (umiem zapalać i gasić diody, etc). Przeglądając sieć,
wpadłem na pomysł zaprogramowania wyświetlacza. Niestety - stary komp
posiadający port LPT stoi teraz w szkole i pełni rolę serwera. W domu
mam tylko laptopa z usb.
I moje pytanie - czy ta (
http://tinyurl.com/lptusb ) przejściówka
działa na zasadzie emulacji portu LPT (czy mogę się odnosić do niej i
wysyłać dane tak jak do zwykłego portu LPT)?
Nie zadziała. Potrzebujesz do laptopa karty PCMCIA LPT. Ale jeżeli jest
to nowy sprzęt z ExpressCard to karty LPT nie zadziałają (w trybie
sterowania indywidualnymi bitami). Już lepiej kup wyświetlacz z USB i
już. Szukaj hasła "CrystalFontz".
Czy ten (
http://tinyurl.com/lcd4x16 ) wyświetlacz zadziała na niej? Używam
Linuksa (Ubuntu).
Wyświetlacz wygląda standardowo. Czyli na powyższym konwerterze USB->LPT
nie zadziała.
Mam Compaq Presario F730US - ten model nie ma ani PCMCIA ani ExpressCard
:/ Czyli pozostało mi chyba tylko sprowadzenie z powrotem kompa ze
szkoły

Co do wyświetlacza na USB - ja nie chcę kupić wyświetlacza
żeby mi coś pokazywał non-stop, tylko żeby nauczyć się programować tego
typu rzeczy.
Dzięki za zainteresowanie wątkiem :)
Pozdrawiam
Konrad95
BartekK
Guest
Sat May 09, 2009 11:34 pm
Adam Dybkowski pisze:
Quote:
konrad95 pisze:
Ostatnio zacząłem bawić się w programowanie portu LPT. Jestem na etapie
wysyłania bitów (umiem zapalać i gasić diody, etc). Przeglądając sieć,
wpadłem na pomysł zaprogramowania wyświetlacza. Niestety - stary komp
posiadający port LPT stoi teraz w szkole i pełni rolę serwera. W domu
mam tylko laptopa z usb.
I moje pytanie - czy ta (
http://tinyurl.com/lptusb ) przejściówka
działa na zasadzie emulacji portu LPT (czy mogę się odnosić do niej i
wysyłać dane tak jak do zwykłego portu LPT)?
Nie zadziała. Potrzebujesz do laptopa karty PCMCIA LPT. Ale jeżeli jest
to nowy sprzęt z ExpressCard to karty LPT nie zadziałają (w trybie
sterowania indywidualnymi bitami). Już lepiej kup wyświetlacz z USB i
już. Szukaj hasła "CrystalFontz".
Czy ten (
http://tinyurl.com/lcd4x16 ) wyświetlacz zadziała na niej? Używam
Linuksa (Ubuntu).
Wyświetlacz wygląda standardowo. Czyli na powyższym konwerterze USB->LPT
nie zadziała.
Oj zadziała(łby) gdyby napisać odpowiedni soft + parę kabelków mądrze
skręcić. Na wyjściu przejściówki USB-LPT masz wszsytkie potrzebne linie
LPT (DATA0-DATA7, sterowanie itp), trzeba tylko przekonać przejściówkę
że na jej końcu wisi drukarka (i przyjmuje dane z linii D0-D7), oraz
wysyłać do tej drukarki odpowiednie "znaki" odpowiadające odpowiednim
stanom pinów D0-D7, ale przyjmując sterowanie 4bit oraz brak odczytu
(tylko zapis) do lcd - to wystarczy.
Sam swego czasu tak zmajstrowałem sterowanie "na piechotę" tyle że w
windowsie, wybierając "typowa drukarka - tylko tekst" na danym porcie, i
wysyłając odpowiednio spreparowane pliki do tej drukarki. Problemem jest
tylko to, że driver może obcinać wszystko co poza znakami w ASCI oraz
kodami sterującymi - trzeba odpowiednio wybrać linie portu, by operować
w zakresie dostępnych kombinacji bitowych. Albo zmajstrować mały kawałek
procka który to zamieni. Ale z tego co pamiętam to w linuksowym cat plik
Quote:
/dev/usblp0 nie cięło niczego, wszystko ładnie szło co do bitu,
jedynie trzeba było dobrze ustawiać PE/Busy/Ack
--
| Bartlomiej Kuzniewski
| sibi@drut.org GG:23319 tel +48 696455098
http://drut.org/
|
http://www.allegro.pl/show_user_auctions.php?uid=338173
konrad95
Guest
Sun May 10, 2009 12:15 am
BartekK pisze:
Quote:
Sam swego czasu tak zmajstrowałem sterowanie "na piechotę" tyle że w
windowsie, wybierając "typowa drukarka - tylko tekst" na danym porcie, i
wysyłając odpowiednio spreparowane pliki do tej drukarki. Problemem jest
tylko to, że driver może obcinać wszystko co poza znakami w ASCI oraz
kodami sterującymi - trzeba odpowiednio wybrać linie portu, by operować
w zakresie dostępnych kombinacji bitowych. Albo zmajstrować mały kawałek
procka który to zamieni. Ale z tego co pamiętam to w linuksowym cat plik
/dev/usblp0 nie cięło niczego, wszystko ładnie szło co do bitu,
jedynie trzeba było dobrze ustawiać PE/Busy/Ack
Masz może jakiś schemat jak to połączyć? Działało by to gdybym napisał
własny program w C? Chodzi mi czy będzie śmigać wysyłanie bitów funkcją
outb().
Pozdrawiam
Konrad95
T.M.F.
Guest
Sun May 10, 2009 9:01 am
konrad95 pisze:
Quote:
Witam,
Ostatnio zacząłem bawić się w programowanie portu LPT. Jestem na etapie
wysyłania bitów (umiem zapalać i gasić diody, etc). Przeglądając sieć,
wpadłem na pomysł zaprogramowania wyświetlacza. Niestety - stary komp
posiadający port LPT stoi teraz w szkole i pełni rolę serwera. W domu
mam tylko laptopa z usb.
I moje pytanie - czy ta (
http://tinyurl.com/lptusb ) przejściówka
działa na zasadzie emulacji portu LPT (czy mogę się odnosić do niej i
wysyłać dane tak jak do zwykłego portu LPT)? Czy ten (
http://tinyurl.com/lcd4x16 ) wyświetlacz zadziała na niej? Używam
Linuksa (Ubuntu).
Kup lepiej jakis uklad FTDI, FTDI232 lub pochodne, bedziesz mogl
wykorzystac USB, uniwersalne niezalezne od systemu drivery i
programowanie sie uprosci. Ilosc linii IO ktore ten uklad oferuje jest
wystarczajaca.
Mirek
Guest
Sun May 10, 2009 11:47 am
konrad95 wrote:
Quote:
Używam
Linuksa (Ubuntu).
W repo masz program lcd4linux, niestety na przejściówce USB-LPT mogą być
problemy, ale warto to sprawdzić.
Funkcja outb() raczej nie zadziała, ale możesz tak jak pisze kolega
BartekK wysyłać dane do /dev/usblp0, co do podłączenia to pewnie
4-bitowo (bo nie będzie z czego sterować "RS" wyświetlacza): D0-D3
wyświetlacza do D0-D3 lpt, "Enable" do "STROBE" lpt (STROBE powinno
dawać automatycznie impuls po zapisie do /dev/usblp0), "RS" wyświetlacza
np do D4 lpt. "R/W" można do masy (do wyświetlacza tylko zapisujemy).
Pozostaje tylko ułożyć sobie odpowiednią sekwencję bajtów do sterowania
- tutaj uwaga: niektóre wyświetlacze dziwnie się inicjalizują zwłaszcza
w trybie 4 bitowym (trzeba mu wysłać trochę śmieći i poczekać, następnie
zadać tryb 4-bitowy i znów poczekać - OIDP)
Mirek.
BartekK
Guest
Sun May 10, 2009 12:33 pm
konrad95 pisze:
Quote:
Ale z tego co pamiętam to w
linuksowym cat plik > /dev/usblp0 nie cięło niczego, wszystko ładnie
szło co do bitu, jedynie trzeba było dobrze ustawiać PE/Busy/Ack
Masz może jakiś schemat jak to połączyć? Działało by to gdybym napisał
własny program w C? Chodzi mi czy będzie śmigać wysyłanie bitów funkcją
outb().
Raczej nie ma co liczyć że outb() ci zadziała. To zupełnie inny sposób
wysyłania danych
outb() możesz sięgać (jak ioperm zezwoli) do portów (adresów w
przestrzeni i/o) fizycznych w komputerze, czyli w zasadzie wyłącznie
podpiętych przez ISA/PCI/PCIe (i mobilne mutacje expresscard,Pcmcia) -
urządzenie (tutaj port lpt) musi być w "hardwarowej" przestrzeni
adresowej "wprost".
A to co ja proponuje, to sterowanie przez wysyłanie danych (bajtów,
całych, odpowiednio złożonych) do "urządzenia" wirtualnego w systemie,
występującego przeważnie jako /dev/usblp0 albo /dev/usb/lp0 (zależnie od
systemu i kernela). Tak samo jakbyś te bajty wysyłał do pliku, a potem
hex-edytorem obejrzał, czy odpowiednie bity się zgadzają. Pomijając
kwestię delayów między kolejnymi wysłanymi ("wydrukowanymi" do
/dev/usblp0) bajtami, bo lcd tak szybko jak lpt działa, karmić się
danymi nie da)
http://www.hardwarebook.info/Centronics
Upraszczając trochę - jak sobie załączysz na taką przejściówkę LPT
drukarkę jakąś starszą-hardwarową, np jakąś igłówkę, i zrobisz komendę
"cat plik.txt /dev/usblp0", a plik bedzie zawierac jeden bajt równy "B"
(literę B), to komputer będzie czekał aż na porcie LPT zniknie sygnał
BUSY (drukarka zajęta gdy =1, drukarka gotowa gdy zwarte do masy) a
potem na liniach danych D0-D7 ustawi się 0x42 (czyli 0100 0010 binarnie)
i drukarka wydrukuje odpowiedni znaczek, potwierdzi krótkim sygnałem
(zwaciem do gnd) na linii /ACK - i nic więcej się nie stanie.
--
| Bartlomiej Kuzniewski
| sibi@drut.org GG:23319 tel +48 696455098
http://drut.org/
|
http://www.allegro.pl/show_user_auctions.php?uid=338173
J.F.
Guest
Sun May 10, 2009 2:09 pm
On Sun, 10 May 2009 12:47:19 +0200, Mirek wrote:
Quote:
konrad95 wrote:
Używam Linuksa (Ubuntu).
W repo masz program lcd4linux, niestety na przejściówce USB-LPT mogą być
problemy, ale warto to sprawdzić.
Niemal gwarantowane ze nie zadziala.
Quote:
Funkcja outb() raczej nie zadziała, ale możesz tak jak pisze kolega
BartekK wysyłać dane do /dev/usblp0, co do podłączenia to pewnie
4-bitowo (bo nie będzie z czego sterować "RS" wyświetlacza): D0-D3
wyświetlacza do D0-D3 lpt, "Enable" do "STROBE" lpt (STROBE powinno
dawać automatycznie impuls po zapisie do /dev/usblp0), "RS" wyświetlacza
np do D4 lpt. "R/W" można do masy (do wyświetlacza tylko zapisujemy).
Pozostaje tylko ułożyć sobie odpowiednią sekwencję bajtów do sterowania
Tylko ze przejsciowka nie wysle nastepnych bajtow dopoki drukarka nie
potwierdzi ze odebrala poprzedni.
Trzeba bedzie jakis sprytny impulsatorek podlaczyc do lini BUSY, a
moze INTR ..
J.
Mirek
Guest
Sun May 10, 2009 8:47 pm
J.F. wrote:
Quote:
Trzeba bedzie jakis sprytny impulsatorek podlaczyc do lini BUSY, a
moze INTR ..
Z BUSY to problemu nie będzie - wystarczy podać na stałe NOT-BUSY,
gorzej może być faktycznie z ACK (o ile jest niezbędny) - może wystarczy
podać zanegowany sygnał STROBE?
Mirek.
BartekK
Guest
Sun May 10, 2009 9:06 pm
Mirek pisze:
Quote:
J.F. wrote:
Trzeba bedzie jakis sprytny impulsatorek podlaczyc do lini BUSY, a
moze INTR ..
Z BUSY to problemu nie będzie - wystarczy podać na stałe NOT-BUSY,
gorzej może być faktycznie z ACK (o ile jest niezbędny)
Jest niezbędny, musi się pojawić, i to z pewnym opóźnieniem (a nie od
razu, bo lcd nie zdąży przyjąć danych, a port już zmieni stan)
Quote:
- może wystarczy podać zanegowany sygnał STROBE?
Dobry pomysł, a jeszcze lepszy - przed negatorem dać jakiś układ
opóźniający RC.
--
| Bartlomiej Kuzniewski
| sibi@drut.org GG:23319 tel +48 696455098
http://drut.org/
|
http://www.allegro.pl/show_user_auctions.php?uid=338173
Adam Dybkowski
Guest
Sun May 10, 2009 9:25 pm
BartekK pisze:
Quote:
Wyświetlacz wygląda standardowo. Czyli na powyższym konwerterze USB->LPT
nie zadziała.
Oj zadziała(łby) gdyby napisać odpowiedni soft + parę kabelków mądrze
skręcić. Na wyjściu przejściówki USB-LPT masz wszsytkie potrzebne linie
LPT (DATA0-DATA7, sterowanie itp), trzeba tylko przekonać przejściówkę
że na jej końcu wisi drukarka (i przyjmuje dane z linii D0-D7), oraz
wysyłać do tej drukarki odpowiednie "znaki" odpowiadające odpowiednim
stanom pinów D0-D7, ale przyjmując sterowanie 4bit oraz brak odczytu
(tylko zapis) do lcd - to wystarczy.
No to już może lepiej kupić najtańszy konwerter USB->RS232 (na Allegro
kabelki USB do starych komórek po ok. 5 zł) i dokleić do niego ulubiony
mikrokontroler (kolejne 5 zł) - oby nóżek starczyło na podłączenie LCD.
Standardowy w tym przypadku protokół CrystalFontz jest w sieci
wystarczająco dobrze opisany, można znaleźć też przykłady softu go
obsługującego (tzn. gadające z komputerem przez UART oraz z równoległym
modułem LCD). Zaletą jest dodatkowo zasilanie wyświetlacza z 5V (USB) -
to rozwiązanie wygrywa z LPT.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Zbych
Guest
Mon May 11, 2009 6:38 pm
Adam Dybkowski pisze:
Quote:
No to już może lepiej kupić najtańszy konwerter USB->RS232
[...]
Zaletą jest dodatkowo zasilanie wyświetlacza z 5V (USB)
Możesz podać przykład takiego konwertera z wyprowadzonym zasilaniem?
Miałem w łapach, ze 3 różne konwertery do nokii i niestety żaden nie
miał wyprowadzonego zasilania z USB.
J.F.
Guest
Mon May 11, 2009 9:26 pm
On Sun, 10 May 2009 21:47:49 +0200, Mirek wrote:
Quote:
J.F. wrote:
Trzeba bedzie jakis sprytny impulsatorek podlaczyc do lini BUSY, a
moze INTR ..
Z BUSY to problemu nie będzie - wystarczy podać na stałe NOT-BUSY,
gorzej może być faktycznie z ACK (o ile jest niezbędny) - może wystarczy
podać zanegowany sygnał STROBE?
Dawno temu to Busy byl niezbedny, ale to bylo pare windowsow temu :-)
J.
Adam Dybkowski
Guest
Thu May 14, 2009 1:16 am
Zbych pisze:
Quote:
No to już może lepiej kupić najtańszy konwerter USB->RS232
[...]
Zaletą jest dodatkowo zasilanie wyświetlacza z 5V (USB)
Możesz podać przykład takiego konwertera z wyprowadzonym zasilaniem?
Miałem w łapach, ze 3 różne konwertery do nokii i niestety żaden nie
miał wyprowadzonego zasilania z USB.
Ale dlaczego chcesz stuprocentowego gotowca? Jeżeli brakuje jednego
przewodu to go dolutuj i po sprawie. Zasilanie 5V ze złącza USB (AFAIR
pin nr 1) i tak musi trafiać na scalak konwertera USB-UART, jeżeli
trzeba to go wyprowadź na zewnątrz. I tak przecież musisz czymś zastąpić
tą wtyczkę Nokii, Samsunga czy inną. Najlepiej w ogóle rozbebeszyć
kompletnie gotowy konwerter i zintegrować ze swoim urządzeniem (w jednej
obudowie obok wyświetlacza), obok dodasz ładne gniazdko USB-B i będzie
gites.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
Goto page 1, 2 Next