Welcome, Guest. Please login or register.


Author Topic: HID kezelés Arduino -val (Read 75027 times)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: HW készítés Arduino-val
« Reply #180 on: 2014.October.07. 00:50:58 »
Quote from: Z80System
Né mááá ... há itt egy ilyen izé :) :

http://www.lipoly.de/index.php?main_page=product_info&cPath=880_2631_2639&products_id=161216

Szerintem ilyenből tudnám kiépíteni a sok GPIO -s kontrolleremet.
Ez rajta ül az egyik ilyen buszon, 8 darab max, aminek fejenként lehetne 14 GPIO -ja ... vagyis 112 GPIO -m lenne plussz ami a mc kártyán van ...

Mondjuk a 8 darab az belekerülne 20 rugóba ... :)

Ez neked miert is lenne jo? I2C buszon kapcsolodik az MCU-hoz, ott az orajel meg max 400KHz es ugye soros, tehat az overhead-et nem szamitva, csak 50Kbyte/sec a max sebessege (na jo, i2c-bol is van gyorsabb). Vagy hat ha az eleg ... vegulis billentyuk "rangatasara" biztosan.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #181 on: 2014.October.07. 00:58:14 »
Quote
vegulis billentyuk "rangatasara" biztosan.

pontyosan.


Quote
Ez neked miert is lenne jo?

Hát arra, hogy ha kint ül a teljes billentyűmátrix GPIO tüskéken,
akkor ezeknek az értékeit ráérek szép komótosan frissíteni,
és külső logika választaná be a megfelelőket a z80 -nak villámgyorsan (nanoszekundomos időkkel, ahogy zozo írta),
ahogy itt írtam:

http://enterpriseforever.com/hardver/hw-keszites-arduino-val/msg41263/#msg41263

így a mikrokontrollerem megszabadulna a gyors reagálastól, mert a külső logika reagálna helyette a z80 -ra.
« Last Edit: 2014.October.07. 01:11:14 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #182 on: 2014.October.08. 23:12:51 »
Tök szép elképzelés volt ez:


Quote
- push egy regiszter
- regiszterbe beolvas lábakról input 4 bit
- regiszterbe betölt sajátmagával indexelve egy tömbből output 8bit
- regiszterből kiír output 8 bit lábakra
- pop regiszter
- ret

A baj csak az, hogy jól kifelejtettem a megszak tiltás/engedélyezést, meg hát ezt az apróságot:


Quote
4.8.1 Interrupt Response Time
The interrupt execution response for all the enabled AVR interrupts is five clock cycles minimum. After five clock
cycles the program vector address for the actual interrupt handling routine is executed.


Quote
A return from an interrupt handling routine takes five clock cycles. During these five clock cycles, the Program
Counter (three bytes) is popped back from the Stack, the Stack Pointer is incremented by three, and the I-bit in
SREG is set.

Vagyis 10 ciklus akkor is elmegy, ha egy szaros utasítást nem írok a megszakkezelőbe ... persze minimum kell egy reti ... :)

Vagyis ha jól értem, akkor egy 10MHz -es z80 -at (ami kb. 1 mikroszekundum alatt képes in -t végrehajtani, egy out után ) az életbe nem fog tudni kiszolgálni (atomstabilan) egy 16MHz -es AVR  megszakításból ...

Bakkerság!

Arról már nem is beszélve, hogy mikor nem billentyűről van szó, ahol az AVR -nek csak egyetlen vonalat kell figyelnie megszakítással,
hanem pld. joystick -ról, ahol 5 vonalra is megszakítást kéne tenni, hogy bármelyiken észrevehesse az "engem kezelj" állapotot,
ott (ezzel az AVR -el, ami nekem van) meg vagyunk lőve ... mert tetszőlegesen szabályozható feltételű megszakításból csak 4 láb van ...


