Fórum témák

» Több friss téma
Fórum » PS2 billentyűzet PIC-hez
Lapozás: OK   1 / 1
(#) Rikfic hozzászólása Júl 8, 2007 /
 
Helló Mindenki!

Szeretnék PS2-es billentyűzetet PIC-hez illeszteni. A Google-ben csak angol leírást találtam és az angol nem az erősségem, gondoltam előbb megkérdezem itt az okos kollégákat, tudnak-e segíteni (talán így gyorsabb).

- Szóval, valamilyen konkrét protokoll-ra lenne szükségem, ami alapján fel tudom programozni a PIC-et.

Köszönöm!
(#) dpeti válasza Rikfic hozzászólására (») Júl 8, 2007 /
 
ez megfelel?

Bővebben: Link

vagy ez:

Bővebben: Link
(#) potyo válasza Rikfic hozzászólására (») Júl 8, 2007 /
 
Hát a protokoll az a PS2 protokoll. Szerintem nem kell sok angol tudás a megértéséhez, én legalábbis az alábbi két oldal alapján összehoztam egy PS2 dekódoló rutint C-ben egy 18F2550-hez. Nem bonyolult a C kód sem, nem nagy dolog átírni asm-re. Ha érdekel a kód, amit írtam, megoszthatom. Mondjuk egyenlőre csak a billentyűzet által küldött adatok fogadása van meg, a billentyűzet felé még nincs kész a kommunikáció, de az gondolom nemis annyira lényeges számodra.


A lényeg, hogy az órajel láb lefutó élére kell reagálni, és ebben a pillanatban megnézni az adatlábat. Az adatlábon megjelenő jel ugyanolyan, mint a soros porton megjelenő, csak itt 9 adatbit van, és a sebességet az órajel láb határozza meg, nincs szabványos sebesség.


http://www.electronic-engineering.ch/microchip/projects/keyboard/v1...x.html
http://www.networktechinc.com/ps2-prots.html
(#) potyo válasza Rikfic hozzászólására (») Júl 8, 2007 /
 
(#) Stadi válasza potyo hozzászólására (») Júl 8, 2007 /
 
Szerintem érdekel bennünket a kód. Miért kell ezt mindig megkérdezni? Kódot föl, oszt' kész...
(#) potyo válasza Stadi hozzászólására (») Júl 8, 2007 /
 
Jóvan, csak ráncba kell szedni, meg némi kommentet hozzáadni, hogy érthető legyen más számára is.
(#) Stadi válasza potyo hozzászólására (») Júl 8, 2007 /
 
Előre is köszönjük, Mester!
(#) Rikfic válasza potyo hozzászólására (») Júl 8, 2007 /
 
Nagyon örülnék a programnak, de azt hiszem más ide látogatók is...
Imába foglalom a neved, ha megkapom

Előre is nagyon köszönöm
(#) potyo hozzászólása Júl 8, 2007 / 4
 
Na itt kód. Csak ami magyarul van kommentezve, az kell a PS2 feldolgozásához. Nem megszakításból van az egész kezelve, mert az valamiért bezavar az usb-nek, de ezt remélem nem gond átírni, ha úgy kell.

Várom a kérdéseket.

main.c
    
(#) potyo válasza Rikfic hozzászólására (») Júl 8, 2007 /
 
Most nézem, benn maradt két sor:
if (kod==0x22)
LATCbits.LATC2^=1;
Ez szintén csak egy ledet kapcsolt ki-be, amikor a bejövő kód 0x22 volt. Csak a teszteléshez kellett, amúgy nincs rá szükség.
(#) ha1drp hozzászólása Júl 9, 2007 /
 
Jól használható a mikroe compiler-ei is. Mindegyik ismeri a PS2-t.
Bővebben: Link
(#) 5cmarzo hozzászólása Dec 2, 2007 /
 
Hello!
Egy dolgot nem értek. Miért akar (kell) a számítógép adatot küldeni a billentyűzet felé?
(#) Topi válasza 5cmarzo hozzászólására (») Dec 2, 2007 /
 
Pl. ha két billentyűzet van egy gépre kötve, akkor egyiken benyomon a NumLock-ot és a másikon is bekapcsol a led. Ezért kell például. De sok olyan dolog van amiért még szükség van rá. Nem egy billentyű van, ahol néhány működési paramétert gépen tudsz szetupolni.

Továbbá fel kell szólítani a billentyűt indulásnál, és el kell indítani az init folyamatot.
(#) dpeti válasza Topi hozzászólására (») Dec 2, 2007 /
 
vagy pl a gép azt mondja, hogy én most energiatakarékos állapotba kapcsolok, te is kapcsold ki magad, esetleg figyeld X billentyű lenyomását...
(bár nem tudom hogy létezik-e ilyen, de nem lenne hülyeség)
(#) potyo válasza 5cmarzo hozzászólására (») Dec 2, 2007 /
 
Az egyik ilyen látható dolog, az a ledek állapotának beállítása. A num lock az egy ugyanolyan gomb, mint pl. a C betű. Generál egy kódot a lenyomás pillanatában, amit elküld a gépnek. A ledet a gombnyomás közvetlenül nem állítja. A gép amikor vett egy Num Lock jelet, akkor sajátmagának eldönti, hogy most a be vagy kikapcsolt állapotban legyen-e a num lock funkció, és küld egy parancsot a billentyűzet felé, hogy kapcsold már be (vagy ki) a num lock ledet.

A másik, hogy az adatátvitel során van hibaellenőrzés is, paritásbit segítségével. Ha a gép hibásnak érzékeli a vett adatot, akkor küld parancsot a billentyűzet felé, hogy ismételd már meg az előzőt.

Azután van olyan is, hogy a gép periódikusan lekérdezheti, hogy a billentyűzet jelen van-e. Küld egy Echo parancsot (asszem EEh), amire a billentyűzet szintén Echo-val (EEh) válaszol. Ha nincs válasz, akkor valami probléma van, ebben az esetben megpróbálhatja resetelni a billentyűzetet.

PS2 billentyűzetnél az ismétlés sebességét is szintén egy paranccsal lehet állítani. (USB billentyűnél az ismétlés is szoftveresen van megoldva, csak a billentyű lenyomásakor és felengedésekor van kódgenerálás.)

Viszont a billentyűk funkciója nem módosítható. Ha lenyomtál valamit, az mindig ugyanazt a kódot generálja. Az állíthatóság (pl. multimédiás billentyűzeteknél) szoftveresen van megoldva. Persze elvileg nem lehetetlen megoldani, hogy az adott gomb másik kódot generáljon, de idáig még nem láttam erről szóló leírást a neten.

Az indításnál igazából nem lenne lényeges a kétirányú kommunikáció. Bekapcsoláskor a billentyűzet küld egy BAT jelet (Basic Assurance Test), amivel jelzi a gépnek, hogy jelen van, és hogy készen áll a működésre.
(#) 5cmarzo hozzászólása Dec 3, 2007 /
 
Értem. És mi van akkor, hogyha, mint a címben is szerepel, mikrokontrollerhez akarom csatlakoztatni a billentyűzetet. Akkor is feltétlen szükség van az oda - vissza kommunikációra?
(#) dpeti válasza 5cmarzo hozzászólására (») Dec 3, 2007 /
 
az csak egy fícsör... vagy használod vagy nem...
(#) 5cmarzo hozzászólása Dec 3, 2007 /
 
Úgy értem, hogy ha a num lock LED-jet nem használom. Nekem csak a billentyűk kellenet. A billentyűn nem kell semmiféle visszajelzés. Ekkor elég csak a egy irányú komunikáció, nem?
(#) potyo válasza 5cmarzo hozzászólására (») Dec 4, 2007 /
 
Akkor elég. Bekapcsolás után 7-800ms múlva kapsz a billentyűzettől egy BAT jelet, és azután készen áll a működésre.
(#) Udvari Zsombor hozzászólása Ápr 18, 2017 /
 
Egy PS/2 billentyűzetet szeretnék bekötni PIC16F88-hoz, hogy a RA2 lábra data, RA3 pedig clock menjen. A kód már kész, csupán a bekötéshez kellene segítség: piros, sárga, zöld és barna erek jönnek a billentyűzettől, és ha a sárgát negatívra húzom, akkor folyamatosan villog a billentyűzet, viszont ha a barna(?) és zöld(?) a tápfesz, akkor pedig folyamatosan világít. Azt kellene elérni, hogy ugyanúgy, mint rendes számítógépnél egyet villanjon, majd lehessen használni. Tehát mit hova kössek?
(?)Nem vagyok benne biztos...
(#) Pali79 válasza Udvari Zsombor hozzászólására (») Ápr 18, 2017 /
 
(#) Udvari Zsombor válasza Pali79 hozzászólására (») Ápr 18, 2017 /
 
Köszi, a billentyűzeten eredetileg DIN csatlakozó volt, csak kérdés, hogy annak hasonlítanak-e az ér-színei PS/2-höz... Viszont holnap ez alapján megpróbálom kimérni...
(#) PDM hozzászólása Nov 7, 2021 /
 
PS2 felületet implementáltam PIC-re (F883) és egy PS2/USB átalakítón
át viszek be adatokat egy PC-be,t.k. billentyűzetet emulálok.
A "NUMLOCK" állapotát ki lehet olvasni a PS2 felületen?
Kösz. a válaszokat előre is.
(#) benjami válasza PDM hozzászólására (») Nov 7, 2021 /
 
A billentyűzet nem foglalkozik a numlock állapotával, mindössze scan kódokat küld a billentyű lenyomásakor és felengedésekor. A scan kódok nem függnek a módosító billentyűktől (shift, ctrl, capsloc, numlock stb). A scan kódok asc2 kóddá történő átalakítása már a PC (illetve a te esetedben a kontroller) feladata. Magyarul ha lenyomod a numlock billenytűt, elküldi a numlock billentyű scan kódját. A kontrollered feladata lesz, hogy ekkor küldjön a billentyűnek egy led állapot parancsot (amiben a numlock led már ellentétes állapotban lesz), és másik kódlapot használj az asc2 kóddá alakításhoz. ARM-hez itt egy ps2 billentyű és egér driver, ebből kibogarászható a működése.
(#) PDM válasza benjami hozzászólására (») Nov 8, 2021 /
 
Én a kontrollerről küldöm a scan kódokat a PC-re, de a billentyűzettel beállított NUMLOCK állapotától függ, hogy pl. a numerikus gombok "4"-es gombja scan kódjának küldése egy excel cellába a "4" -es számjegyet ír vagy a kurzort mozgatja egy cellával balra.
A PC h'60'-as címen található R/W regisztere mutatja a NUMLOCK állapotát.Ehhez akartam hozzáférni a PS2 felületről.
Most esett le a húszfilléres.
Küldök egy NUMLOCK scan kódot és beolvasom a PC-ről jövő, a LED-eket kapcsolgató választ.
Ha nem jó,küldök még egyet.
Kösz hogy foglalkoztál a dologgal.
A hozzászólás módosítva: Nov 8, 2021
(#) benjami válasza PDM hozzászólására (») Nov 8, 2021 /
 
Igen, a numlock scan kód küldés és led állapot parancs figyelése is jó, vagy akár használhatod a különálló nyíl gombok scan kódjait is. Ezek ugyan két bájtosak, de nem hiszem, hogy ez problémát jelentene.
Következő: »»   1 / 1
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem