Sida 1 av 2

Avkoda USB-tangentbord med PIC

Postat: 5 april 2014, 10:00:19
av newbadboy
Ska koppla ett litet numeriskt usb (1-9/*-+enter) tangentbord till en PIC.

Sedan ska jag typ göra enkla grejer som att trycker jag siffran 1 och enter tänder jag en led en kort stund.

Finns det ngn bra sida med underlag och fakta hur man avkodar usb med just PIC kanske lite schema/ program exemmpel etc.

Kan tilläga att jag skriver i MikroC så det är ett extra plus om dess syntax används i exempel ;)

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 10:11:10
av bearing
Vad använder du för PIC? Det är inte många PIC som kan vara USB Host.

USB-tangentbord brukar kunna köra PS2-protokollet på samma pinnar som USB. I alla fall de första USB-tangentborden. De anslöts med en passiv USB/PS2-adapter. PS2 borde inte vara så svårt att läsa av med en vanlig 8-bit PIC.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 10:13:42
av newbadboy
Det är eg fritt fram att välja. Inte ens pic kretsen är bestämd. Vore trevligt med så lite mellan elektronik som möjligt

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 10:27:36
av bearing
Tror att du behöver gå upp till PIC32 för att få USB-host.
Vad har du själv letat fram?

http://www.mikroe.com/download/eng/docu ... ibrary.htm
Längst ned finns kopplingsschema.

EDIT: Hade visst råkat länka till MikroBasic-biblioteket, men finns såklart även till MikroC, dock utan kopplingsschemat, så jag låter länken ovan ligga kvar.
http://www.mikroe.com/download/eng/docu ... ibrary.htm

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 10:27:52
av TomasL
Du måste ha en processor som kan agera USB-Host.
Därefter måste du koda en USB-Hoststack, först därefter kan du avkoda tangentbordet.

Förslagsvis så tar du en PIC32a, finns ett antal som har USB-Host.
Microchip har även färdiga stackar du kan använda.
Enklast för dig är att du köper en lämplig PIC32 Starterkit.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 10:37:11
av sodjan
Absolut enklast är att *inte* använda ett USB tangentbord!
Ta ett vanligt matriskopplat och avkoda det "som vanligt".
Oerhört mycket enklare och du kan använda vilken PIC som helst.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 10:41:15
av TomasL
Förvisso, men om man vill använda ett standardtgb, inköpt på kjell eller klas, så är det USB som gäller.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 10:45:30
av sodjan
OK.

Kjell artnr 91028 säger "USB- eller PS/2-anslutning".
Jag har för mig att PS/2 är betydligt enklare att hantera.
I princip bara att avkoda seriell data.
http://www.piclist.com/techref/microchi ... ps2-jc.htm

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 11:04:19
av bearing
MicroC PS/2-bibliotek är länkat några inlägg upp. PS/2 använder pull-up till 5V på båda signalerna, medan USB 1k5 till 3.3V på ena. Antagligen känner tangentbordet av hur det ska kommunicera genom den skillnaden.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 11:11:28
av TomasL
PS2 är väl bara scankoderna seriellt samt klocka, har jag för mig.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 11:15:14
av newbadboy
Hade jag kört vanligt vanligt matrisbord är det som sagt enkelt. Enda orsaken till att jag funderar på usb bord är att då får man allt snyggt förpackat med en kabel ut bara. Matris bord har jag inte hittat färdigt utan alla jag sett måste man bygga in i låda.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 11:20:46
av TomasL
bearing skrev:MicroC PS/2-bibliotek är länkat några inlägg upp. PS/2 använder pull-up till 5V på båda signalerna, medan USB 1k5 till 3.3V på ena. Antagligen känner tangentbordet av hur det ska kommunicera genom den skillnaden.
Det är nog väldigt modell/tillverkarberoende, då det inte finns någon standard.
Man kan inte ens lita på att adaptrar från samma tillverkare men olika modeller är kompatibla med varandra.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 11:26:59
av bearing
newbadboy skrev:Hade jag kört vanligt vanligt matrisbord är det som sagt enkelt. Enda orsaken till att jag funderar på usb bord är att då får man allt snyggt förpackat med en kabel ut bara. Matris bord har jag inte hittat färdigt utan alla jag sett måste man bygga in i låda.
OK, men kan du inte kommentera PS/2 spåret då?
Du kan väl i alla fall skriva vad du har för tangentbord, så att det går att ta reda på om ditt tangentbord klarar PS/2?
Eller berätta om du vill att din apparat ska klara alla marknadens modeller av USB-tangentbord?

Jag borde aldrig mer gå in på det här forumet, för jag blir bara arg så fort jag läser något här.

*Ett lovande lösningsförslag kommer i första svaret.
*Trådskaparen kommenterar inte lösningsförslaget
*Två nya deltagare i tråden resonerar en stund, som om de inte läst första svaret, och kommer fram till samma sak som första svaret.
*Trådskaparen fortsätter att inte kommentera lösningsförslaget.
TomasL skrev:
bearing skrev:MicroC PS/2-bibliotek är länkat några inlägg upp. PS/2 använder pull-up till 5V på båda signalerna, medan USB 1k5 till 3.3V på ena. Antagligen känner tangentbordet av hur det ska kommunicera genom den skillnaden.
Det är nog väldigt modell/tillverkarberoende, då det inte finns någon standard.
Man kan inte ens lita på att adaptrar från samma tillverkare men olika modeller är kompatibla med varandra.
Möjligtvis, men om du inte har något belägg för detta utgår jag ifrån att du hittat på det.

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 11:30:39
av TomasL
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

Re: Avkoda usb tangetent bord med PIC

Postat: 5 april 2014, 12:02:46
av newbadboy
Slappna av. Jag har inget tangentbord heller. Jag håller på och kollar upp alla möjligheter. Jag behöver inte alls klara en massa olika. En variant funkar bra. Så ev kan ps2 lösningen funka men jag måste undersöka den. Kan inte alls ngt om detta vid nuläget.

Är fö ute och leker med min dotter så tagga ner lite om jag inte kan svara varje minut eller missar svara på vissa frågor