Welcome, Guest. Please login or register.


Author Topic: HID kezelés ReLoaded (Enter the RPi) (Read 24429 times)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #45 on: 2018.October.21. 02:07:43 »
Ha az előbbi állításom igaz,

akkor viszont megírni egy csak PS/2 kezelő logikát nem lenne egy nagy kunszt ...


Szóval ugyanazt megcsinálni,
mint amit az egy szál mikrokontrollerrel már megcsináltam,
azt egy szál FPGA -val simán újra lehetne implementálni (csak most tökéletes sebességgel) ...

Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #46 on: 2018.October.21. 02:20:50 »
Ha az előbbi igaz,
akkor meg lehetne csinálni azt is,

hogy egy síma PS/2 bemenetet csinálnék,
ami akkor nem lenne annyira nyitott, mint amit eddig terveztem,
benne lennének lekódolva olyan dolgok, mint a makrók, reset szekvenciák, stb.,

és egy sima PS/2 billentyűzetről hajtva nem lenne konfigurálható sem különösebben,

de egy szabvány bemenet lenne, amit PS/2 -ről meg lehetne hajtani,
egy szabvány PS/2 billentyűzetet már rá lehetne dugni,


és engem még mindíg nem akadályozna meg semmi,
hogy pld. egy RPi -t használva továbbra is beolvassak minden típusú input eszközt
amit csak az RPi képes kezelni,

majd azt ne direkt "EP billentyűzet mátrix" formátumban toljam az EP -be,
hanem "PS/2 formátumban" ...

Z80 System

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #47 on: 2018.October.21. 13:02:48 »
Akkor sorban:

- vagyis az RPi és az FPGA között nem kell majd illeszteni,
- az FPGA és az EP közötti adat vonalakat (8 drót) szintén nem kell illeszteni, mert a 3.3V már magasba hajtja majd az EP TTL inputjait,
- csupán az FPGA és az EP közötti cím vonalakat (4 drót) kell majd illeszteni, mert az EP 5V -os cím drótjait majd vissza kell fogjam 3.3V -ra ...

Az árpi I/O vonalai valóban 3.3V-osak, az FPGA felé emiatt nem kellene külön illeszteni. Az esetleges hosszabb vezetékek viszont bezavarhatnak a képbe, (az ESD-ről meg még nem is volt szó, ) emiatt én mindenképpen tennék oda valamit. (Az FPGA meg az rPi felőli oldalra is!)

Az FPGA és az EP közötti 8 adatvonallal az a gond, hogy azok az EP-ben nem csak belemennek simán egy bemeneti kapuba. Hanem - mint ahogyan az ilyen, OC-s jellegűen hajtott bemeneteknél illik - fel vannak húzva egy ellenálláshálóval a +5V-ra. Tehát az FPGA-nak ezeket az alapban +5V-os feszültségen levő vonalakat kellene alacsonyra húzni. Az is idekívánkozik, hogy ha meg akarod tartani az eredeti billentyűzet működőképességét is, akkor az FPGA felől ugyanúgy OC-s kimenettel illene ezt a 8 vonalat hajtani. Ezt valószínűleg meg lehet csinálni önmagában az FPGA-val is, de a nem húzott kimenetek ilyenkor +5V-ra kerülnek, ami nem egészséges az FPGA lábaira nézve. (Ha van bennük védődióda, akkor talán nem lesz ezzel gond, de ott meg az fordulhat elő, hogy a komplett I/O táp megemelkedik, ami még nagyobb galibát okoz.)

Tehát nem csak azzal a 4 dróttal van probléma...

Hmmm ... hát ez a "logikai áramkör programozás" ez lehet hogy egyszerűbb lesz, mint hittem ...
Mer nem is kell majd logikai hálózatokat tervezzek valójában ...

Na, erre azért majd kíváncsi leszek. :)

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #48 on: 2018.October.21. 13:42:15 »

Jajj már balagesz ... te aztán nagy mestere vagy az ember bíztatásának ... :)


Quote
Az FPGA és az EP közötti 8 adatvonallal az a gond, hogy azok az EP-ben nem csak belemennek simán egy bemeneti kapuba

Francba ... akkor uána kell nézzek ezeknek az illesztési szaroknak is ... 12 illesztés az már elég sok (nagy) lehet gondolom ...

Ezért akartam azt, hogy belül az EP -ben csak 5V -os alkatrészek legyenek ... hogy ne kelljen ilyenekkel törődni ...