Van még valami olyan megszak, ami minden lábon lehetséges, és a változást figyeli (még olvasom) de ha az ilyen, akkor nem jó,
mert nekem rohadtul nem éri meg 5 megszakot kezelni (hisz a változás mindegyiken adott lesz egy "irányváltásnál"), egszerre fog fütyűlni nekem az összes megszak mind a 4+1 "irányon" ... :(
Z80 System

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14743
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #183 on: 2014.October.08. 23:23:23 »
Joy-ra az a megoldás, hogy te kiadod az 5 bitet mint egy átlag C64 joy, amit aztán egy Boxsoft féle logikai áramkör le rendez az EP felé.
Itt igazából tök mindegy milyen gyakran frissíted, max lesz pár mikroszekundum késés az irányításban.

Billentyűnél ezt nem teheted meg, ott mindenképpen figyelni kell mit akar az EP.
Pl beolvassa ezt a sort:
ESC     2     3     5     4     6     1     7

Le van nyomva az 1-es, ez ki is van rakva. Olvassa a következő sort:
F1    F2    F7    F5    F6    F3    F8    F4

Ha nem reagálsz időben, és még az előző adat van kint, akkor azt hiszi az EP, hogy az F8 van lenyomva.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #184 on: 2014.October.08. 23:32:42 »
Quote
Joy-ra az a megoldás,

Quote
Billentyűnél ezt nem teheted meg, ott mindenképpen figyelni kell mit akar az EP.

Na most én irkálhatnám a mérgesfejeket, mert te nem olvastál ... de én nem irkálok olyat ... :)


Szóval a joy -ra az nem "A" megoldás, hanem "EGY" megoldás csak, azzal a hátránnyal, hogy kellenek hozzá külön logikai áramkörök ...

És ha joy -nál ezt elfogadjuk "EGY" megoldásnak, akkor bevetve még pár ilyen IC -t is:


Quote
http://www.lipoly.de/index.php?main_page=product_info&cPath=880_2631_2639&products_id=161216

melyek szabvány buszon beszélgetnek a mikrokontrollerrel, és IC -nként tizenvalahány GPIO portot valósítanak meg,
melyekkel a teljes bill mátrix lefedése (mind a 80 bit) lehetséges lenne (éppúgy mint joy -nál a 3 bit),

így ugyanolyan logikai kiválasztós módszerrel kiválaszthatná magának (10 bites bill kivezetéssel a 4 bites helyett természetesen)
a "z80", hogy melyik 8 bitet is akarja most épp olvasni ...

ekkor (ha minden így működne) az EP oldalra ez az atom gyors megszak nem is kéne ...
kényelmes megoldás volna, jó drágán, jó sok plussz IC -vel, akármilyen lassú mikrokontrollerrel, jó nagy méretben ...
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #185 on: 2014.October.08. 23:56:04 »
Csak az a baj, hogy ilyen sok IC -s szörnyet sem akarok,
meg olyan félmegoldást se, ami csisszre megvalósítja a 4MHz -re,
és pld. 10 MHz -en már életképtelen lenne ...

