ENTERPRISE KLUB
2021. október 2., 1055 Budapest, Nyugati tér 9. 14-19 óráig
Belépés kizárólag klubtagok részére! (Klubkártyával vagy előfizetéssel!)
Welcome, Guest. Please login or register.


Author Topic: Billentyûfólia helyettesítés (Read 34708 times)

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.26 Firefox 3.6.26
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #75 on: 2012.December.11. 13:39:45 »
Esetleg nem lehet, hogy a szerző arra apellált, hogy a két utasítás elég közel van egymáshoz, és addig talán nem veszi át az EXOS a vezérlést?

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14017
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 17.0 Firefox 17.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Billentyûfólia helyettesítés
« Reply #76 on: 2012.December.11. 13:43:32 »
Quote from: Tuby128
Esetleg nem lehet, hogy a szerző arra apellált, hogy a két utasítás elég közel van egymáshoz, és addig talán nem veszi át az EXOS a vezérlést?
Szerintem a szerzők ki se próbálták amit leírtak! Ott van, hogy a NET: programhoz leírták a SERIAL: kábelbekötést, aztán mi meg hetekig szenvedtünk miért nem megy a hálózat.
Múltkor az is kiderült, hogy a nyomtató bekötését is rosszul írták le.

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.26 Firefox 3.6.26
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #77 on: 2012.December.11. 15:06:57 »
Igen, ezt már legutóbb is említetted. Azzal kapcsolatban nincs valami tanácsod, hogy hogyan lenne érdemes megcsinálni az EP buszbővítő foglalatot? Élcsatlakozós legyen vagy aljzatos? Esetleg mindkettő?

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14017
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 17.0 Firefox 17.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Billentyûfólia helyettesítés
« Reply #78 on: 2012.December.11. 15:15:03 »
Quote from: Tuby128
hogyan lenne érdemes megcsinálni az EP buszbővítő foglalatot? Élcsatlakozós legyen vagy aljzatos? Esetleg mindkettő?
Szerintem normál élcsatlakozó sávokkal, az mehet buszkártyába, élcsatlakozót ráforrasztva közvetlenül a gépre, meg lehet más, pl tüskesoros csatlakozót is ráforrasztani, ha valaki olyanból építene buszkártyát.

Offline lgb

  • EP addict
  • *
  • Posts: 3555
  • Country: hu
  • æðsta yfirmaður
  • OS:
  • Linux Linux
  • Browser:
  • Chrome 24.0.1312.35 Chrome 24.0.1312.35
    • View Profile
    • http://lgb.hu/
Re: Billentyûfólia helyettesítés
« Reply #79 on: 2012.December.11. 18:27:18 »
Quote from: Tuby128
Azt írja, hogy a kimeneti maximum áram 130mA. Egyszerre csak egy kimenetet lehet rövidre zárni, és ez is csak max 1s-ig tartható fent. Először is reménykedem, hogy a Z80 hamar végez a 181-es port olvasásával, másrészt ha nagyon rossz lenne a helyzet egyszerűen el kell harapni az IC tápfeszültség lábát, és kész.

Esetleg egy kapcsoloval h kulso/belso billencs, illetve kihozni a jelet kulon amivel a cucc le tudja kapcsolni a belsot :) Igaz ezekben az eseteken ugrott a szep elkepzeles h gep (belso) modositasa nelkul tortenik a dolog ... Felteve ha ez cel volt egyaltalan.

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.26 Firefox 3.6.26
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #80 on: 2012.December.12. 01:51:34 »
Halad a 3-as projekt. Már sikerüt kicsikarni adatokat a billentyűzettől. Nem igen értem, hogy miért van külön minden billentyűhöz MAKE (lenyomva) és BREAK (elengedve) kód, hogyha hosszan történő lenyomás esetén úgyis ismételgeti a MAKE kódot.
 Még bizonytalan a kommunikáció, holnapra kitalálok valamit ennek megoldására.
