Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Wydruk z mikrokontrolera na drukarkę USB

adam220 03 Gru 2012 17:51 1449 6
  • #1 03 Gru 2012 17:51
    adam220
    Poziom 14  

    Witam,
    Chodzi o wydruk z uK na drukarkę z emulacją (np IBM proprinter) za pomoca portu szeregowego.

    Wstępnie widzę to tak:
    - Mikrokontroler Atmega8 lub 16, (taki bez USB) wysyła znaki na UART,
    - dalej podpinam przejściówkę RS232-USB (oczywiście taka która widzi TTL 5V)
    - do tego USB podpinam typową drukarkę USB z emulacją jakiegoś znanego protokołu np IBM proprinter.
    i drukuję:)

    Czy są jakieś przeszkody?
    A może jest jakiś inny, łatwy sposób żeby z uK drukować na typowej drukarce?
    Program byłby napisany raczej w Bascomie, obsługi USB nie znam, rozwiązanie miałoby być proste.

    0 6
  • #2 03 Gru 2012 18:00
    marcelrz
    Poziom 12  

    To raczej tak nie działa, bo po USART wysyła znaki, albo pojedyncze bity, więc raczej ciężko będzie. A przejściówka emuluje najczęściej port COM. Chociaż jak się bardziej zastanowiłem, to programowa emulacja protokołu może mieć sens. Grunt to pilnować timingów.

    0
  • #3 03 Gru 2012 18:31
    GSM
    Poziom 25  

    Poczytaj o USB Host USB OTG (On-The-Go).
    Przejściówki USB<->UART o których myślisz nie mają funkcji host-a - tu twój plan upada.

    Pozdrawiam,
    GSM

    0
  • #4 03 Gru 2012 18:32
    adam220
    Poziom 14  

    Jakto, przecież gdy wysyłam znaki z UARTA sa one tylko oprawione w przodu i z tyłu bitami startu/parzystości/stopu. Inny UART (ten w drukarce) otrzymując tę transmisję "wypakowuje sobie" te znaki. Nastąpi interpretacja, tzn ewentualne znaki sterujące ASCII przełożą się na ustawienia sprzętu a reszta zostanie wydrukowana np w trybie tekstowym.

    Mylę się? Poprawcie mnie.

    A może lepsza by była przejściówka USB-LPT + drukarka z portem lpt?
    Wyobrażam sobie przekształcenie transmisji szeregowej na równoległą jako oczyszczenie odebranych znaków z bitów startu/parzystości/stopu i wpisanie bajtu na poszczególne linie portu równoległego.

    Czy tak działaby właśnie przejściówka USB-LPT?

    0
  • #5 03 Gru 2012 18:38
    GSM
    Poziom 25  

    adam220 napisał:
    Inny UART (ten w drukarce) (...)

    Kto ci powiedział, że w drukarce jest drugi UART? Drukarka jest pełnoprawnym urządzeniem USB, nie musi udawać portu szeregowego.

    To co piszesz dalej to tylko bardzo duży skrót.

    Skoro możesz wykorzystać drukarkę LPT, to poco wprowadzać tu jeszcze dodatkowo USB? Podłączyć ją bezpośrednio do mikrokontrolera. Wszystko się niewyobrażalnie uprości.

    Pozdrawiam,
    GSM

    0
  • Pomocny post
    #6 03 Gru 2012 18:51
    piotrva
    Moderator Mikrokontrolery

    Nie dasz rady za pomocą USB<>RS232 uruchomić w ten sposób drukarki. Dlaczego? Bo przejściówki USB<>RS232 działają tylko w trybie device - znaczy pracują tylko wtedy gdy są podłączone do hosta usb (np. komputera), który używa odpowiednich sterowników. W drugą stronę nie ma szans.
    Ty potrzebowałbyś hosta USB, czyli urządzenia które może obsługiwać inne urządzenia USB (takie jak pendrive, mysz, klawiatura, DRUKARKA). Choć nawet jakbyś zmontował takie urządzenie to i tak szanse na komunikację z drukarką USB przewidują jako dosyć marne - skąd niby będziesz wiedział jak i jakie dane przesyłają sterowniki do komputera? W czasach USB już niestety nie robią pełnych dokumentacji kodów sterujących - dają tylko zamknięte sterowniki. (No może nie jest to niemożliwe, ale patrząc na Twoje doświadczenie w temacie i znajomość USB - nie ma szans).
    ---
    Jeśli masz drukarkę LPT lub lepiej drukarkę z interfejsem szeregowym to sprawa jest banalnie prosta. Ogólnie zabawę z drukowaniem polecam zacząć od drukarek igłowych. Jak poszukasz to w sieci znajdziesz małe modele na RS232 lub w rozsądnej cenie normalne drukarki na LPT lub LPT+RS232. W pierwszym przypadku możesz połączyć procesor niemalże bezpośrednio (LPT), w drugim (RS232) wystarczy tylko tani i prosty układ max232.

    Sam kiedyś miałem podobne problemy i oto co powstało (stare, jeszcze z czasów mojej przygody z Bascomem, ale działa ;) )
    https://www.elektroda.pl/rtvforum/topic1666924.html

    0
  • #7 04 Gru 2012 12:10
    adam220
    Poziom 14  

    Witam,
    dziękuję za odpowiedzi, szczególnie koledze piotrva.
    Niepotrzebnie skierowałem pytanie na rs232 a tymbardziej na USB którego nie znam.

    Podpowiedź piotrva żeby rozważyć LPT jest w tym wypadku trafna.

    Pójdę w tym kierunku tzn Mikrokontroler + drukarka z LPT sterowana w trybie SPP.
    Twój program ze wskazanego wątku o maszynie do pisania z LPT wyjaśnia wszystko i jest do wykorzystania.

    Dzięki i >>pomógł<< oczywiście.

    A.

    0