Ha lenne 5V -os FPGA kis méretű breakboard -on, vissza is térnék arra az irányvonalra,
még akkor is, ha közben kiderült hogy az RPi 3.3V -os ...

akkor az a 2 külső vonal illesztve lenne és joccakát ...

De nem találtam 5V -os FPGA -t ... most akkor illeszthetek 13 vonalat (reset is) ... francba má ... :)

(Ilyen ESD -s "hülyeségekkel" meg még csak gondolni se akarok ... majd rövid drótra teszem az RPi -t.
Ezek még csak kilóhercek, nem mega meg gigahercek ...)


Quote
Na, erre azért majd kíváncsi leszek. :)

Hopp, ezt azért kicsit részletesebben, plíz ...

Tökhulyeség amit gondolok ?
A VHDL -be nem lehet szekvenciális kódokat írni,
és nem fogja azt nekem valamilyen logikai hálózatokkal megvalósítani a fejlesztőeszköz ?

Z80 System

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #49 on: 2018.October.21. 14:47:33 »
Jajj már balagesz ... te aztán nagy mestere vagy az ember bíztatásának ... :)

Á... Csak a személyi sérülés nem történt, az anyagi kár jelentős típusú szalagcímet próbálom elkerültetni. :-D

Francba ... akkor uána kell nézzek ezeknek az illesztési szaroknak is ... 12 illesztés az már elég sok (nagy) lehet gondolom ...

Ezt a legegyszerűbben talán két 74LS06-tal lehetne megoldani. Egy ilyen tokban van 6 db. OC-s kimenetű inverter. A 8 kimenetre ugyan csak 8 kapu kellene, itt az inverterek bemenetére simán köthető az FPGA kimeneti lába, a '06 kimenetei meg mehetnek közvetlenül a billentyűzet 8 bemeneti vonalára. A fennmaradó 4 inverterkapu viszont pont jó lehet az EP-ből jövő 4 jel FPGA-hoz illesztéséhez: ott az inverterek bemeneteire jön az EP 4 sorkiválasztó jele. A kimenetek mehetnek közvetlenül az FPGA bemeneteire, de mivel ezen kapuk OC-s kimenetűek, ezért csak alacsonyat fognak oda kapcsolni. Hogy a magas is meglegyen, az FPGA ezen lábait a saját VCCio-jára, tehát 3.3V-ra fel kell húzni ellenállásokkal, ilyen 2.2-4.7 KOhm-ra gondolnék itt. A maradék RESET jelhez már így nem marad illesztés, de azt egy egyszerű ellenállás + tranzisztor kombóval el lehet sütni. Összességében annyira nem sok alkesz kell hozzá.

A VHDL -be nem lehet szekvenciális kódokat írni,
és nem fogja azt nekem valamilyen logikai hálózatokkal megvalósítani a fejlesztőeszköz ?

A VHDL egy hardver-leíró nyelv, ott általában nem sorban, hanem párhuzamosan "történnek a dolgok". Ha valamit szekvenciálisan akarsz csinálni, akkor annak a feltételeit meg kell teremteni először. Persze szinte tuti, hogy vannak készen ilyen modulok, ezért is írtam, hogy kíváncsi leszek, nem tudom ugyanis, hogy mit találtál ki. :-D

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #50 on: 2018.October.21. 16:45:31 »
Quote
Ezt a legegyszerűbben talán két 74LS06-tal lehetne megoldani. Egy ilyen tokban van 6 db. OC-s kimenetű inverter. A 8 kimenetre ugyan csak 8 kapu kellene, itt az inverterek bemenetére simán köthető az FPGA kimeneti lába, a '06 kimenetei meg mehetnek közvetlenül a billentyűzet 8 bemeneti vonalára. A fennmaradó 4 inverterkapu viszont pont jó lehet az EP-ből jövő 4 jel FPGA-hoz illesztéséhez: ott az inverterek bemeneteire jön az EP 4 sorkiválasztó jele. A kimenetek mehetnek közvetlenül az FPGA bemeneteire, de mivel ezen kapuk OC-s kimenetűek, ezért csak alacsonyat fognak oda kapcsolni. Hogy a magas is meglegyen, az FPGA ezen lábait a saját VCCio-jára, tehát 3.3V-ra fel kell húzni ellenállásokkal, ilyen 2.2-4.7 KOhm-ra gondolnék itt. A maradék RESET jelhez már így nem marad illesztés, de azt egy egyszerű ellenállás + tranzisztor kombóval el lehet sütni. Összességében annyira nem sok alkesz kell hozzá.