Szóval kicsit be vagyok punnyadva ...
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: HW készítés Arduino-val
« Reply #186 on: 2014.October.08. 23:57:35 »
Tudom, mindenkinek elege van a dual port memoria maniambol :) de en tovabbra is ezzel tudom kenyelmesen elkepzelni, hacsak nem "aldoz" fel az ember egy egesz mcu-t a billencsre es optimalizalja ezerrel a kodost, stb. A baj csak az, hogy ami legkisebb dual port ram-ot talaltam az 1Kbyte, es 48 labu tokban van, overkill. Ami nekunk kene az ugye 10 byte-nyi :) Na jo, legyen 16 byte (16*8 bit), mert az a "kerek". Ilyen "kicsi" cuccrol viszont nem tudok. Pedig akkor aztan semmi sebessegkenyes mukodes nem lenne. Vagy esetleg van valami "kapcsolomatrix" szeru IC is a vilagon, lehet az is jo lenne ide, arrol viszont meg kevesebbet tudok :( Esetleg tenyleg egy parallax propeller MCU kene, a 8 cog-javal egesz sok dolgot csinalhat "egyszerre".

Offline Zozosoft

  • Global Moderator
  • EP addict
  • *
  • Posts: 14743
  • Country: hu
    • http://enterprise.iko.hu/
Re: HW készítés Arduino-val
« Reply #187 on: 2014.October.09. 00:02:24 »
Quote from: lgb
A baj csak az, hogy ami legkisebb dual port ram-ot talaltam az 1Kbyte, es 48 labu tokban van, overkill.
És ennek mi a típusa? Amikor kerestem semmi használhatót nem találtam, akárhány lábbal se. Soros vackok meg egyébb hülyeségek voltak.

Quote
Esetleg tenyleg egy parallax propeller MCU kene, a 8 cog-javal egesz sok dolgot csinalhat "egyszerre".
Az majd kiderül :oops:

De továbbra is ott a példa, hogy Tigrian megcsinálta, régebbi, butább AVR bigyóval!

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #188 on: 2014.October.09. 00:03:13 »
Talán olyan formában lehetne érdekes a sok IC -s verzió,
hogy mikor kész van, akkor a breadboard -ról átszerelném ilyen protó nyákra (azokkal a karika forraszpontokkal, de még mindíg vezetékekkel),
és az lenne a kész verzióm ...

És a lényeget nem is mondom:

Ez a panel lenne a "mega illesztő panel" mely akkor ilyen módon mindent ki tudna szolgálni,
amit csak rádugsz, bill, 1 vagy 2 joy, egér egyben ...

Ami persze a belülre szerelhetőséget mindenféle mértékben redukálná ... zéróhoz közelre ...
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: HW készítés Arduino-val
« Reply #189 on: 2014.October.09. 00:09:15 »
Quote from: Zozosoft
És ennek mi a típusa? Amikor kerestem semmi használhatót nem találtam, akárhány lábbal se. Soros vackok meg egyébb hülyeségek voltak.

CYPRESS CY7C130-55PC, amit hirtelen talaltam ...

Quote
De továbbra is ott a példa, hogy Tigrian megcsinálta, régebbi, butább AVR bigyóval!

Nem eloszor irod ezt le, en meg nem eloszor valaszolok, hogy igen, meg lehet csinalni, a gond az, hogy akarja-e az ember kulon. Szoval hogy mast ne csinaljon, MCU dedikalva a feladatra. Ha igen, nincs gond. Ha nem, akkor viszont nem feltetlen lehet meg belezsufolni mas dolgot is. Bar mondjuk a topic soran nem feltetlen ertem, hogy mi a cel. Ha csak billencsre kell a cucc, siman megy az minden extra nelkul is, max "illik" asm-ban optimakolt kodot irni hozza :) bar mondjuk csak billencsre es PS/2 kbd-vel nem olyan vilagvege az.

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #190 on: 2014.October.09. 00:11:10 »
Quote
De továbbra is ott a példa, hogy Tigrian megcsinálta, régebbi, butább AVR bigyóval!
Tigrian csak 4MHz -re csinálta meg (nem ?),

és ki tudja, hogy valóban tudta -e a 11 z80 ciklusos reakciót ... vagy csak nem kérdezték olyan gyorsan/szerencséje volt ...

És nem azt állítom hogy nem lehet megcsinálni,
csak annyit, hogy feltételezve hogy csak egy IC -sre akarom (az volna a legjobb),

akkor egy 16MHz -es avr -el, a 10 MHz -es z80 -at, a 11 orajelciklusával (ami kb. 1 mikroszekundum) már önmagában sem lehet 100% -ban megválaszolni,
hiszen egy mikroszekundum alatt 16 ciklusa van az AVR -nek, amiből 10 elmegy utasítás nélkül, a megszakítás késlekedésének,
és ráadásul a joy -nál (ugyanezzel a sebességgel) 5 élfigyelős megszakítás kéne, amiből ebben az AVR -ben csak 4 van.
« Last Edit: 2014.October.09. 00:15:03 by Z80System »
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #191 on: 2014.October.09. 00:13:53 »
Quote
 hogy igen, meg lehet csinalni, a gond az, hogy akarja-e az ember kulon. 

