 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 765 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Pet Okt 22, 2010 12:39 am Naslov sporočila: Pc tipkovnica |
|
|
z AVR-om bi želel ob določenih urah generirat določene ukaze in jih preko Ps2/vhoda tipkovnice poslati na PC..
Torej namesto, da napišem na tipkovnico PROGRAM1 + ENTER
bi to namesto mene naredil AVR..
Sem si pregledal par zadev, odprl tudi delujočo tipkovnico.. sprogramiral rutino za pošiljanje tipke "a" ..
a stvar ne dela..
tudi na osciloskopu sem pogledal in slika na osciloskopu na izhodu AVR-a in na izhodu tipkovnice ob pritisku tipke "a" je enaka..
Razlika je le v tem, da z tipkovnico deluje z avr-om pa ne..
Zato me zanima.. ali mogoče Pc tipkovnica po priključitvi pošlje kakšen signal Pc-ju, ta ji odgovori in tako Pc ve, da je tipkovnica priključena.
Ker jaz trenutno testiram le pošiljanje enega karakterja.. in seveda stvar ne deluje..
??
testiram pa na PIII Pc-ju zbootanem v DOS-u..
tipkovnica pa je AT.. klasična.. z PS/2 priključkom.
ideje?? |
|
Nazaj na vrh |
|
 |
Brane212 Član

Pridružen-a: Sob 13 Dec 2008 11:24 Prispevkov: 360 Aktiv.: 1.79 Kraj: LJUBLJANA
|
Objavljeno: Pet Okt 22, 2010 2:10 am Naslov sporočila: |
|
|
AFAIK je PS/2 dvosmerni protokol in ob resetu se med tipkovnico in PCjem zgodi nekaj komunikacije, resetiranja in nastavitev.
Poleg tega imaš za pritisk tipke dve kodi- ena je ob pritisnjeni tipki in druga ob spuščeni...
Čisto možno, da tvoja mašina ob resetu ne zazna tipkovnice in potem "ne šljivi" signalov na tem konektorju... _________________ On journey of life I chose the psycho path... |
|
Nazaj na vrh |
|
 |
zcetrt Član


Pridružen-a: Tor 13 Dec 2005 11:29 Prispevkov: 275 Aktiv.: 1.16 Kraj: Ljubljana
|
|
Nazaj na vrh |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 765 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Pet Okt 22, 2010 12:08 pm Naslov sporočila: |
|
|
Brane212 je napisal/a: |
AFAIK je PS/2 dvosmerni protokol in ob resetu se med tipkovnico in PCjem zgodi nekaj komunikacije, resetiranja in nastavitev. |
Hja.. to sem tudi opazilna osciloskopu.. samo nikjer ne najdem kako poteka ta komunikacija..
Ker poteka zadeva dvosmerno je težko določiti kdo kaj pošilja komu..
No odločil sem se, da kar paralelno na obstoječo tipkovnico dodam še moj kontroler..
Sama tipkonica bo sprejamal ukaze, vmes ko nobena tipka ne bo pritisnjena ali spuščena bom pa jaz kakšno tipko poslal.. in sprostil..
Citiram: |
Poleg tega imaš za pritisk tipke dve kodi- ena je ob pritisnjeni tipki in druga ob spuščeni... |
Vem..
Citiram: |
Čisto možno, da tvoja mašina ob resetu ne zazna tipkovnice in potem "ne šljivi"
signalov na tem konektorju... |
Jep.. verjetno bo to..
Še vedno iščem startup sekvenco.. |
|
Nazaj na vrh |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 765 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Pet Okt 22, 2010 12:17 pm Naslov sporočila: |
|
|
zcetrt je napisal/a: |
Upam, da kaj pomaga. Če ti pa kaj ne bo jasno, pa vprašaj. |
O super..
A imaš mogoče podatke kaj Pc želi od "tipkovnice" ob priklopu le te?
Kako pa PC zazna, da je tipkovnica priključena/odključena? a to stalno preverja?
Če prav razumem "tipkovnica" pošlje start, 8databitov, parity, stop (potem daš data na HI) in "tipkvnica" nato doda še en clock v katerem mu Pc odgovori tako, da vrne ACK z Lo statusom? to zgenerira Pc in ne "tipkovnica"?
prav razumem? |
|
Nazaj na vrh |
|
 |
Brane212 Član

Pridružen-a: Sob 13 Dec 2008 11:24 Prispevkov: 360 Aktiv.: 1.79 Kraj: LJUBLJANA
|
Objavljeno: Pet Okt 22, 2010 3:17 pm Naslov sporočila: |
|
|
Tu sem našel nekaj podatkov.
Nisem šel vsega preverjat, a vsaj na uč je videti v redu:
Interfacing AT keyboard... _________________ On journey of life I chose the psycho path... |
|
Nazaj na vrh |
|
 |