Hát persze ... négy marék IC ide, négy marék IC oda ... azt megfűszerezzük fél marék ellenállással, és csipetnyi tranzisztorral,
mindezeket ízlés szerint bedisznózva, vagy egy kisebb focipálya méretű nyákra rendezgetve tálalható is a cucc ...

Hrrrrrr ... na most mentem vissza 5V -os FPGA -t keresni ... :)


Quote
Ha valamit szekvenciálisan akarsz csinálni, akkor annak a feltételeit meg kell teremteni először. Persze szinte tuti, hogy vannak készen ilyen modulok, ezért is írtam, hogy kíváncsi leszek, nem tudom ugyanis, hogy mit találtál ki. :-D

Az égvilágon semmit nem találtam még ki.
Csak olvasgattam (egyenlőre ippenhogycsak) a VHDL nyelv leírását (mellyel mindenhol pariban emlegetik a VERILOG -ot),
és abban egy alapvető nyelvi elem a "behavioral description":

"There are three different paradigms for describing digital components with VHDL, structural, data flow, and behavioral descriptions.
This chapter dicusses the behavioral approach." :

http://gmvhdl.com/process.htm

mely ha jól értem, akkor a jól ismert szekvenciális programozási koncepciókkal operál:

https://www.allaboutcircuits.com/technical-articles/introduction-sequential-vhdl-statements-VHSIC-hardware-description-language/
https://www.allaboutcircuits.com/technical-articles/sequential-vhdl-if-and-case-statements/
https://www.csee.umbc.edu/portal/help/VHDL/sequential.html


Namost ha ezek szerves részét képezik fenti programnyelv(ek)nek,
és az ezekkel megfogalmazott működéseket állítólag programozható logikai eszközökbe lehet írni,

akkor valakinek a logikai hálózatra történő konverziót el kell végeznie közben ...


Nem ?
« Last Edit: 2018.October.21. 17:26:57 by Z80System »
Z80 System

Offline balagesz

  • EP user
  • *
  • Posts: 277
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #51 on: 2018.October.21. 19:46:50 »
Hát persze ... négy marék IC ide, négy marék IC oda ... azt megfűszerezzük fél marék ellenállással, és csipetnyi tranzisztorral,
mindezeket ízlés szerint bedisznózva, vagy egy kisebb focipálya méretű nyákra rendezgetve tálalható is a cucc ...

Pontosan. :) Visszakanyarodtunk megint ide, ahol az elején tartott a projekt: a "csak kész eszközöket bedrótozunk" verzió kevésbé működőképes, mivel elég speciális a feladat. Nem véletlen, hogy manapság ezt a fajta billentyűzetkezelést nem csinálják. :-D

Namost ha ezek szerves részét képezik fenti programnyelv(ek)nek,
és az ezekkel megfogalmazott működéseket állítólag programozható logikai eszközökbe lehet írni,
akkor valakinek a logikai hálózatra történő konverziót el kell végeznie közben ...

Szerves részét képezik, de azt ne felejtsd el, hogy a VHDL / Verilog az nem programnyelv, hanem hardver-leíró nyelv. Soros "végrehajtás" itt akkor lesz, ha a lépések állapotát eltárolod magad. De ha tovább csavarjuk a megfogalmazást, eljutunk odáig, hogy lesz egy FPGA-ba implementált processzorod. :-D

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #52 on: 2018.October.21. 20:28:58 »
Quote
Pontosan. :) Visszakanyarodtunk megint ide, ahol az elején tartott a projekt: a "csak kész eszközöket bedrótozunk" verzió kevésbé működőképes, mivel elég speciális a feladat. Nem véletlen, hogy manapság ezt a fajta billentyűzetkezelést nem csinálják. :-D

Ja. De nekem most kell csinálni.

Ha nem lenne ilyen érdekes ez az FPGA dolog, és nem akarnám egy alkatrészből, akkor már mennék is vissza az arduino micro/nano + dual port ram verziohoz.
Azokból van 5V mindkettőből, összesen 2 db alkatresz lenne, és korábban rájöttem, hogy a PS/2 porton is be tudok tolni minden extrát amit akarok,
ha oda nem egy PS/2 billentyűt tolok, hanem pld. egy RPi -vel előállított PS/2 "kimenetet".

Csak hát olyan érdekes már ez az FPGA dolog ... képes leszek ezért a szutyokért beilleszteni 13 vonalat ... :)

