Hur du gör USB-enhet (PIC18F) (1 / 8 steg)
Steg 1: hårdvara
Enheten innehåller ett ICSP huvud (i Circuit Serial Programming) och en USB typ B anslutning. I tillägg finns det en enda LED och en enda knapptryckning switch för att representera de input och output enheterna.
Kretsen är mycket rakt fram (om du inte förstår denna nivå av mikrokontroller elektronik föreslår jag att du gå vidare och bygga några av de många blinkande LED och tryckknapp självstudiekurser tillgängliga på webben innan du försöker med detta).
PIC18F4550 kommer att vara "bussen driv"; Detta innebär att enheten kommer att dra sin makt från USB-värd (datorn) så ingen makt föreskrift.
470nF kondensatorn (C3) krävs så PIC kan fungera den interna USB-kretsar (det hjälper reglera USB spänningar krävs av inbyggda USB-gränssnittet i PIC).
ICSP sidhuvudet kan du ansluta en PIC programmerare, jag föreslår att du använder billig PICkit2 programmerare, men andra ICSP kompatibel programmerare bör fungera alldeles utmärkt. Klockan 20Mhz krävs för USB-program.
Detta gör att PIC att använda PLL som ups klockfrekvens till det krävs 48Mhz behövs för USB-kommunikation.
(Läsaren [Jason] skickade mig ett mail påpeka att en 20Mhz kristall inte är absolut nödvändigt när du använder den PIC18F ombord USB - vilket är helt rätt.
Du kan använda olika kristaller förutsatt du ändra PIC fuse konfigurationen. Kolla in PIC18F4550 datablad sidorna 29-30 för mer information - tack Jason!).
Följande bild visar kretsen byggda på en hobby bakbord. Jag har lagt några etiketter till bilden att göra klart vilka komponenter gå där.
Observera att, för programmering, kommer vi att använda 5V leverans från programmeraren. Eftersom detta är en bus-powered USB-enhet kommer 5V raderna att anslutas till USB-kontakten också.
Detta innebär att om både programmeraren och USB-kabeln är ansluten samtidigt det finns potential för programmerare att leverera 5V till USB-värd; Detta rekommenderas inte av USB-normer.
Jag har aldrig sett ett fall där detta har betydelse (för experiment), men om du vill, du kan lägga en barriär diod till USB-kontakten att förhindra detta. I mina projekt använder jag vanligtvis en 1N5817 barriär Schottky diod för detta.