lojzek Član



Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3387 Aktiv.: 15.99
|
Objavljeno: Pon Okt 25, 2010 6:53 am Naslov sporočila: |
|
|
teslo, upam da si prebral kako deluje PS2 protokol. Poleg podatkov moraš ti (ker simuliraš tastaturo) generirati tudi takt komunikacije. Malce o tem je tudi tukaj , kjer sem se jaz mučil z enakim problemom, samo v nasprotni smeri.
Projekt je sicer zamrl, ampak tipkovnico oz barcode reader pa sem prebral z AVRjem. Nekje verjetno še obstoji delujoči program za branje tastature in potem pošiljanje na PC  |
|
Nazaj na vrh |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 765 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Pet Okt 29, 2010 9:35 pm Naslov sporočila: |
|
|
Ja seveda da sem prebral..
In točno enake signale sam generiram z AVR-om. A težava je v tem da ne izvem na kakšen način komunicira tipkovnica z PC-jem..
Kot kaže ob priključitivi tipkovnica pošlje nekaj PC-ju ta nekaj nazaj in na koncu se zmenita in potem potudjejo samo kode pritisnjenih in spuščenih tipk..
Torej to znam pošiljati.. kode stisnjenih in spuščenih tipk.. ne morem pa pogruntat reset komunikacije med tipkovnico in PC-jem..
Ker ko jaz na PS/2 vhod pc-ja priključim svojk AVR in začnem pošiljati tipke in spuščene tipke Pc ne zazna nič..
Moram še malo poizkusiti.. |
|
Nazaj na vrh |
|
 |
S56RGA Član

Pridružen-a: Čet 11 Sep 2008 13:33 Prispevkov: 325 Aktiv.: 1.59 Kraj: Koper
|
Objavljeno: Sob Okt 30, 2010 9:40 am Naslov sporočila: |
|
|
Tej težavi se boš najlažje izognil, če priključiš tvojo napravo paralelno tipkovnici. Računalnik pa naj bo zagnan kasneje. Na tak način dela precej barcode scanerjev. _________________ Agar |
|
Nazaj na vrh |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 765 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Pon Nov 01, 2010 1:58 am Naslov sporočila: |
|
|
Poizkušam naprej..
Tipkovnico sem razdrl, odstranil DATA in CLK linijo ter dal na vse skupaj dvojni preklopnik.
Ko je preklopnik v položaju A gresta na PC PS/2 port data in clk iz kontrolerja tipkovnice.
Ko pa je preklopnik v položaju B gresta na PC PS/2 port data in clk iz mojega kontrolerja.
Če na PS/2 vhod PC-ja ni nič priključeno sta tako data kot clk pin na HI nivoju.
Torej do tukaj vse lepo in prav.
Pred vklopom tipkovnice na PS/2 port dam preklopnik v pozicijo A, in priključim kabel tipkovnice v PS/2 vhod. Kontroler tipkovnice in PC se zmenita, nakar iz tipkovnice va PS/2 letijo samo signali pritisnjenih in spuščenih tik.. (preverjeno na osciloskopu).
Če takrat preklopim preklopnik na B položaj počakam par sekund in preklopim nazaj na A.. tipkovnica normalno deluje naprej.
Sam sem torej v AVR-u sprogramiral identično sekvenco in zadeva bi morala delovati.
Vseeno dokler ne priključim na PS/2 vhod so signali lepi.
Ko pa priključim na PC/2 vhod se mi zgodi to da se HI signal spusti.. torej ni na 5V ampak na recimo 3-3,5V.
Je pa res, da imam pin AVR-a (izhod AVR-a PC0) vezan direktno na PS/2 data in
PC1 na CLK PS/2.
Sedaj razmišljam kaj narediti? Dodati vmes kakšen 4050 ali 4049 ali kaj podobnega, da se bo HI signal dvignil na normalen nivo?
Ker potem pa bi stvar res morala normalno delovati..
Vseeno ap rabim vmes nenašen električni preklopnik ki bo krmiljen iz AVR-a
Torej ko bo hotel AVR pošiljati kode tipk v Pc bo preklopil na svoj Data in Clk pin, drugače pa bo na PS/2 izhod v PC vezan Data in Clk iz tipkovnice..
ideje? |
|
Nazaj na vrh |
|
 |
Brane212 Član