Pedig ha belegondolsz, akkor a 13 vonal illesztes még csak az egyik fele a dolognak,
mert ha kifele mégis inkább a PS/2 interfészt akarnám nyújtani, akkor a PS/2 2 drótját is illeszteni kéne, hisz az is 5 V -os,

és! :) akkor viszont az RPi meghajtásnál is illeszteni kellene a szimulált PS/2 kimenet 2 drótját,
hisz az RPi az 3.3 V -os ...

Szóval a tökéletes megoldas 13 + 2 + 2 illesztés lenne a teljes rendszeren ... :)

(És ekkor lehetne 3.3V -os elektronikával, támogatni az 5V -os EP -t, 5V -os PS/2 bemenetet és az arra rakott 3.3V -os RPi -t ...)

Na, ezt nevezném szívásnak ... :)


Quote
Szerves részét képezik, de azt ne felejtsd el, hogy a VHDL / Verilog az nem programnyelv, hanem hardver-leíró nyelv. Soros "végrehajtás" itt akkor lesz, ha a lépések állapotát eltárolod magad. De ha tovább csavarjuk a megfogalmazást, eljutunk odáig, hogy lesz egy FPGA-ba implementált processzorod. :-D

Hát ... most nem értem mér tekered,
van a VHDL -ben "változó" absztrakció, csak felveszed, és operálsz velük, mint rendesen egy szekvenciális programnyelvben.
Ja, a változóidnak különböző időpillanatokban más lesz az értéke, ezt nevezheted "eltárolásnak".

És ha a szekvenciális algoritmusom hatását a kimenetekre a bemenetek függvényében
nem lehet másképp előállítani, csak ha befordít az FPGA -ba egy olyan logikai hálózatot,
amit egyébként intel core i10 fedőnéven ismerünk (vagy legalábbis az intel),
akkor úgy oldja meg, miért érdekel az engem ...

Férjen bele az FPGA -ba, oszt joccakat ...

Nekem valami azt súgja,
ha ebben a VHDL -ben kódolnám össze a vackom,

- akkor tutkó hogy nanoszekundomos nagyságrendű válaszidők lennének az EP fele, teljesen független, párhuzamos működéssel,
- és tutkó hogy a PS/2 feldolgozás oldalán is nagyságrenddel lenne gyorsabb a feldolgozás (nem mintha arra nagy szükség lenne),
mint amit akár assembly -ben összehekkelnék egy mikrovezérlőn.


Nem ?
« Last Edit: 2018.October.21. 20:35:40 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #53 on: 2018.October.21. 20:58:39 »
Nézegetem ezt a dual port ram dolgot:

https://www.maximintegrated.com/en/ds/DS1609.pdf


Ennek az olvasása úgy műxik, hogy a címbuszra ráakasztgatod a címet,
majd 2 masik lábat egyszerre le kell huzni alacsonyra,
es akkor megjelenik az adatbuszon a címzett bájt,

de csak addig, míg az a 2 láb alacsonyan marad.

Ha felengeded, akkor elveszik az adatbuszról a címzett bájt.


A billentyűzet port beolvasásnál igaz ez az EP -re ?

Mikor ott a trigger flag (ami a 4 bites címzést triggereli) le van húzva zeróba,
az mindvégig ki van ott tartva, amíg az adat kell neki ?

Vagy közben fel van engedve, és attól még várja, hogy én folyamatosan ott tartsam a billentyűzet sor értékét ?

Mert ha felengedi, akkor a dual port ram -os verzióhoz is kellene plussz elektronika,

- ami átveszi, és folyamatosan ott tartja a billentyűzet sor 8 bitjét,
- vagy legalább ott tartja a triggert az új trigger érkezéséig,
akkor egy pillanatra elengedi, és újra ott tartja,
így kényszerítve a dual port ramot az adatbusz folyamatos kitartására ...

« Last Edit: 2018.October.21. 21:06:22 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #54 on: 2018.October.22. 02:54:23 »
Na, úgy döntöttem prioritást váltok ...

Először összerakom újra, amim már volt.
A 16 MHz -es, AVR mikrokontrolleres verziot ...
De mostmár nem csak a próbapanelen,
hanem ráheggesztve egy vasra.

Akkor már lesz egy szabvány PS/2 bemenetem,
nem biztos hogy tökéletes reakcióidőkkel az EP fele
(de mostmár van 10 MHz -es EP -m, úgyhogy azzal is le tudom majd tesztelni),
valamint konfiguráció is csak az AVR újraprogramozásával lesz lehetséges.

