USB-Wii Classic Controller (4 / 18 stap)

Stap 3: Begrip USB


USB gebruikt twee draden, meestal aangeduid met D + en D-, seriële gegevens niet-terugkeer-naar-zero coding gebruiken. Deze twee draden zijn een differentiële paar, wat betekent dat D-het signaal zal altijd D + de omgekeerde staat. Hierdoor is het over te dragen gegevens echt snel over een lange kabel (5 meter kabel op 480 Mbit/s als met behulp van de USB 2.0 Hi-speed), lees dit voor meer http://en.wikipedia.org/wiki/Differential_pair

USB-bussen hebben een apparaat en de gastheer, de computer is meestal de host, onze gamepad is een apparaat, meer in het bijzonder, een HID (human interface device). Het is belangrijk op te merken dat de host altijd communicatie initiëren, of de host het apparaat regelmatig om te zien controleert als er iets te zeggen. Het apparaat beschikt niet over de functionaliteit om communicatie te initiëren, het kan alleen wachten totdat het wordt gesproken.

Er zijn pull-up weerstanden op D + of D - afhankelijk van al dan niet het apparaat USB 1.0, USB 1.1 of USB 2.0. De aanwezigheid van deze weerstanden pull-up is ook hoe een computer weet wanneer iets heeft aangesloten. Op de USnooBie en de meeste V-USB circuits is de pull-up weerstand altijd op het D-signaal omdat V-USB alleen geschikt is voor de uitvoering van lage snelheid USB-apparaten.

De twee 68 ohm weerstanden op de D + en D-signalen zijn tot beëindiging van weerstanden, hun impedantie worden berekend (rekening houdend met de interne circuits van de AVR) worden vergeleken met de karakteristieke impedantie van de USB-kabel. Dit minimaliseert reflecties van het signaal. Lees http://en.wikipedia.org/wiki/Transmission_line voor meer informatie.

Wanneer een apparaat verbinding met een host, wordt de host probeert te "inventarisatie" van het apparaat. Als dit niet zo (het apparaat niet reageert, of reageert met huisvuil), dat is wanneer Windows zegt 'apparaat niet herkend'.

De gastheer en apparaat praat over kanalen genaamd "eindpunten", eindpunten worden geïdentificeerd door een nummer. Er zijn sommige eindpunten die een gereserveerd voor speciaal gebruik, terwijl anderen kunnen worden geconfigureerd om te werken in verschillende modi (interrupt, bulk, etc).

De host gebruikt altijd eerst de "controle eindpunt" (eindpunt 0) eerst te vragen een beschrijving van de inrichting, deze "descriptor" zal de apparaat-id's bevatten (leverancier-ID en product-ID, enz), samen met de stuurprogramma-installatieklasse, subklasse, etc (HID zoals een muis of toetsenbord? of misschien massaopslag?). Vervolgens wordt de configuratie-descriptor aangevraagd, waarin ook het aantal eindpunten beschikbaar op het apparaat. Elk eindpunt heeft eigen descriptor als goed. Al deze gegevens worden verzonden als pakketten van gegevensbytes die vertegenwoordigt een bekende opgegeven datastructuur.

V-USB en andere USB-kaders/stacks hebben API's en andere methoden om de programmeur toestaan om te wijzigen van de inhoud in de descriptoren. Moet u eerst begrijpen elk descriptor worden gecontroleerd en vervolgens de documentatie met betrekking tot V-USB om te zien hoe u deze (ik zal je laten zien later) wijzigt.

De host maakt de aanvragen door te sturen "setup pakketten" op het "eindpunt van de controle". Installatie pakketten hebben een gedefinieerde structuur waardoor het gemakkelijk is voor het apparaat te begrijpen wat de host wil. V-USB (en soortgelijke kaders) meestal verwerkt de standaard setup-pakketten. Een programmeur kan het schrijven van stuurprogramma's die aangepaste setup-pakketten verzendt, in welk geval de firmware moet omgaan met de setup-pakketten handmatig, V-USB (en anderen) biedt sommige manieren om te helpen mee.

Later in dit instructable, ik heb ook een dump van de descriptoren gevangen genomen door mijn USB-verkeer analyzer. U kunt een kijkje nemen en het overeenkomen met USB-specificaties om te zien wat elk gedeelte vertegenwoordigt.

Na alle de descriptoren uitname van het apparaat, kan de host begrijpen van het apparaat en ermee communiceren. We zullen kijken naar alle de descriptoren in detail later.

Ik heb een ander Instructable die u hoe toont te bouwen van een USB-toetsenbord dat soorten uit de code opgeslagen in RFID-tags:

Huiswerk: USB in een notendop- http://www.beyondlogic.org/usbnutshell/usb1.shtml die vrij veel een USB Bijbel is lezen

Belangrijke opmerking: De meeste van de USB-terminologie is vanuit het perspectief van de host (de computer), dus de woorden "in" en "input" betekent van het apparaat naar de host, en de woorden "out" of "output" betekenen van de host naar apparaat.

Gerelateerde Artikelen

Teensy USB-Wii Classic Controller

Teensy USB-Wii Classic Controller

