USB mando clásico de Wii (4 / 18 paso)

Paso 3: Comprensión USB

USB utiliza dos hilos, usualmente llamados D + y D-, para transmitir datos en serie usando la codificación de no volver a cero . Estos dos cables son un par diferencial, lo que significa D-de señal será siempre D + de invierte el estado. Esto le permite transferencia de datos muy rápido sobre un cable largo (5 metros de cable a 480 Mbit/s si se usa USB 2.0 de alta velocidad), lee esto para más http://en.wikipedia.org/wiki/Differential_pair

Buses USB tienen un dispositivo y el host, el equipo suele ser el anfitrión, nuestro gamepad es un dispositivo, más concretamente, un HID (dispositivo de interfaz humana). Es importante tener en cuenta que el host siempre iniciar la comunicación, o el anfitrión comprueba el dispositivo con frecuencia para ver si tiene algo que decir. El dispositivo no tiene la capacidad de iniciar la comunicación, sólo puede esperar hasta que se habla a.

Hay resistencias de pull-up en D + o D - dependiendo de si es o no el dispositivo de USB 1.0, USB 1.1 o USB 2.0. La presencia de estas resistencias de pull-up es también cómo un ordenador sabe cuando algo se ha conectado. En la USnooBie y la mayoría circuitos V-USB, el resistor de pull-up es siempre la señal de D desde V-USB sólo es capaz de implementar dispositivos USB de baja velocidad.

Las resistencias de dos 68 ohm en D + y D-señales son terminación de resistencias, su impedancia se calculan (teniendo en cuenta el circuito interno del AVR) a corresponder con la impedancia característica del cable USB. Esto minimiza los reflejos de señal. Lea http://en.wikipedia.org/wiki/Transmission_line para más información.

Cuando un dispositivo se conecta a un host, el host intenta "enumerar" el dispositivo. Si no hace así (dispositivo no responde, o responde con basura), que es cuando Windows dice "dispositivo no reconocido".

El host y el dispositivo habla sobre los canales llamados "extremos", criterios de valoración se identifican por un número. Hay algunos extremos que un apartado para uso especial, mientras que otros pueden configurarse para funcionar en modos diferentes (interrupción, a granel, etc.).

El anfitrión siempre utilizará el "extremo de control" (endpoint 0) primero para solicitar una descripción del dispositivo, este "descriptor" contendrá los identificadores de dispositivo (vendedor ID y ID del producto, etc.), junto con su clase, subclase, etc. (HID como un ratón o un teclado? o tal vez almacenamiento masivo?). Luego se solicita el descriptor de configuración, que contiene también el número de terminales disponibles en el dispositivo. Cada extremo tiene su propio descriptor así. Todos estos datos se envían como paquetes de bytes de datos que representa una estructura de datos especifica conocida.

V-USB y otros marcos USB/pilas tienen APIs y otros métodos para permitir que el programador modificar el contenido de los descriptores. Necesita primero entender cada descriptor y después Compruebe la documentación de V-USB para ver como hacerlo (te mostraré más adelante).

El anfitrión hace las solicitudes mediante el envío de "paquetes de configuración" a "extremo de control". Paquetes de configuración tienen una estructura definida, lo que es fácil para el dispositivo entender lo que quiere el host. V-USB (y frameworks similares) generalmente se encarga de los paquetes de configuración por defecto. Un programador puede escribir controladores que envía paquetes de configuración personalizada, en cuyo caso el firmware debe manejar los paquetes de configuración manualmente, V-USB (y otros) proporciona algunos métodos a ayudar con eso.

Más adelante en este instructable, he incluido un volcado de los descriptores de capturados por el analizador de tráfico de mi USB. Puede echar un vistazo y coincidir con las especificaciones USB para ver lo que representa cada porción.

Una vez que han recuperado todos los descriptores del dispositivo, el host puede entonces entender el dispositivo y comunicarse con ella. Veremos todos los descriptores en detalle más adelante.

Tengo otro Instructable que le muestra cómo construir un teclado USB tipos el código almacenado en etiquetas RFID:

Tarea: Leer USB en una cáscara de nuez http://www.beyondlogic.org/usbnutshell/usb1.shtml que es casi una Biblia USB

Nota importante: La mayoría de la terminología USB es desde la perspectiva del host (el equipo), así que las palabras "en" y significa "entrada" del dispositivo y el host, las palabras "out" o "salida" significa desde el host al dispositivo.

Artículos Relacionados

Controlador Arduino lente - sincronizado Zoom/enfoque con el mando clásico de Wii

Controlador Arduino lente - sincronizado Zoom/enfoque con el mando clásico de Wii

cámara mi Lumix GH2 Micro cuatro tercios no sólo dispara vídeos fantástica alta definición, pero con los adaptadores de bajo costo que pueda utilizar con lentes manual mayores que son baratas y a menudo muy alta calidad. Dispara a un montón de videos
Teensy USB Wii Classic Controller

Teensy USB Wii Classic Controller

