Re: USB-tangentbord till matris ?
Postat: 7 februari 2016, 22:25:15
Men säg att det är Spectravideo 318/328 så hade andra redan kunnat googla fram schemat, finns ju överallt och ser precis ut som det du lagt in vad jag kan se
7445 avkodar ju 0-9, AND+NOT ger en utgång som är aktiv vid A-B och E-F, d.v.s. i praktiken A/10 och några fler bonusavkodningar som antagligen inte används. En fyra-till-sexton-dekoder var väl klart dyrare än denna lösning, dessutom kanske grindarna annars fanns "gratis".
Du räknar alltså igenom 0-A på KB0-KB3 och läser av IN0-IN7.
Det kluriga är att inga dioder är ritade i schemat. Prova vilka kombinationer som ger spökkoder! Om tanken är att bara klara att läsa av 2-key rollover i worst case så räcker det ju att köra utan dioder. Däremot så ifall man trycker SHIFT+CTRL+X så verkar det som om även Y är intryckt och det går inte att avgöra vilken.
Det finns i princip tre metoder att emulerat tangenbordet.
Den ena är en mikrokontroller som är så fasligt snabb att den hinner reagera på utgångarna från 7445 & co och lägga ut rätt signaler för avläsning.
Den andra är att ha drivor av analoga switchar styrda av en mikrokontroller
Den tredje är att ha ett dubbelportat minne, antingen på 2kbyte där 7445 & co:s utgångar ger adress och avläsningen sker på dataledningarna, eller att ha ett om endast 16 bytes där de fyra bitarna in på 7445 ger adress och avläsningen sker på dataledningarna.
Du vet ju hur snabb en Z80 är och hur många cykler snabbaste möjliga avläsningen tar, och kan avgöra hur snabb en mikrokontroller måste vara för att helt exakt emulera ett tangentbord. Även om det är en del studs direkt vid nedtryckning av tangenterna så lär det däremot vara god kontinuerlig kontakt när studsen väl lagt sig. Jag vet inte i vilken mån det sker flera avläsningar rakt av och/eller det inte sker någon fördröjning för avstudsning. Utan att veta så gissar jag att hela matrisen läses av så snabbt som möjligt varje gång någon periodisk interrupt infaller, och för avstudsning så krävs att samma tangent verkar nedtryckt mer än en sådan interruptavläsning i rad. Om det är på detta vis så måste din mikroprocessor klara att svara "direkt".
Jag vet inte riktigt hur det blir med frakt, moms, tull, krav på att vara företag och liknande, men dubbelportade minnen verkar inte direkt vara spjutspetsdyra även om de inte är gratis:
http://www.futureelectronics.com/en/tec ... .aspx?IM=0
P.S. skrev jag för mycket om orealistiska expansioner i din tråd om SVI-expansion?

7445 avkodar ju 0-9, AND+NOT ger en utgång som är aktiv vid A-B och E-F, d.v.s. i praktiken A/10 och några fler bonusavkodningar som antagligen inte används. En fyra-till-sexton-dekoder var väl klart dyrare än denna lösning, dessutom kanske grindarna annars fanns "gratis".
Du räknar alltså igenom 0-A på KB0-KB3 och läser av IN0-IN7.
Det kluriga är att inga dioder är ritade i schemat. Prova vilka kombinationer som ger spökkoder! Om tanken är att bara klara att läsa av 2-key rollover i worst case så räcker det ju att köra utan dioder. Däremot så ifall man trycker SHIFT+CTRL+X så verkar det som om även Y är intryckt och det går inte att avgöra vilken.
Det finns i princip tre metoder att emulerat tangenbordet.
Den ena är en mikrokontroller som är så fasligt snabb att den hinner reagera på utgångarna från 7445 & co och lägga ut rätt signaler för avläsning.
Den andra är att ha drivor av analoga switchar styrda av en mikrokontroller
Den tredje är att ha ett dubbelportat minne, antingen på 2kbyte där 7445 & co:s utgångar ger adress och avläsningen sker på dataledningarna, eller att ha ett om endast 16 bytes där de fyra bitarna in på 7445 ger adress och avläsningen sker på dataledningarna.
Du vet ju hur snabb en Z80 är och hur många cykler snabbaste möjliga avläsningen tar, och kan avgöra hur snabb en mikrokontroller måste vara för att helt exakt emulera ett tangentbord. Även om det är en del studs direkt vid nedtryckning av tangenterna så lär det däremot vara god kontinuerlig kontakt när studsen väl lagt sig. Jag vet inte i vilken mån det sker flera avläsningar rakt av och/eller det inte sker någon fördröjning för avstudsning. Utan att veta så gissar jag att hela matrisen läses av så snabbt som möjligt varje gång någon periodisk interrupt infaller, och för avstudsning så krävs att samma tangent verkar nedtryckt mer än en sådan interruptavläsning i rad. Om det är på detta vis så måste din mikroprocessor klara att svara "direkt".
Jag vet inte riktigt hur det blir med frakt, moms, tull, krav på att vara företag och liknande, men dubbelportade minnen verkar inte direkt vara spjutspetsdyra även om de inte är gratis:
http://www.futureelectronics.com/en/tec ... .aspx?IM=0
P.S. skrev jag för mycket om orealistiska expansioner i din tråd om SVI-expansion?