Ik ben een fan van de Wii Classic Controller, maar ik heb nooit verzorgd moetend draadloze controllers houden betalen voor een occasionele aanval van nostalgie. Zou het niet geweldig zijn als ik mijn Wii Classic Controller via USB kon gebruiken? Dit
Arduino Lens Controller - Zoom/Focus gesynchroniseerd met Wii Classic Controller

Arduino Lens Controller - Zoom/Focus gesynchroniseerd met Wii Classic Controller

mijn Lumix GH2 Micro Four Thirds camera schiet niet alleen fantastische high definition video's, maar met goedkope adapters kan ik gebruiken met oudere manuele lenzen die goedkoop en vaak erg hoge kwaliteit. Ik schiet veel prestaties video's voor mij
USB-Wii Gamepad met behulp van de Arduino Leonardo

USB-Wii Gamepad met behulp van de Arduino Leonardo

Afgelopen weekend heb ik geprobeerd de nieuwe RetroPie op mijn mooie nieuwe Raspberry Pi 3, maar de enige spel controller die ik heb is het oudje Wii Classic Controller; Dus hoe kan ik het converteren naar een normale USB-spelbesturing?Na wat onderzo
USB-Biofeedback Game Controller

USB-Biofeedback Game Controller

Voortbouwend op onze laatste tutorial, die u geleerd hoe te bouwen van een spier-sensor, hebben we besloten om u een project dat echt de vitrines van de kracht van onze spier (EMG) sensoren. Advancer Technologies "USB-Biofeedback Game Controller"
Wii Nunchuk Controller

Wii Nunchuk Controller

Deze tutorial leert u hoe u kunt besturen VEX motoren met een Wii Nunchuk.Het kan erg handig zijn als u wilt controleren uw robot met een Arduino en niet een VEX cortex en controller.Stap 1: materialen Arduino UNOWii NunchukLaptop/ComputerDraadloze M
24-kanaals USB-Connected LED Controller, upto 1A per kanaal

24-kanaals USB-Connected LED Controller, upto 1A per kanaal

Dit apparaat is ontworpen als een veelzijdig high-current LED controller, met de mogelijkheid om te zinken of / en source stromingen tot 1A per kanaal met dissipatie van maximaal 2.5W per kanaal. De verschillende truien en transistor plaatsing mogeli
Bouwen van een USB-6 servo controller

Bouwen van een USB-6 servo controller

Hallo, ik was op zoek naar een servo-controller en vond dit. Ik dacht dat anderen net als ik zou vinden het interessant zijn om te bouwen. Echter, zelfs niet proberen dit te doen indien u geen kennis in de bouw van circuitboards. Het is bassicly een
Arduino Wii Nunchuck controller

Arduino Wii Nunchuck controller

Hoe u kunt besturen 2 servo's dacht dat de wii nunchuck.Stap 1: onderdelen Wii nunchuckArduino2 servoBreadboardJumper dradenStap 2: verbinding maken Sluit de wii nunchuck zoals dit schema.Stap 3: De Code uploadenStap 4: gedaan!!! U kunt nu de 2 servo
Funtendo - een multistick retro controller voor uw PC

Funtendo - een multistick retro controller voor uw PC

Funtendo is een volledig zelfstandige retro gaming & controller systeem voor uw PC.Het is geschikt voor het gebruik van de originele Nintendo controller, de N64 -controller en de Wii Classic controller op hetzelfde moment!Funtendo is USB powered en b
Aan de slag met de Pocket Mini Computer

Aan de slag met de Pocket Mini Computer

Ongeveer een maand en een half geleden, ik creëerde een project genaamd de Pocket Mini Computer en een Instructable schreef over hoe om het te bouwen. Dit Instructable gaat het hele project een stapje verder door u aan de slag met uw Pocket Mini Comp
Het creëren van animatie en Games: hoofdstuk 1 aan de slag.

Het creëren van animatie en Games: hoofdstuk 1 aan de slag.

Welkom bij de eerste van een multi-delige serie:Maken van animatie en Games: hoofdstuk 1 aan de slagDeze serie zal duik in het gebruik van de Propeller microcontroller gebaseerde systemen voor het maken van uw eigen afbeeldingen, animaties en video g
Bouw uw eigen mini zakcomputer

Bouw uw eigen mini zakcomputer

ooit willen ervaren jaren 70 en 80 computergebruik zonder gehannes met krakende oude hardware en 5,25-inch diskettes?In dit Instructable, zal ik je leren hoe te bouwen en uw eigen mini pocket computer program.Verkennen micro computing met een machine
Het creëren van animatie en Games: hoofdstuk 2 Game Controllers

Het creëren van animatie en Games: hoofdstuk 2 Game Controllers

Welkom bij de tweede van een multi-delige serie:Maken van animatie en Games: Gamecontrollers hoofdstuk 2Deze serie zal duik in het gebruik van de Propeller microcontroller gebaseerde systemen voor het maken van uw eigen afbeeldingen, animaties en vid
Het gebruik van een Wiimote als muis van uw Computer

Het gebruik van een Wiimote als muis van uw Computer

ooit afgevraagd welke leuke dingen je met een Wiimote doen kunt? Zo ja, is dit zeker waar je start-gebruiken als een muis!Stap 1: Stap 1: materialen1. een Wiimote (natuurlijk)2. WiiMotionPlus (eigenlijk is ingebouwd in sommige nieuwe Wiimotes!)3. Blu