Yo soy un fan del Mando clásico de Wii, pero me he no cuidado nunca para mantener los controladores inalámbricos cargada para una pelea ocasional de la nostalgia. ¿No sería genial si puedo usar mi mando clásico de Wii por USB? Se trata de cómo la hic
USB Wii Gamepad usando Arduino Leonardo

USB Wii Gamepad usando Arduino Leonardo

Fin de semana pasado probé el RetroPie nuevo en mi hermosa nueva frambuesa Pi 3, pero el controlador solo juego que tengo es oldie mando clásico de Wii; ¿Cómo puedo convertirlo a un dispositivo de juego USB regular?Después de algunas investigaciones,
Funtendo - un controlador retro multistick para tu PC

Funtendo - un controlador retro multistick para tu PC

Funtendo es un completamente autónomo retro gaming & controlador de sistema para tu PC.Es capaz de usar el mando original Nintendo , el N64 controlador y el controlador Clásico de Wii al mismo tiempo!Funtendo es USB accionado y también contiene una u
Primeros pasos con el ordenador de bolsillo Mini

Primeros pasos con el ordenador de bolsillo Mini

Alrededor de un mes y medio atrás, creé un proyecto llamado la Mini computadora de bolsillo y escribió un Instructable sobre cómo construirlo. Este Instructable tiene todo el proyecto un paso más allá ayudando a comenzar con su Mini computadora de bo
¿Construir tu propio mini computadora de bolsillo

¿Construir tu propio mini computadora de bolsillo

siempre quieren experimentar 70s y 80s computación sin toquetear hardware viejo chirriante y disquetes de 5,25?En este Instructable, te enseñaremos cómo construir y programar tu propio mini computadora de bolsillo.Explorar micro computación con una m
¿Cómo usar un Wiimote como Mouse de su computadora

¿Cómo usar un Wiimote como Mouse de su computadora

alguna vez se preguntó qué cosas interesantes se puede hacer con un Wiimote? Si es así, este es sin duda donde debe iniciar-como un ratón!Paso 1: Paso 1: materiales1. un Wiimote (por supuesto)2. WiiMotionPlus (realmente es construido en algunos nuevo
Cómo jugar backups de Wii desde un dispositivo usb con ningún modchip. ¿

Cómo jugar backups de Wii desde un dispositivo usb con ningún modchip. ¿

Cansado de mala quemaduras de DVD? ¿Wii laser murió hacia fuera en usted? ¿Quieres copiar juegos de Wii directamente desde tu Wii dvd al disco duro? Este instructable es perfecto para usted! Con este instructable, usted será capaz de jugar su favorit
Inalámbrica Wii Nunchuk para ratón USB Stick para PC, Mac y Tablet Video Juegos

Inalámbrica Wii Nunchuk para ratón USB Stick para PC, Mac y Tablet Video Juegos

Listo para sentir como el legendario "Bruce Lee" usando Wireless Wii nunchacos una diversión kung fu PC lucha stickman juego de video conocido como Un dedo muerte Punch (OFDP). ¿Qué tal jugar Jetpack Joyride en Facebook o en tu tableta Android?
Pulsera usb clásico

Pulsera usb clásico

Pulsera de cuero USB clásico.En este instructable voy a mostrarte, cómo hacer tu propia pulsera de unidad flash USB. Usar siempre tus recuerdos, vamos a hacerlo!Paso 1: Material y herramientas MATERIAL:Variación de tela (yo usé 0,5 mm)Cuero (yo usé 1
IPhone Learing mando a distancia Universal con Arduino

IPhone Learing mando a distancia Universal con Arduino

Hola y Bienvenidos a mi primer Instructable.No sé ustedes, pero nunca puedo encontrar el control remoto para mi TV. Siempre parece desaparecer cuando lo necesito y luego sólo aparece días más tarde como cuña dentro del sofá por uno de los niños. Una
NintenWii (o Wiitendo): Wii re-hecho para caso NES

NintenWii (o Wiitendo): Wii re-hecho para caso NES

en este Instructable, voy camino aunque mis pasos de totalmente nuevo trabajo mi Wii para caber dentro de un caso NES de la vieja escuela.Varias veces en este Instructable, te está haciendo referencia a la How-to: hacer un portátil de Wii página de B
Como hacer dispositivo USB (PIC18F)

Como hacer dispositivo USB (PIC18F)

voy a mostrar cómo a la protoboard una simple generic HID USB, creando el firmware PIC18F y finalmente crear la interfaz de Windows para el dispositivo que te permitirá controlar un LED de la PC y leer el estado de un botón del dispositivo.Desde la l
Softmod cualquier Wii (versión 1.0-4.3)

Softmod cualquier Wii (versión 1.0-4.3)

¿qué softmodding hacer un wii?Bien la respuesta a esa pregunta es... puedes jugar copias de seguridad de juegos si perdiste tus juegos originales... (Como hacer) Juegos N64, SNES y SEGA consola en tu wii! Con los emuladores correspondientes... y uste