Néhány kép a részeredményről a csatolmányban látható (elnézést a szutykos billentyűzet miatt úgy túrtam elő valahonnan)

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.26 Firefox 3.6.26
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #81 on: 2012.December.12. 13:19:09 »
Azt olvasom az egyik PS/2 leírásban, hogy mivel ez a kommunikációs csatorna kétirányú, a Számítógép tud adatot küldeni a billentyűzetnek. Olyasmiket pl., hogy a LED-ek legyenek bekapcsolva, vagy hogy milyen legyen az ismétlési ráta, ha hosszan van lenyomva egy billentyű.

 Lehet, hogy itt keresztezték a funkciókat, hogy legyen annak is jó, aki szövegszerkesztőben dolgozik és sok nullát akar írni (ne a PC-t terheljük az ismétléssel), és annak is aki játszik és ügyességéről tesz tanúbizonyságot, amikor időben elenged egy gombot.

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows XP Windows XP
  • Browser:
  • Firefox 3.6.26 Firefox 3.6.26
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #82 on: 2012.December.17. 02:08:23 »
Elmesélem milyen problémába futottam bele. Tudni kell a PS/2 szabványról, hogy nagyjából 16kHz sebességgel történik az adatátvitel. A hosszú kábel miatt nem is nagyon lehetne több, mert a jelalak már jócskán torzul.
 A PS/2 adatátvitel áll egy órajel és egy adat vezetékből. Ha az órajelen (CLK) logikai alacsony "0V" jelszint van, akkor az adat (DATA) vonalon található jelszint érvényes, ha CLK magas, akkor DATA nem érvényes (ilyenkor teszi ki a következő érvényes bitet). A PS/2 keretekben küldi át az adatot, egy keret egy bájtot tartalmaz. A keret felépítése a következő:

Keret_kezdet bit (ez minidg logikai nulla)
0.bit
1.bit
2.bit
...
7.bit
paritásbit
Keret_vég bit (mindig logikai egy)

 Én arra gondoltam úgy oldom meg, hogy amikor a CLK vezetéken érkezik egy lefutó él (1-ből 0-ba vált) akkor érvényes az adat, és lehet olvasni. Aztán a következő ilyen esetben ismét. Minden lefutáskor egy számlálót növelek, így követhető, hogy éppen melyik bit van soron, és természetesen a keret végén nullázom a számlálót. Ez nagyszerűen működött is csak a végeredmény volt rossz. Furcsa számokat kaptam a kimeneten.

 Ezután kicsit elgondolkodtam, és rájöttem, hogy egy-egy lefutás vagy felfutás nem egyenes vonalon történik, hanem van benne egy lengés (lásd mellékelt kép nyíllal mutatott része). Ez a lengés azért alakul ki, mert a vezetéknek induktivitása és szórt kapacitása van, amiből összeáll a rezgőkör.
 Az élfigyelő nem képes önmagában detektálni, hogy az most lengés-e vagy valódi le/felfutó él történt. Így adódik, hogy a képen akár 3 lefutó él is megjelenik ugyanannál a bitnél. Mivel a számláló 3-szor növekedett a kívánt 1 helyett, az egész vétel elcsúszott, és a továbbiakban használhatatlan információhoz jutottam.

 Az egyetlen megoldás, ha fel/lefutó él megjelenése után egy késleltető letiltja egy időre az élfigyelést. (mondjuk 10us PS/2 esetén) Ettől biztosabbá válik az adatfogadás, ezzel párhuzamosan sajnos nő a bonyolultság így a felhasznált logika mennyisége.

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 21.0 Firefox 21.0
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #83 on: 2015.March.01. 15:14:55 »
Jajj, de régen is csináltam ezeket a dolgokat.
  Most hétvégén az erő velem volt és elgondolkoztam. Valamelyik fórumtárs említette egyszer, hogy mindig előbukik ez a jelenség, hogy az EP-t illeszteni szeretnénk olyan technikához, ami már régen elavult. Abban a kommentben, a VGA kimenetre utalt, és azt írta, miért nem inkább HDMI-re fejlesztünk egyből?!
 Ezeket a szavakat mélyen eltároltam magamban, és most feljött a felszínre. Miért PS/2-es billentyűzetre, ha manapság az USB az egyedüli kapható megoldás?

 Gondolatban eldobtam a PS/2-es lehetőséget, és megpróbáltam egy USB-s megoldást kitalálni. Átnyálaztam az Internetet és olcsó könnyen megvalósítható lehetőséget kerestem. Meg is találtam a nekem tetszőt, a tervem a következőképpen hangzik:
 Veszek egy mikrokontrollert, ami tud USB-host ként működni. Felépítem az USB csatlakozós bemenetet. A kapott billentyűzetkódot átalakítom az EP out utasításával dekódolható formára ezt átadom egy CPLD-nek.
 Ha jön az IN/OUT utasítás a CPU-tól, a busz kiterjesztőre kapcsolt MAX2-es CPLD-vel dekódolom, és kiadom a buszra az aktuális állapotot.

