USB-tangentbord till matris ?

Elektronikrelaterade (på komponentnivå) frågor och funderingar.
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

USB-tangentbord till matris ?

Inlägg av Glenn »

Är dte nån som känner till nåt öppet projekt där man kopplar in ett USB-tangentbord i ena ändan, och sen får ut en matris i andra ändan ? Jag menar altlså att man vill ha ett USB-tangentbord istället för ett gammalt tangentbord inkopplat med X/Y-matris.

Jag har googlat en hel del och motsatsen finns det gott om, men få som gör det åt detta hållet, det finns några komersiella (svindyra) alternativ, och jag har hittat ett projekt som gör det år rätt håll:

http://forum.arduino.cc/index.php?topic=323720.0

..Men det är väl inte riktigt 100 vad jag vill göra, och dessutom inte öppet dokumenterat.

Är det nån som känner till nåt annat projekt, eller måste jag börja från början ?
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: USB-tangentbord till matris ?

Inlägg av Platis »

Intressant, har själv funderat på detta ibland! Antar en CPLD eller FPGA vore en lösning, då kan man även programmera om för olika konfigurationer(olika datorer).

Ett teensy-board kanske skulle funka om det är tillräckligt med pinnar, där har du usb-interfacet färdigt och den kan agera host(tror jag)!?
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: USB-tangentbord till matris ?

Inlägg av Glenn »

Ja, Teensy vore nog lämpligt, iaf att labba med, även om dom är lite dyra (nåja).

Det bör ju inte vara så stor skillnad att göra detta till diverse gamla datorer egentligen, bara att mappa matrisen rätt.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: USB-tangentbord till matris ?

Inlägg av Platis »

Teensy LC(lowcost) är rätt överkomlig!
http://www.lawicel-shop.se/prod/Teensy- ... 70/SWE/SEK
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: USB-tangentbord till matris ?

Inlägg av Glenn »

Det är ju dock betydligt dyrare än en lös PIC eller AVR eller nån motsvarande MCU som har kapaciteten.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: USB-tangentbord till matris ?

Inlägg av Platis »

Joo sant, vad ska du ha tangentbordet till? Blir säkert billigare att implementera ett PS/2 än ett USB-tangentbord!

Hur många ledningar, rader/kolumner behövs?

Med tex 8-3 encoders/decoders skulle du kunna spara lite pinnar!
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: USB-tangentbord till matris ?

Inlägg av Glenn »

Jag vill kunna använda ett normalt tangentbord till en gammal 8bitsdator som har matristangentbord.

Jag vill åt två saker, först och främst är det ergonomin, jag vill ha ett lågt tangentbord med normal layout, sen är det befintliga tangentbordet lite dåligt och alla knapapr "tar" inte riktigt utan man får trycka en gång till ibland, typiskt jobbigt om man ska skriva längre grejer :)

PS/2 är väl okej, men det känsn lite dumt att bygga för en utdöende standard..

Ska väl först och främst bygga en till mej själv, men tanken är väl att kunna erbjuda till andra med om det funkar bra.

Det är 8 rader och 11 kollumner, så 19 iopinnar bara för det om man inte kör skiftregister eller liknande.
Senast redigerad av Glenn 5 februari 2016, 22:04:15, redigerad totalt 1 gång.
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: USB-tangentbord till matris ?

Inlägg av Glenn »

Hmm, vad nu då.. kollade schemat..

kollumnerna (som jag ser det) går direkt in till en 7445, alltså en "BCD to decimal decoder", men borde det inte vara tvärt om ? tänker jag fel ?

alla kollumner är ju kopplade till utgångarna på 7445, och det är ju ingen "decimal to BCD" heller för den delen..

alla rader är däremot kopplade direkt till en 8255 (PIA/PPI) med pulldown.

Nu känner jag mej förvirrad här..
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: USB-tangentbord till matris ?

Inlägg av Platis »

