USB host med PIC

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

USB host med PIC

Inlägg av Kaggen »

Håller på att mixtra med joystick för att styra servon. Som jag har det nu så ansluter jag en joystick till en dator där jag snickrat ihop ett program som "omvandlar" värdena för x,y axlar på joysticken till "ASCII paket", vilket det sedan skickar via en vanlig serieport/RS232 till en PIC som styr servona. Allt funkar bra så långt.

Dock är det lite opraktiskt att vara beroende av en dator att släpa med sig för att joysticken skall funka, så jag har funderat på att bygga en liten USB host med en PIC18F4550 eller liknande PIC18 som har stöd för USB. När jag började söka på nätet efter lösningar så fann jag att i många inlägg att det tydligen är mer komplicerat att "bygga" en USB host än en USB device. Jag har fattat att man använder en standard kallad HID för detta. Dock behöver jag bara implementera stöd för joystick, jag är inte intresserad av andra enheter som tangentbord m.m. så jag funderar på om man kan banta ned implementationen av HID?

Innan jag kastar mig vidare in i detta tänkte jag bara höra om någon annan mekat med detta (att göra en USB host med en microkontroller alltså), och om det är en komplicerad historia om överhuvudtaget möjlig med en PIC18? I annat fall återstår alternativet att slakta joysticken och koppla in mig direkt på hårdvaran/givarna, vilket ju är synd eftersom den då blir oanvändbar för "normalt" bruk.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: USB host med PIC

Inlägg av blueint »

Diskussion om hur man implementerar USB i en mikrokontroller:
http://www.avrfreaks.net/index.php?name ... 34&start=0

Implementation av USB 1,5 Mbit/s i AVR:
http://www.obdev.at/products/vusb/download.html
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: USB host med PIC

Inlägg av TomasL »

PIC32 har USB2Go, och APIer i MCC32 för USB-host, har jag för mig. Tror inte om PIC18 har det.
snigelen
Inlägg: 815
Blev medlem: 8 maj 2009, 11:02:14
Ort: Lund

Re: USB host med PIC

Inlägg av snigelen »

Jo för USB host på PIC behöver du gå upp till 16 eller 32 bitar.
AVR har några 8-bitars med host-stöd, men det var väl inte aktuellt?
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: USB host med PIC

Inlägg av sodjan »

I princip kan du bra glömma det hela direkt. Det kommer sannolikt
inte att vara värt insatsen, om du ens får det att fungera alls.
USB är i grunden för att snacka mellan en "dator" (primärt en "PC")
med "klienter" (som t.ex din joystick).
janno
Inlägg: 434
Blev medlem: 11 oktober 2009, 07:34:45
Ort: Västerås

Re: USB host med PIC

Inlägg av janno »

Om du inte ska ansluta mer än en joystick så skulle jag offra den, det sitter väl normalt ett par potentiometerar som du kan koppla till A/D omvandlaren i PIC;en. Så behöver du inte krångla med USB alls.
Kaggen
Inlägg: 432
Blev medlem: 29 januari 2005, 03:06:02

Re: USB host med PIC

Inlägg av Kaggen »

Ok, låter som det enklaste är att tillsvidare ha kvar PCn som mellanhand eller slakta sticken.

Har dock inte riktigt förstått varför det inte skulle funka att ha en PIC18 med USB stöd som host? Om det är på grund av hårdvaran eller om mjukvaran skulle bli så komplex att den inte får plats? Hittade dock på en länk till några som verkar lyckats med att få till en mjukvarubaserad host på en Mega32 med hjälp av en SN74126N tristate buffer nedan om någon annan är intresserad.

http://courses.cit.cornell.edu/ee476/Fi ... index.html

Microchip själva verkar ju också mena att PIC18 familjen bara har device stöd enligt http://www.microchip.com/stellent/idcpl ... e=en537044

"The 8-bit PIC18 family supports USB device mode. The 16-bit PIC24F and 32-bit PIC32 products with USB support device mode, as well as embedded host and On-The-Go. All product families support up to (FS-USB) full-speed operation (12 Mbps)."

Tack för alla svar iaf!
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: USB host med PIC

Inlägg av TomasL »

PIC18 är för långsamma och för lite minne.
sodjan
EF Sponsor
Inlägg: 43251
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: USB host med PIC

Inlägg av sodjan »

> ...varför det inte skulle funka att ha en PIC18 med USB stöd som host?

Det har så klart delvis med att resurserna är lite för begränsade för att
implementera en USB-host. Har du ens kollat vilka krav som ställs på
en USB-host ?

Dessutom är hela idén i grunden lite fel, USB var aldrig designat
för det du vill/försöker göra.
Användarvisningsbild
swesysmgr
Inlägg: 14961
Blev medlem: 28 mars 2009, 06:56:43
Ort: Göteborg

Re: USB host med PIC

Inlägg av swesysmgr »

Kan du tänka dig att använda en extern krets + PIC18 så verkar det vara möjligt:
http://www.circuitsathome.com/mcu/light ... hostpart-1
http://www.maxim-ic.com/datasheet/index.mvp/id/3639
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: USB host med PIC

Inlägg av TomasL »

Om man skall köra med 12Mbps behöver PHY'n en klocka om 48 MHz, vilket PIC16/18 inte klarar, eftersom den divideras med 4 i en PIC16/18.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: USB host med PIC

Inlägg av blueint »

Vilket man kan dela externt.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46998
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: USB host med PIC

Inlägg av TomasL »

Visst, men då använder man en extern USB-kontroller, till exempel FDTI's kretsar, och då är det liksom inte längre en PIC.
blueint
Inlägg: 23238
Blev medlem: 4 juli 2006, 19:26:11
Kontakt:

Re: USB host med PIC

Inlägg av blueint »

iofs..

1,5 Mbit/s USB bör iaf gå att implementera ifall AVR 8-bit fixar det.
Skriv svar