Pridružen-a: Sob 13 Dec 2008 11:24 Prispevkov: 360 Aktiv.: 1.79 Kraj: LJUBLJANA
|
Objavljeno: Pon Nov 01, 2010 4:50 am Naslov sporočila: |
|
|
AFAIK so vsi izhodi na PS/2 tipa open-collector, kar pomeni da rabiš zunanje pull-up upore in ustrezno nastavljene izhode.
Če AVR ne premore open-collector izhoda, ga moraš nekako simulirati.
En način je z izhodi, ki imajo tri state. Daš pač ničlo na izhod in ga potem glede na željeno vrednost tri-stateaš ali pa ne.
Drugi je recimo shottky dioda na izhodu ( in dodatni vhod za vhodni signal).
Poglej specifikacije in ne delaj na pamet. _________________ On journey of life I chose the psycho path... |
|
Nazaj na vrh |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 765 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Pon Nov 01, 2010 12:09 pm Naslov sporočila: |
|
|
Brane212 je napisal/a: |
AFAIK so vsi izhodi na PS/2 tipa open-collector, kar pomeni da rabiš zunanje pull-up upore in ustrezno nastavljene izhode.
Če AVR ne premore open-collector izhoda, ga moraš nekako simulirati. |
Hmm..
torej izhodi so open collector.. in tudi moj izhod iz AVR-a bi moral biti tipa open collector.
Torej mi ne preostane drugega kot da izhod iz AVR-a preko PNP tranzistorja vežem na Data in SCK na PS/2 portu? in dodam še pull up upor recimo 10K?
razmišljam pravilno?
Citiram: |
En način je z izhodi, ki imajo tri state. Daš pač ničlo na izhod in ga potem glede na željeno vrednost tri-stateaš ali pa ne. |
Oziroma kot berem specifikacije portov na AVR-u obstaja možnost, da daš pin na vhod in takrat je v stanju visoke impedance torej takrat ne more vleči Hi nivoja na DATA ali SCK liniji navzdol?
?? |
|
Nazaj na vrh |
|
 |
Brane212 Član

Pridružen-a: Sob 13 Dec 2008 11:24 Prispevkov: 360 Aktiv.: 1.79 Kraj: LJUBLJANA
|
Objavljeno: Pon Nov 01, 2010 12:18 pm Naslov sporočila: |
|
|
teslo je napisal/a: |
Hmm..
torej izhodi so open collector.. in tudi moj izhod iz AVR-a bi moral biti tipa open collector.
Torej mi ne preostane drugega kot da izhod iz AVR-a preko PNP tranzistorja vežem na Data in SCK na PS/2 portu? in dodam še pull up upor recimo 10K?
razmišljam pravilno? |
Ne. Problem je v tem,d a tako ne mroeš garantirati zadosti nizke napetosti, ki bi bila zaznana kot "0". Poleg tega je pri Oopen collectorju neaktivno stanje, ko je na žici napetost, ker takrat noben od driverjev ne prevaja, le pull-up upore pač vleče signal visoko.
Najelegantnejša rešitev je, da uporabiš tri-state capability, ki ga imaš v mikrokontrolerju na tak ali drugačen način. Lahko tudi tako kot si se namenil, postaviš stalno ničlo na izhodni pin, ki ga takrat, ko ničle ne rabiš , konfiguriraš kot vhodni pin.
Kakor ti je lažje. Moraš pa poskreti za pull-up upor, če ta ni že kje v PC-ju... _________________ On journey of life I chose the psycho path... |
|
Nazaj na vrh |
|
 |
Brane212 Član

Pridružen-a: Sob 13 Dec 2008 11:24 Prispevkov: 360 Aktiv.: 1.79 Kraj: LJUBLJANA
|
Objavljeno: Pon Nov 01, 2010 12:25 pm Naslov sporočila: |
|
|
Pa nisem ziher, da je vse tako simpl glede drajvanja signalov.
Kolikor se spomnim, obe strani lahko uporabljata oba signala za to, da komunikacijo kadarkoli ustavita ali upočasnita. AFAIK ni čisto tako,d a ena stran kar tako odvrti sekvenco in krmili obe liniji, ne da bi poslušala.
Preberi ti še enkrat protokol... _________________ On journey of life I chose the psycho path... |
|
Nazaj na vrh |
|
 |
clownfish Član

Pridružen-a: Pet 05 Avg 2005 13:05 Prispevkov: 765 Aktiv.: 3.23 Kraj: Povir / Ljubljana
|
Objavljeno: Pon Nov 01, 2010 12:55 pm Naslov sporočila: |
|
|
Brane212 je napisal/a: |
Preberi ti še enkrat protokol... |
Če sem prav razumel tisti, ki sproži zahtevo za komunikacijo spusti start bit, zgenerira clock signal in za parity bitom doda še stop bit in še ne clock signal v katerem tisti, ki posluša da acknowledge z data na LO.
Torej če je probelm v HI stanju ki se "poda" vedno ko hočem dati naprimer clock na Hi nivo dam pin na Hi in ga preklopim v vhodni pin torej Hi-z. Tako bo Hi stanje res na 5V saj ga nič ne bo dol vleklo.
Prav tako naredim na Data liniji s tem da na koncu po stop-bitu poslušam ali je Pc dal acknowledge status..
??
tole sem našel tukajle:
http://www.electronics-related.com/usenet/basics/show/59989-1.php
Citiram: |
With the arduino (and other similar microcontrollers) you can fake
open-collector by putting the IO pins into "input mode" when you want the
open-collector off and into output mode with a 0 value when you want
it on, this means you can use the other pins for something else. |
ker je Arduino v bistvu AVR to velja tudi v mojem primeru.. ? |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 494 dni
Powered by phpBB © 2001, 2005 phpBB Group
|