Welcome, Guest. Please login or register.


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

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Billentyûfólia helyettesítés
« Reply #90 on: 2015.March.01. 22:04:36 »
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.
Erről már számos esetben volt szó. Általában FF van a lebegő buszon, de sok gépen nem. (Ennek jól látható tünete amikor az EXOS 2.3+ RAM teszt fantom hibás szegmenseket jelez.) Adott gépen is változhat a helyzet órajellel, bővítésekkel, stb. Érdemes konkrét felhúzó ellenállásokat rakni az adatbuszra.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #91 on: 2015.March.01. 22:16:28 »
Így van, ezek rá is kerülnének a CPLD-vel, ahogy a másik topikban említettem.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #92 on: 2015.March.01. 22:23:45 »
... a '145 kimenetei nincsenek kinn a bővítő busz csatlakozóján.

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

 Nézd csak meg a csatolt rajzot a piros vonallal!
 És most a másikat is.

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #93 on: 2015.March.01. 22:31:20 »
Nézd csak meg a csatolt rajzot a piros vonallal!
 És most a másikat is.

Köszi! :-D

(A '145 kimeneteiről, illetve a '373 bemeneteiről van szó. Amit bekereteztél, az a '373 kimenete.)

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #94 on: 2015.March.01. 22:49:31 »
Hű, mekkora hibát vétettem. A korábbi hozzászólásomban a 145-öst írtam, noha a 373-asra gondoltam. A csatolt táblázat helyesen a 373-as adatlapjáról van.
Elnézést kérek ezért a malőrért!
Ha most sem érthető, akkor írj!

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #95 on: 2015.March.01. 23:16:46 »
A korábbi hozzászólásomban a 145-öst írtam, noha a 373-asra gondoltam. A csatolt táblázat helyesen a 373-as adatlapjáról van.

Így már világosabb. :) Akkor végül is az van, amit írtam, ha jól gondolom. Amikor a gép a sorkiválasztó regisztert (ami a '145 bemenetére kapcsolódik) írja, akkor a kiválasztott sor számát eltárolod te is a belső tárolóval párhuzamosan. Innen tudod, hogy melyik sort akarja majd a program olvasni. Amikor meg a bemeneti regisztert olvassa, akkor ráhajtasz az adatbuszra te is a belső '373-mal egy időben, de csak azokat a vonalakat hajtod, amik a te "billentyűzetedben" alacsonyak.

A kavarás csak az, hogy az esetleges felhúzó ellenállások nem tudom, hogy keveredtek ide, mivel itt nem kell ilyet csinálni. A magas szintet a '373 megoldja, ha magasnak is kell lennie a te elektronikád szerint is.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #96 on: 2015.March.01. 23:31:51 »
Pontosan, jól látod.
Azt tudni kell, hogy ha nincs lenyomva billentyű, akkor az LS373 kimenetein logikai magas szintek jelennek meg. Ennek megfelelően, ha le van nyomva, akkor logikai 0 jelenik meg. Tehát ha jön az USB vonalról a jel, és pont azt a sort választotta ki a Z80, amiben ez benne van, akkor a CPLD-nek ezt a bitet le kell húznia 0-ra. Mivel a belső tasztatúra nincs használva az LS373 kimeneti szintje magas. Ilyenkor fontos tudni, hogy a 373-as felépítésében hogyan néz ki. A linkelt táblázat alapján azt gyanítom, hogy a LS373-ban van egy felhúzó ellenállás, és egy tranzisztor. Ha a tranzisztor nincs vezérelve, akkor az ellenálláson keresztül az adatvonalak +5V-ra kerülnek. Ha ezt lehúzom a CPLD-vel, akkor 5V/5K=1mA fog folyni.

 Szerintem egyről beszélünk.
 Lehet nem is kell felhúzó ellenállás. (Bár azt szokták mondani, hogy a buszt érdemes biztos ami biztos módon gyenge felhúzóval lezárni.)

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #97 on: 2015.March.01. 23:50:34 »
Pontosan, jól látod.
Azt tudni kell, hogy ha nincs lenyomva billentyű, akkor az LS373 kimenetein logikai magas szintek jelennek meg.

Legalábbis arra az időre, ameddig a CPU olvasási ciklusa tart.

Ennek megfelelően, ha le van nyomva, akkor logikai 0 jelenik meg. Tehát ha jön az USB vonalról a jel, és pont azt a sort választotta ki a Z80, amiben ez benne van, akkor a CPLD-nek ezt a bitet le kell húznia 0-ra. Mivel a belső tasztatúra nincs használva az LS373 kimeneti szintje magas.

Ez így van.

Ilyenkor fontos tudni, hogy a 373-as felépítésében hogyan néz ki. A linkelt táblázat alapján azt gyanítom, hogy a LS373-ban van egy felhúzó ellenállás, és egy tranzisztor. Ha a tranzisztor nincs vezérelve, akkor az ellenálláson keresztül az adatvonalak +5V-ra kerülnek. Ha ezt lehúzom a CPLD-vel, akkor 5V/5K=1mA fog folyni.

A '373 kimenete push-pull, ráadásul buszmeghajtó. Alacsonynak 24mA, magasnak 2.6mA-t "tud", ekkora áramoknál még a TTL jelszinteken belüli a kimenet. (Lásd adatlap második oldal alja.) A táblázatod arról szól, hogy ekkora áramok esetén még "szabványos" a jelszint! Tehát ha magas állapotban 2.6mA-rel alacsonyra húzod, akkor még 2.8V fölött van a kimeneti feszültség! Hogy tényleg 0.8V alá kerüljön (ami már tuti TTL alacsony), ahhoz azért több áram fog kelleni ám...

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #98 on: 2015.March.02. 00:14:47 »
Maximum 40mA ez a több áram, de ilyen rövid idő alatt (ammeddig RD aktív) a úgysem szalad fel. Kb az ötödére számítok. Megérzés.

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #99 on: 2015.March.02. 00:16:44 »
Lehet beszaladok a Conrad-ba, veszek egy IC-t és megmérem. :)

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #100 on: 2015.March.02. 16:20:52 »
veszek egy IC-t és megmérem. :)

Hát, az a tuti. :) Mivel az LS TTL tokok a föld fele húzni jóval nagyobb árammal tudnak mint a táp fele, így egy sima buszmeghajtóval is lehet próbálkozni, lehet hogy el is érnéd vele a célt. (A buszon az a vonal lesz alacsony (aktív billentyű), amelyiket vagy a belső, vagy a külső eszköz alacsonyra húz. Hack a javából, de akár még működhet is.)

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #101 on: 2015.March.03. 11:35:10 »
Eszembe jutott egy másik megoldás:
 Normál esetben amikor Z80 kiolvassa a billentyűzet állapotát, végrehajt egy OUT majd egy IN utasítást.
 Mi lenne, ha a buszbővítő elkapná ezt, és valahogy rákényszerítene a processzorra egy másik portot, amin biztosan nincs semmi.
 Vagy a külső egység generálhatna megszakítást, és végehajthatna egy nyulfaroknyi rutint, aminek a végén adott regiszterbe kerülne a bill.kód. Úgy emlékszem a Z80 képes ilyesmire, vagy nem?
 Habár lassú lenne, de kíméletesebb lenne Zozo hardveréhez.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Billentyûfólia helyettesítés
« Reply #102 on: 2015.March.03. 11:52:33 »
Mi lenne, ha a buszbővítő elkapná ezt, és valahogy rákényszerítene a processzorra egy másik portot, amin biztosan nincs semmi.
Ilyet szerintem nem lehet csinálni.

Quote
Vagy a külső egység generálhatna megszakítást, és végehajthatna egy nyulfaroknyi rutint, aminek a végén adott regiszterbe kerülne a bill.kód. Úgy emlékszem a Z80 képes ilyesmire, vagy nem?
Ilyet lehet (lásd Spectrum emulátor), csak éppen a programok nagy részével nem lenne kompatibilis a dolog, és ahol működne is lassítaná az eredeti program futását.[/quote]
A legális megoldás az lenne, ha valami szabad portokon működne, és ehhez lenne egy új KEYBOARD: eszköz meghajtó az EXOS-hoz. Így működött anno a Mészáros féle XT billentyűzet illesztő is.
Hátránya, hogy a gépi kódú programok 99%-a kiesne.

A másik megoldás, hogy a billentyűzet csatlakozónál bevinni az adatot, itt nincs elektronikai gond, csak vagy belülre kell a cucc, vagy kihozni a szükséges jeleket vezetéken. Itt működik Z80System Ardunio-s cucca.

Quote
kíméletesebb lenne Zozo hardveréhez.
Az én hardverem remekül el van az új angol billentyűfóliákkal :-)

Offline Tuby128

  • EP addict
  • *
  • Posts: 1448
  • Country: hu
Re: Billentyûfólia helyettesítés
« Reply #103 on: 2015.March.03. 12:14:35 »
A bővítő együtt indul a géppel. Lehetne benne kódfelismerő algoritmus, ami futás közben megtalálja a kódot és IRQ-t generál. Az IRQ-t pedig lehet gyorsan kezelni.
 Először ötleteljünk, aztán vizsgáljuk meg őket. Ha egyből kizársz mindent, akkor felesleges a fórumra írnom.

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14722
  • Country: hu
    • http://enterprise.iko.hu/
Re: Billentyûfólia helyettesítés
« Reply #104 on: 2015.March.03. 12:27:20 »
Az IRQ-t pedig lehet gyorsan kezelni.
A gyorsan is lassabb mint az eredeti. Pláne ha olyan dologról van szó, amit másodpercenként több ezerszer is lefut.

Aztán a sima IRQ az eleve kiesik, hiszen azt a játékok nagy része letiltja, vagy saját célra használja. Marad az NMI (lásd Spectrum Emulátor), ami viszont Enterprise rendszer alatt nincs használva, így a belépési helye kismillió programban fel van használva, tehát biztonsággal nem használható.