Pipalista:
-(✓) 4db Mikrokontroller megvéve (szállítás: 2015.márc 5.)
-(✓) CPLD hegyekben áll otthon
-(✓) Élcsatlakozó megvéve (szállítás: 2015. márc vége)
-(✓) Spec. display a mikrokontrollernek megvéve - hibakereséshez (szállítás: 2015. márc vége)
-(✓) Mikrokontroller USB Bázis-Program
-(✓) Mikrokontroller bill.kód dekódoló
-(X) CPLD címdekódoló program
-(X) Nyákterv
-(X) Külső 5V táp

-(X) Prototípus nyák készítő céget kellene találni ami jutányos árban dolgozik
-(✓) SMD forrasztástechnikai felszerelés
« Last Edit: 2015.March.04. 17:20:44 by tubybb »

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14017
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 36.0 Firefox 36.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Billentyûfólia helyettesítés
« Reply #84 on: 2015.March.01. 18:34:38 »
Buszon nem fogsz tudni billentyűzetet csinálni, gép belsejébe kell rakni. Érdemes átolvasnod Z80System Ardunios projektjét, ott volt szó erről, meg, hogy milyen sebességet kell tudni, stb.

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #85 on: 2015.March.01. 19:21:20 »
Buszon nem fogsz tudni billentyűzetet csinálni, gép belsejébe kell rakni.

Sejtem hogy mit akar csinálni, de ezt majd jól elmondja ő. :) Szerintem a buszon a billentyűzet kiválasztó portjának az írását el akarja kapni, majd az olvasáskor a belső '373 adatával "keresztbe hajtva" rá akarja kényszeríteni a buszra a saját, új adatát. Trükkös! :)

Offline Zozosoft

  • EP addict
  • *
  • Posts: 14017
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 36.0 Firefox 36.0
    • View Profile
    • http://enterprise.iko.hu/
Re: Billentyûfólia helyettesítés
« Reply #86 on: 2015.March.01. 19:31:23 »
a belső '373 adatával "keresztbe hajtva" rá akarja kényszeríteni a buszra a saját, új adatát.
És ebből nem lesz az, hogy hosszú távon valamelyik elszáll?

De az biztos, hogy így az eredeti billentyűzet nem lesz használható.

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #87 on: 2015.March.01. 20:46:38 »
És ebből nem lesz az, hogy hosszú távon valamelyik elszáll?

A gépben levő 74LS373 buszmeghajtó kimenetekkel rendelkezik, azok ezt azért bírni szokták. De erre oda is kell figyelni, mivel "jól meg kell tolni" a vonalakat, hogy mást kényszerítsen rá a kimeneteire. Persze erősen dirty hack a dolog, de otthonra elmegy. :) (Én azért nem szívesen csinálnék terméket ilyen megoldással, de mindig mindent túlaggódok, legalábbis ezt mondják. :-D )

De az biztos, hogy így az eredeti billentyűzet nem lesz használható.

Mehet az továbbra is, feltéve hogy a kolléga az aktív oszlopvonalakat csak lefele akarja húzni, tehát aktív magasra nem akarja kényszeríteni. A másik topikban említett "találmány" alapján erre következtetek, de szerintem várjuk meg hogy elmondja az ötletét. :)