Behuzalozok valami alap PS/2 működést és kész.
Ez nem fog menni majd minden billentyűzettel,
csak azzal az egy fajta PS/2 kódolással
(emlékeim szerint abból is van több, majd felfrissítem).

Eddig tehát ugyanaz lesz, ami már volt is.

Aztán külső eszközzel (ami itt az RPi lesz),
nekiállok PS/2 output -ot (pontosan azt amit behuzaloztam) emulálni,
az RPi -re kapcsolt összes input eszközből.
(Elektronikailag csak 2 drótot kell majd illesszek.)

Ezt már meg tudom majd csinálni konfigurálhatóra.

Ezen a ponton már fogok tudni USB és Bluetooth billentyűzeteket is használni az EP -vel.

Na, ha idáig elértem, akkor áttesztelem ezt a válaszolási sebesség kérdést, és ha zavaró valahol,

- akkor vagy szerzek egy gyorsabb mikrovezérlőt:

https://www.pjrc.com/store/teensy35.html

ez pld. egy 120 MHz -es ARM, csak gyorsabb valamennyivel, mint a 16 MHz -es AVR ...

olcsó, 5 V kompatibilis, nem kellene mellé semmi más,
bár kicsit nehéz lenne rendes EP ház alá szerelni, mert nagyocska
(6 cm hosszú, az kéteszer akkora mint az eddig kinézett lapok. a szélessége ugyanaz.),

- vagy kezdődhet elölről a most elhalt folyamat, hogy kitaláljam hogyan rakjak össze magamnak kicsi hardvert.


És ha annak a folyamatnak mégis az lesz a vége, hogy mégsem fogok PS/2 kimenetet nyújtani a végső verzióban,
hanem csak valami egyszerűbbet (mert pld. egy FPGA -ba mégsem lesz olyan egszerű belerakni egy PS/2 kezelőt),

az sem lesz nagy baj, mert az RPi oldalon konnyen és gyorsan fogom tudni változtatni a kommunikációs protokollt az EP fele.


Ámmen.
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #55 on: 2018.October.22. 22:43:01 »

Na, ma egész nap pakoltam, rendezgettem a dolgokat,
hogy az elkövetkező hetekben és hónapokban egyáltalán hozzáférjek az EP -s és szerelős cuccaimhoz ...

De ha minden igaz, sikerült valahogy úgy pakoljak, hogy hozzáférhessek amihez kell,
és még a normális élet se mindenképp álljon meg ettől ...


Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #56 on: 2018.October.23. 16:03:05 »
Megy a küzdés ... :) :
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #57 on: 2018.October.23. 16:04:08 »
És még egy kicsi ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #58 on: 2018.October.23. 22:34:51 »

Hát nem megy gyorsan ...

Mindenesetre a "mechanikai" szerelés része megvan,
és mostanra elvben sikerült "kigubancolnom" újra a mikrovezérlő oldalt (így jár aki nem készít dokumentációt a bekötésről),
ha minden igaz, akkor holnap még kigubancolom az EP oldalt (talán az gyorsabb lesz),

aztán beforrasztok 16 drótot,

és ha a mikrovezérlőben még mindíg megvan a program, akkor mennie kell annak a PS/2 működésnek, ami már megvolt ...


Néztem közben a mikrovezérlő kódjának forrását is ... hát ... eléggé összecsaptam a végét ... :)

Szóval lesz mit tunningolni még rajta ...


Már alig várom hogy 10 MHz -es EP -n futtathassam a speed tesztet vele ... :)

Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HID kezelés ReLoaded (Enter the RPi)
« Reply #59 on: 2018.October.24. 22:27:11 »
Khmmm ... khmmm... :oops:

Hát összeraktaaaaammm ... :oops:


De baszik menni. :evil:


Nem teljes kukaság, ledek villognak összevissza, arduino -n is, meg billentyűzeten is,
sőt, ha reszetelem az arduino -t, akkor még N betűket is elkezd az EP írogatni egy darabig (3-4 sornyit),

de értelmes működés az nem jön belőle ...

Vagy megmakkant benne a software a sok állásban, vagy utoljára valami vackot hagytam rajta (de mér tettem volna),
esetleg valahol rosszul barkobáztam össze a bekötést, vagy valahogy rosszul heggesztettem valamit ... :(


Szal most kezdhetek nyomozni ...


Kívanjatok sok szerencsét ... :)
Z80 System