logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega/bascom/Klawiatura USB

Marcin qazwsx 20 Cze 2010 18:34 6270 16
REKLAMA
  • #1 8210900
    Marcin qazwsx
    Poziom 10  
    witam
    posiadam klawiaturę numeryczną na USB i chcę ją podłączyć do Atmegi 16. doprowadziłem do klawiatury zasilanie 5 V i wyprowadziłem dwa pozostałe piny na wejście Atmegi.
    korzystając z książki napisałem następujący program

    
    $regfile = "m16def.DAT"
    $crystal = 8000000
    
    Config Lcd = 16 * 2
    Config Lcdpin = Pin , Db7 = Portd.5 , Db6 = Portd.4 , Db5 = Portd.3 , Db4 = Portd.2 , E = Portd.1 , Rs = Portd.0
    
    Config Keyboard = Pinb.0 , Data = Pinb.1 , Keydata = Keydata
    
    Dim K1 As Byte
    Dim X As Word
    
    Cls
    Do
    
    K1 = Getatkbd()
    If K1 > 0 Then
       If K1 > 31 And K1 < 127 Then
       Lcd Chr(k1)
       End If
    End If
    
    Loop
    
    

    
    
    
    Keydata:
    
    
    
    Data 0 , 0 , 0 , 0 , 0 , 200 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , &H5E , 0
    
    Data 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 , 115 , 97 , 119 , 50 , 0
    
    Data 0 , 99 , 120 , 100 , 101 , 52 , 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0
    
    Data 0 , 110 , 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55 , 56 , 0
    
    Data 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45 , 108 , 48 , 112 , 43 , 0
    
    Data 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0 , 0 , 13 , 0 , 0 , 92 , 0 , 0
    
    Data 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0
    
    Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
    
    
    
    
    Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0
    
    Data 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65 , 87 , 34 , 0
    
    Data 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86 , 70 , 84 , 82 , 37 , 0
    
    Data 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0 , 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0
    
    Data 0 , 59 , 75 , 73 , 79 , 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0
    
    Data 0 , 0 , 0 , 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0
    
    Data 0 , 62 , 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0
    
    Data 48 , 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
    


    ale układ mi nie działa:(
    może klawiatura na USB to nie to samo co klawiatura AT?
    Czy jest rozwiązanie takiego problemu a moze ma ktoś gotowy układ?

    Proszę umieścić kod w znacznikach code.
    Robak
  • REKLAMA
  • #2 8210915
    utak3r
    Poziom 25  
    Klawiatura na USB to urządzenie klasy HID - to kompletnie coś innego, niż klawiatura podłączana choćby przez PS/2, nie wspominając o klasycznym wejściu klawiatury.
  • REKLAMA
  • #3 8210935
    krzychS
    Poziom 29  
    Ten program obsługuję tylko klawiaturę ze złączem PS/2 (lub starsze DIN).
  • #4 8210990
    scsi
    Poziom 11  
    Widziałem gdzieś na sieci projekt (schemat + wsad + kod źródłowy) podłączenia klawiatury i myszy na USB do Atmela (AT902313). Najlepiej poszukaj w google.

    Znalazłem w ASM + schemat. Może Ci to pomoże.
    Załączniki:
  • #5 8211896
    Marcin qazwsx
    Poziom 10  
    jak by ktoś miał taki kod który mi obsłuży ta klawiaturę był bym baaardzo zadowolony.
  • #6 8212196
    m.bartczak
    Poziom 16  
    W sumie najłatwiejszy sposób jaki znam na podłączenie takiej klawiatury to v-usb:

    Tu masz przykład jak podłączyć klawiaturę 17 przyciskową (prawie numeryczną :)) do ATmegi8

    ATMega16 ma więcej pinów, więc pewnie spokojnie da się i całą klawiaturkę numeryczną obsłużyć.

    http://www.obdev.at/products/vusb/hidkeys.html
  • #7 8212223
    utak3r
    Poziom 25  
    Ale ten przykład, który podałeś, to jest własna implementacja HIDa... a Kolega tutaj ma już gotową takową klawiaturę i chce ją podłączyć do uC.
  • #8 8213362
    Marcin qazwsx
    Poziom 10  
    A czy jest może jakaś przejściówka z USB na PS2 która zadziała mi w tym przypadku. bo jak kupiłem w sklepie przejściówka i przemierzyłem jej styki okazuje się że ona nie posiada żadnego elementu konwertującego te sygnały.
  • REKLAMA
  • #9 8213640
    utak3r
    Poziom 25  
    "Przemierzyłeś"?.... :|
    W takiej przejściówce jest układ scalony, najczęściej UC451A.
  • #10 8214439
    piotrva
    VIP Zasłużony dla elektroda
    też zastanawiam się czy klawiatura podpięta przez przejściówkę by działała...
    bo skoro ma służyć do podpinania klawiatur USB do starszych komputerów to powinna na wyjściu dawać sygnały zgodne z ps2...
  • #11 8214641
    tmf
    VIP Zasłużony dla elektroda
    Tylko nie wiem czy to sama klawiatura nie musi obsługiwać starego interfejsu. Np. w przypadku myszy przejściówka to było tylko złącze, a mysz sama się przestawiała na stary protokół. W przypadku klawiatur może być podobnie. Podpięcie jej do ATMegi jako urządzenia USB może graniczyć z cudem, bo wymagałoby to implementacji raczej skomplikowanego hosta-USB. Wtedy lepiej by było od razu przejść na procesor, który ma USB-host i gotowe sterowniki do obsługi.
  • REKLAMA
  • #12 8216554
    utak3r
    Poziom 25  
    Może po prostu wejdź do środka i omiń cały układ USB i wepnij się pod klawisze.
  • #13 8217425
    Marcin qazwsx
    Poziom 10  
    piszę licencjata i w pracy napisałem że do Admegi jest podłączona klawiatura z PC. dlatego tak bardzo chce to podłączyć. szukałem przejściówek z USB na PS/2 ale są tylko takie

    Atmega/bascom/Klawiatura USB

    posiadam taka w domu i okazuje się że piny z usb są tylko przeniesione na PS/2 i nie mam w środku żadnego układu.

    zna ktoś może stronę gdzie jest przejrzyście opisane jak wygląda komunikacja klawiatury USB z komputerem?
  • #14 8217499
    Konto nie istnieje
    Konto nie istnieje  
  • #15 8217523
    Marcin qazwsx
    Poziom 10  
    a jak mam sprawdzić czy klawiatura obsługuje standard PS2. mam wyjście USB i podłączałem ja do wyżej napisanego programu.nie zadziałała.
    przez przejściówkę podłączyłem ją do komputera do portu PS2 i też nie zadziałała

    A nie umiem znaleźć nigdzie klawiatury numerycznej z wyjściem PS2.
  • #16 8645046
    satanistik
    Poziom 27  
    IBM robił takie klawiatury do swoich laptopów, mam gdzieś jedną i na 100% to ps2 tylko piny są zamienione w złączu. Tyle tylko że kody są inne - po wpięciu do PC są to kody z poza standardowego zakresu (dziwne znaczki asci) ale to nie problem dla up.
  • #17 8645357
    tmf
    VIP Zasłużony dla elektroda
    Sprawdzić czy działa jako PS/2 można prosto - jeśli w pudełku producent dodaje taką przejściówkę to działa. Szukaj klawiatur sprzed lat - nowe tych funkcji nie mają. Jeśli chcesz samemu zapimplementować to jest poważny problem. Ogólnie szukaj info o interfejsie HID - Atmel ma noty aplikacyjne z kodami, gdzie AVRy wyposażone w USB robią jako urządzenia HID. Oczywiście to ciągle będzie tylko implementacja USB-Device. USB-Host wyciągniesz z kernela Linuksa. Tylko sens tego niewielki - implementacja hosta na AVR graniczy z cudem.
REKLAMA