Én akarnám külön, sőt pont úgy akarnám, mivel 16MHz -es AVR lapot 2ezer forintért lehet kapni (csak én nem azt vettem, de lehet),

de én meg azt mondom, hogy 16MHz -es AVR -el, 10MHz -es z80- at, külső logikai támogatás nélkül NEM IS LEHET.

Te nem értesz ezzel egyet ?
Z80 System

Offline Z80System

  • EP addict
  • *
  • Posts: 3848
  • Country: hu
Re: HW készítés Arduino-val
« Reply #192 on: 2014.October.09. 00:20:51 »
Quote
Tudom, mindenkinek elege van a dual port memoria maniambol

És mi lenne ez elviekben ? Mert én még nem értettem meg ...


Quote
de en tovabbra is ezzel tudom kenyelmesen elkepzelni,

Én pedig egy 2 IC -s, 2ezer forintos AVR + CPLD kombóban gondolkodgatok,
hogy a 2 IC az mégsem egy kupac,

és a CPLD mondjuk átvenné az GPIO és a logikai IC- k szerepét is,
oly módon hogy mondjuk soros átvitelt valósítana meg,
és nyilván tartaná a 80+ bitünket meg hozzá a "kiválasztó" logikát is,

és mivel a 80 szoros dolgok belül lennének, ezért nem kellene túl sok kivezetése se legyen a CPLD -nek, de azért nem is kettő,
hisz min 4 + 8 + 1 lábon kommunikálna az EP -vel ...

Persze se árat, se programozó árat nem néztem, ha rohadt drága, akkor hülyeség az egész ...
« Last Edit: 2014.October.09. 00:24:18 by Z80System »
Z80 System

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: HW készítés Arduino-val
« Reply #193 on: 2014.October.09. 00:30:12 »
Quote from: Z80System
És mi lenne ez elviekben ? Mert én még nem értettem meg ...

A dual port RAM olyan RAM, hogy ket "oldalrol", "egyszerre" ket dolog hasznalhatja, azaz van neki 2 cimbusza es 2 adatbusza is, stb. A lenyeg: a dual port memoria egyik portjat statikusan read-re allitod be, a cim legyen az EP altal kivalasztott scanelendo sor. Az adatbuszrol meg olvasod. Lathato, hogy mivel itt semmi MCU stb nincs, ez a mukodesi modot csak a memoria sebessege hatarozza meg. itt voltakepp a dp. memoriaban tarolt egyes bitek mutatjak/emulaljak ugymond a bill.matrix allapotat.

A masik port arra kell, hogy az MCU a PS/2 dolgok hatasara irni tudja (modsitani) az allapotat a cuccosnak. Ha itt lassu az MCU-nk akkor sincs para, "nem marad le", max kesobb latja az EP a billentyut, de nem fog helyette mast latni legalabb.

En egyre jobban ugy latom, hogy ez a sok trukkozes/otlet amiatt kell, mert az ember kombinalt megoldast akar. A mar letezo AVR-es PS/2 illesztes szerintem eleg is lenne, max akkor az bill only, masra kell egy masik MCU. Ha mindenaron akarjuk csokkenteni ezek szamat, akkor viszont oda jutunk, hogy ilyen trukkok kellenek, ami miatt amugy is no a kulso alkatreszek szama, es kb ugyanott vagyunk :(

Vagy ja, CPLD inkabb, vagy legalabbis "vagy az is melle/bele" :)

Offline lgb

  • EP addict
  • *
  • Posts: 3563
  • Country: hu
  • æðsta yfirmaður
    • http://lgb.hu/
Re: HW készítés Arduino-val
« Reply #194 on: 2014.October.09. 00:35:22 »
By the way: MT8812

Na, ezt irtam vhol fentebb, hogy vmi switch matrix szeru ize, ez konkretan egy 8*12-es szervezesu cross point switch cuccos. Azt neztem epp, hogy mas (konkretan C64) PS/2 illesztoben pl ez van, maga ez a switch emulalja a billentyumatrixot, es ezt allitgatja egy MCU.