Offline Tuby128

  • EP lover
  • *
  • Posts: 971
  • Country: hu
  • OS:
  • Windows 7/Server 2008 R2 Windows 7/Server 2008 R2
  • Browser:
  • Firefox 21.0 Firefox 21.0
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #88 on: 2015.March.01. 21:40:56 »
A 74LS145-ös IC adatlapján a következő info található (lásd csatolt táblázat).
Vegyük az esetet, amikor a belső bill. nem használt csak a külsővel dolgozunk:
Pirossal bekereteztem a maximális áramot ami a logaikai magas jel alacsony jelszintre való kényszerítésekor folyik. Ez olyan alacsony áram, hogy az IC-nek meg sem kottyan. Én úgy saccolom, hogy az IC-ben egy 5KΩ-os felhúzóellenállás van, amit egy nyitott kollektoros tranzisztor húz le, ha logikai alacsony jelre van szükség. (ezt az adatlap nem írja, én gondolom így)
 Amennyiben ez valóban így van, akkor mindegy, hogy az LS145-ös vagy a külső egység kényszeríti ki a logikai alacsonyt.

 Továbbá a második rajzon látható RD0 jel olvasáskor olyan rövid ideig aktív, hogy csak néhány tized μs-ig tartó terhelésről beszélünk. Ha figyelembe vesszük az alaplap vezetékhosszból adódó induktivitását, ennyi idő alatt ki sem tudna alakulni nagy áram. Akkor alakulhatna csak ki "meleg helyzet" (nem károsodás!), ha az EP pont olvasáskor kifagy, megáll. De ezt a védelmet bele tudom írni a CPLD-be.

 Számításaim szerint mindkét billentyűzet használható lesz párhuzamosan, mert ha a bővítőn lévő CPLD nagy ohmikus felhúzóellenállásokkal biztosítja a magas szintet, a 74LS145-ös a logikai alacsony kimenőjellel az egész vonalat 0-ba "rántja", így a Z80-CPU azt is érzékelni tudja. Ekkor sem terhelődik meg nagyon, mert a csatolt táblázatban az LS145-ös output current LOW-ra 24mA-t ír.

 Egy biztos, ha zárlatos a belső billenytűzet mondjuk a 'k' betűnél, akkor bővítő ide, bővítő oda, a képernyő tele lesz 'k'-val. Ilyen esetben javaslom felszakítani a kontaktusokat a fólián.

 Egyébként az alaplapon lévő összes IC magas impedanciás állapotban aktivál egy gyenge felhúzóellenállást +5V-ra. Erről meg lehet bizonyosodni, ha nem létező memóriát címzünk. Ha a hardver jó, peek-kel FF-et kell hogy kapjunk.

 A külső billentyűzet sebessége egyedül az USB adatátviteltől függ, de mint tudjuk a boltban csak USB-s eszközöket lehet kapni, ebbe tehát bele kell törődnünk.
« Last Edit: 2015.March.01. 21:47:31 by tubybb »

Offline balagesz

  • EP user
  • *
  • Posts: 274
  • Country: hu
  • OS:
  • Linux Linux
  • Browser:
  • Firefox 31.0 Firefox 31.0
    • View Profile
Re: Billentyûfólia helyettesítés
« Reply #89 on: 2015.March.01. 22:02:49 »
A 74LS145-ös IC adatlapján a következő info található (lásd csatolt táblázat).
Vegyük az esetet, amikor a belső bill. nem használt csak a külsővel dolgozunk:
Pirossal bekereteztem a maximális áramot ami a logaikai magas jel alacsony jelszintre való kényszerítésekor folyik. Ez olyan alacsony áram, hogy az IC-nek meg sem kottyan. Én úgy saccolom, hogy az IC-ben egy 5KΩ-os felhúzóellenállás van, amit egy nyitott kollektoros tranzisztor húz le, ha logikai alacsony jelre van szükség. (ezt az adatlap nem írja, én gondolom így)
 Amennyiben ez valóban így van, akkor mindegy, hogy az LS145-ös vagy a külső egység kényszeríti ki a logikai alacsonyt.

A '145-ben nincs belső ellenállás, csak sima OC-s kimenetei vannak. De az egész nem tudom hogy jön ide: a '145 kimenetei nincsenek kinn a bővítő busz csatlakozóján.

Továbbá a második rajzon látható RD0 jel olvasáskor olyan rövid ideig aktív, hogy csak néhány tized μs-ig tartó terhelésről beszélünk. Ha figyelembe vesszük az alaplap vezetékhosszból adódó induktivitását, ennyi idő alatt ki sem tudna alakulni nagy áram. Akkor alakulhatna csak ki "meleg helyzet" (nem károsodás!), ha az EP pont olvasáskor kifagy, megáll. De ezt a védelmet bele tudom írni a CPLD-be.

Ez akkor állhat fent, ha a külső eszköz is hajtja olvasáskor a buszt, ez meg egy ciklus idejéig van, utána hosszú "pihenés". Ez világos.

Számításaim szerint mindkét billentyűzet használható lesz párhuzamosan, mert ha a bővítőn lévő CPLD nagy ohmikus felhúzóellenállásokkal biztosítja a magas szintet, a 74LS145-ös a logikai alacsony kimenőjellel az egész vonalat 0-ba "rántja", így a Z80-CPU azt is érzékelni tudja. Ekkor sem terhelődik meg nagyon, mert a csatolt táblázatban az LS145-ös output current LOW-ra 24mA-t ír.

Itt viszont újra nem értek valamit. Hova is akarsz te becsatlakozni? Csak a külső bővítő csatlakozóra? Mert oda a '373 bemenetei sincsenek kivezetve, ahogy a '145 kimenetei se. Így nem számít a '145 hajtani tudása.

Szóval hova is csatlakoznál? Ez valahogy egyre sötétebb. :-D