Vad kul att fler än jag jobbar med PDIUSBD12 kretsen !!
Jag jobbade med denna, bland annat i mitt exjobb.. Nu så fort jag orkar och hinner skall jag försöka skriva ett litet ramverk för en ATmega - processor för att handtera just D12:an.
Problemet med D12:an är dess datablad. Databladet är väldigt kort och förutsätter att man verkligen läser mellan raderna och att man verkligen kan USB standarden. Men när man väl kommit över de stora hinderna är det än väldigt bra krets, tycker jag...
Såå hur gör man. Ett lär dig USB standarden, Två lär dig USB standarden. Tre börja leta efter exempel där kretsen användts. Det finns några på Philips hemsida. De är inte jättebra, men orkar man sätta sig in i dem så ger de mycket. Det blev för oss att läsa en hel del taskigt skriven källkod utan kommentarer. En stor hjälp vi hade var att söka efter andra som jobbat med kretsen. Det finns ett diskussionsforum som heter USB-IF på adressen:
http://www.usb.org/phpbb/
Gå med i detta och sök efter PDIUSBD12. Du kommer att hitta oerhört mycket bra info där

. Om det är något du inte hittar som du undrar över, så finns där mycket folk som är väldigt insatta i USB-systemet.
När du väl är har byggt elektroniken du behöver runt kretsen och kopplat den till din CPU (gissar på mikrokontroller) så börjar det roliga. Eftersom en USB-funktion (det du bygger) är ren slav under hosten så skall du egentligen bara svara på en massa anrop, i alla fall tills du blivit enumererad - tilldelad en address i USB systemet.
Det första som händer är att hosten märker att du sitter på bussen när D12-kretsen vaknar. Då börjar den skicka en del anrop för att ta reda på vem du är. Så fort enheten har identifierat sig, skickat sin device descriptor så börjar systemet leta efter en drivrutin. Detta gör att du troligen även får skriva en drivrutin till ditt OS samtidigt som du utvecklar grunkan. Själv jobbade jag med Linux vilket gjorde att jag hade gott om exempel på hur en drivrutin skulle se ut. Jobbar du under windows borde det finnas gott om dokumentation och inte vara allt för svårt om du använder något .NET verktyg, ex visual C++ eller dyl.
Tyvärr har jag inga bra exempel jag kan dela med mig av. Du skulle iofs kunna få den drivrutin vi skrev till Linux-systemet, men jobbar du under windows så är den rätt värdelös. I vårt fall använde vi en tillståndsmaskin i en FPGA, vilket gör att allt vi gjort på funktionssidan är skrivet i VHDL (ren elektronik). Däremot kommer jag så fort jag får grejen att fungera (när jag väl får ork att dra igång det hela) så kommer jag att lägga ut ritningar och källkod etc på en hemsida som jag sitter och knackar på.
Skulle det vara något specifik du undrar över, kolla forumet jag gav dig. Annars kan du alltid fråga så kan jag svara utifrån vad jag vet och kan.
Lycka Till..!