Den lägger ut signal över 7445:an en utgång i taget och 8255:an läser raderna relativt tidpunkten och kan på så vis avgöra vilken tangent som var nertryckt, tangentbordet skannas! Men var kopplas den elfte kolumen, det är väl bara 10 utgångar på 7445:an?
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: USB-tangentbord till matris ?

Inlägg av Glenn »

Hmm, varför gör man så tro ?

Kollade just angående kolumn 11:

Det sitter en AND-grind (74LS08) med ingångarna kopplade till B och D (pin 12 resp 14) på 7445, utgången på denna grind går sedan vidare till en inverterande buffer (7406) och den utgången går i sin tur vidare till kolumn 8(!), medans kolumn 1-7 och 9-11 går ut till decimalutgångarna på 7445.

Synd att jag inte har en fungerande scanner så jag kunde scanna schemat.. kanske skulle underlätta.

Skulle iofs kunna fota.
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: USB-tangentbord till matris ?

Inlägg av Glenn »

Skrev inte det, men det kanske var självklart, men ingångarna på 7445 går ju också till 8255 förstås.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: USB-tangentbord till matris ?

Inlägg av Platis »

Glenn skrev:Hmm, varför gör man så tro ?

Kollade just angående kolumn 11:

Det sitter en AND-grind (74LS08) med ingångarna kopplade till B och D (pin 12 resp 14) på 7445, utgången på denna grind går sedan vidare till en inverterande buffer (7406) och den utgången går i sin tur vidare till kolumn 8(!), medans kolumn 1-7 och 9-11 går ut till decimalutgångarna på 7445.
Hur menar du, dom flesta gamla datorer/tangentbord funkar på detta sätt! Man lägger signal på en kolumn i taget samtidigt som raderna avläses och eftersom datorn vet exakt när en viss kolumns signal var hög så vet den vilken tangent som nedtrycktes!
På gamla miniräknare så var man ännu smartare och använde siffror/display-signalerna för att göra kolumnerna höga, detta för att spara ledningar/pinnar.

Signalerna kan givetvis vara aktivt låga också!

AND-grinden är säkert för shift-lock eller dyl!
Senast redigerad av Platis 5 februari 2016, 22:47:06, redigerad totalt 1 gång.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: USB-tangentbord till matris ?

Inlägg av Platis »

Synd att jag inte har en fungerande scanner så jag kunde scanna schemat.. kanske skulle underlätta.
Ta ett foto! :tumupp: :)

Är det en spectravideo? :wink:
Användarvisningsbild
Glenn
Inlägg: 37024
Blev medlem: 24 februari 2006, 12:01:56
Ort: Norr om Sthlm
Kontakt:

Re: USB-tangentbord till matris ?

Inlägg av Glenn »

Jag har aldrig satt mej in i hur det fungerar faktiskt, förräns nu :)

Försökte fixa bilder från schemat:

Här är själva tangentbordet:
kbmatris2.png
..Dock har ju jag svenskt tangentbord, detta rä US, men det spelar nog mindre roll.

Och här är kontrollerdelen det ansluts mot.
kbcont3.png
..Sött med handritade scheman i en officiell servicemanual för övrigt, men det var väl så på tidigt 80tal :)
Du har inte behörighet att öppna de filer som bifogats till detta inlägg.
Användarvisningsbild
Platis
Inlägg: 2464
Blev medlem: 24 november 2009, 20:19:28
Ort: Ljungby

Re: USB-tangentbord till matris ?

Inlägg av Platis »

Glenn skrev:Skrev inte det, men det kanske var självklart, men ingångarna på 7445 går ju också till 8255 förstås.
En 8255:a har tre 8-bitars portar, en halv port(4bitar)används nog för BCD-koden till 7445:an, avläsning av de 8st raderna sker av en annan port på 8255:an!

Edit: Nu när jag ser schemat så är det precis så det verkar funka! PC0-PC3 = BCD-koden till 7445:an, PB0-PB7 för
avläsning av raderna!

Genom att läsa BCD-koden direkt så skulle man kunna spara 6st pinnar och med en 3-8 dekoder(tex 74HC238) till radavläsningen kan du spara ytterligare pinnar!
Skriv svar