Avkoda USB-tangentbord med PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46974
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Avkoda usb tangetent bord med PIC

Inlägg av TomasL »

PS/2 är seriella data 8O1 samt klocka, runt 10-16kc ungefär. (från dev till host)
Från host till dev tillkommer en ACK bit i slutet, vilken skickas från dev till host.
Dessutom förekommer lite handskakning om host skall skicka till dev.
dev genererar alltid klocka.
Användarvisningsbild
vfr
EF Sponsor
Inlägg: 3515
Blev medlem: 31 mars 2005, 17:55:45
Ort: Kungsbacka

Re: Avkoda usb tangetent bord med PIC

Inlägg av vfr »

Newbadboy> Jag tror grejen var att du faktiskt gjort ett inlägg sedan dess och kommenterat vissa andra saker, men ignorerat dom lösningsförslag som redan diskuterats. Hade du inte varit inne alls emellan så hade nog ingen brytt sig om det. Samma sak om du iallafall nämnt något om lösningsförslagen, kanske bara sagt att det kunde vara ngt att fundera på. Det ser lite illa ut när flera förslag presenteras men inte ens får en kommentar i svaret.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Avkoda usb tangetent bord med PIC

Inlägg av newbadboy »

Som sagt så tog min dotter halva min uppmärksamhet och gör nu oxå. Ju mer jag kollar på det ju mer känns det som en vanlig matris är way to go..... Är kanske inte så lönt att blanda in en massa protokoll och grejer för att lösa ngt enkelt
bearing
Inlägg: 11676
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

Re: Avkoda usb tangetent bord med PIC

Inlägg av bearing »

Varför är du ens ute på internet när du umgås med familjen?
Som en tonåring.

Haha, nä nu ska jag gå härifrån.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Avkoda USB-tangentbord med PIC

Inlägg av blueint »

Köp ett billigt USB-tangentbord och se om det kan fås att gå i PS/2 läge med dubbla pullup motstånd till +5V. PS/2 protokollet bör kunna hanteras av vilken mikrokontroller som helst. Den första PS/2 kontrollern var en Intel 8048 som vilken mikrokontroller som helst i dagsläget lär prestera mer än.
Intel 8048 har 1 kByte ROM och 64 bytes RAM. Tillverkad från och med 1976.

Om du behöver använda USB så behöver processorn antingen:
* Klara att köra en mjukvarubaserad USB stack med en minstafrekvens på 12 MHz, 2 kB Flash, 128 byte RAM. *
* Använder USB OTG
* Eller har direkt stöd för USB host läge.

Sedan tillkommer hantering av datastrukturerna för USB-HID med avseende på tangentbord. Vilket nästan är det värsta ;)
Användarvisningsbild
Icecap
Inlägg: 26648
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Avkoda USB-tangentbord med PIC

Inlägg av Icecap »

Köp ett t-bord som tänkt, plocka isär det och dekoda matrisen med en PIC eller liknande, de är nämligen internt byggt som en matris. Samma sak kan man göra med ett fullstort t-bord.

Data kan lämpligen hanteras som "knapp påverkad" och "knapp släppt".

Självklart kan man få samma funktion vid att se till att det inköpta t-bord kan fungera i PS2-läge.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Avkoda USB-tangentbord med PIC

Inlägg av newbadboy »

Icecap skrev:Köp ett t-bord som tänkt, plocka isär det och dekoda matrisen med en PIC eller liknande, de är nämligen internt byggt som en matris. Samma sak kan man göra med ett fullstort t-bord.

Data kan lämpligen hanteras som "knapp påverkad" och "knapp släppt".

Självklart kan man få samma funktion vid att se till att det inköpta t-bord kan fungera i PS2-läge.

Lät som ett bra bud faktiskt. Då får jag både enkelhet och utseende
nifelheim
Den första
Inlägg: 2489
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Avkoda USB-tangentbord med PIC

Inlägg av nifelheim »

max3421

tex.
http://www.ebay.com/itm/USB-Host-ADK-Sh ... 1117229259?

Edit: längre ner i texten finns länk till lite kod
https://github.com/felis/USB_Host_Shield_2.0
Senast redigerad av nifelheim 5 april 2014, 15:51:21, redigerad totalt 2 gånger.
Användarvisningsbild
newbadboy
Inlägg: 2485
Blev medlem: 16 september 2006, 19:16:28
Ort: Landskrona
Kontakt:

Re: Avkoda USB-tangentbord med PIC

Inlägg av newbadboy »

blueint skrev:Köp ett billigt USB-tangentbord och se om det kan fås att gå i PS/2 läge med dubbla pullup motstånd till +5V. PS/2 protokollet bör kunna hanteras av vilken mikrokontroller som helst. Den första PS/2 kontrollern var en Intel 8048 som vilken mikrokontroller som helst i dagsläget lär prestera mer än.
Intel 8048 har 1 kByte ROM och 64 bytes RAM. Tillverkad från och med 1976.

Om du behöver använda USB så behöver processorn antingen:
* Klara att köra en mjukvarubaserad USB stack med en minstafrekvens på 12 MHz, 2 kB Flash, 128 byte RAM. *
* Använder USB OTG
* Eller har direkt stöd för USB host läge.

Sedan tillkommer hantering av datastrukturerna för USB-HID med avseende på tangentbord. Vilket nästan är det värsta ;)
Blev precis gråhårig. ;-)
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

Re: Avkoda USB-tangentbord med PIC

Inlägg av Lennart Aspenryd »

Gråhårig eller skallig!
Du har fått rådet att skita helt i USB överföring.
Ta det till dig! ;-)
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: Avkoda USB-tangentbord med PIC

Inlägg av blueint »

@nifelheim, Intressant chip! har lagt in det på EF wikin.
Användarvisningsbild
MiaM
Inlägg: 12950
Blev medlem: 6 maj 2009, 22:19:19

Re: Avkoda usb tangetent bord med PIC

Inlägg av MiaM »

TomasL skrev:Tja egen erfarenhet, tidigare så brukade jag spara dem (samma med PS2/AT adaptern) men nu hivar jag dem, då de i regel inte är kompatibla.
samt från Wikipedia
Such passive adapters are not standardized and may therefore be specific to the device they came with
Fast det finns ju bara två teoretiska sätt att göra dem, så det är väl bara att växla data och klocka ifall det sätt man provar inte fungerar.

... ungefär som att det också korkat nog finns två sätt att använda de två "tomma" benen i en PS/2-kontakt för att få en till PS/2-kanal. (Praktiskt på en bärbar där man inte vill ha så många kontaktdon, men på de platser man kör den stationärt kan man ansluta både mus och tangentbord i samma port). (Ja, sen kan ju dessa "tomma" pinnar användas till andra saker också. Commodore CD32 (tv-spel-mässigt förpackad Amiga 1200 plus cd-rom och en extra krets minus diverse portar) har t.ex. rs-232-portens tx+rx fast med 5V-nivåer på de "tomma" ps/2-pinnarna).
Användarvisningsbild
hanzibal
EF Sponsor
Inlägg: 2499
Blev medlem: 7 september 2010, 20:54:58
Ort: Malmö/Lund

Re: Avkoda USB-tangentbord med PIC

Inlägg av hanzibal »

Icecap skrev:Köp ett t-bord som tänkt, plocka isär det och dekoda matrisen med en PIC eller liknande, de är nämligen internt byggt som en matris. Samma sak kan man göra med ett fullstort t-bord.

Data kan lämpligen hanteras som "knapp påverkad" och "knapp släppt".

Självklart kan man få samma funktion vid att se till att det inköpta t-bord kan fungera i PS2-läge.
@TS: Gör som föreslås ovan så blir det bra.

Av nyfikenhet, vad slags tingest skall avkoda och varför?

För övrigt: Du är nog den första trådskrivare jag sett som beklagar sig över att du får många svar på en fråga :D
Findecanor
Inlägg: 1045
Blev medlem: 2 juli 2010, 23:04:07

Re: Avkoda USB-tangentbord med PIC

Inlägg av Findecanor »

Det finns ett helt gäng med olika open source kontroller-firmwares till AVR / avr-gcc annars ...
Ett av de mer populära, med en länk till en förteckning över fler längre ner på sidan. De flesta funkar med kontrollerkortet Teensy.
Jag håller också på att hacka ihop en firmware till det kortet och ett DIY-tangentbord till att börja med, men det tar nog ett tag innan jag tycker det är moget att släppa.

Annars är det enklaste att göra som Icecap föreslår att norpa kontrollern från ett existerande tangentbord ... om nu inte en del av poängen var att skriva det själv, vilket det är för mig.
Skriv svar