Hay algunos pasos para esto antes de comenzar a ejecutar.
Debe asegurarse de que la placa de desarrollo que está utilizando pueda actuar como host USB. Si no, tendrás que elegir otra plataforma.
Entonces, veamos esto desde una vista aérea, ¿sabe exactamente cómo funciona el controlador? ¿Cómo se formatean los paquetes? ¿Cómo se interpreta entonces esa información? Recuerde que desea que esta placa de desarrollo, y posiblemente un sistema operativo, pueda interpretar y comprender estos comandos. El primer paso es que los entiendas; así que comencemos allí!
Usando Wirehark, puedes registrar el tráfico USB, esta puede ser una excelente manera de presentarte al mundo del USB. Así que primero descargaría wireshark y le daría un vistazo a esta página:
enlace
Aquí también hay un buen resumen sobre el controlador 360, use esto y lo que capture con wireshark para obtener una comprensión sólida
enlace
Entonces, si determina que la placa es capaz de alojar dispositivos USB, este es un buen lugar para comenzar (asumiendo que su placa de desarrollo está ejecutando algún tipo de linux):
enlace
Nuevamente, asumiendo que estás en Linux, si quieres escribir el controlador desde cero, este es el capítulo para ti:
enlace
Además, el Kernel ya contiene módulos de bibliotecas de joystick que puedes usar como plantilla o herramienta de aprendizaje, así que también echa un vistazo a estos.
Si no está utilizando Linux, deberá implementar esto en un entorno no autorizado, lo cual no es imposible, sino un poco más difícil. Si su placa no es compatible con USB como host, primero querrá obtener un controlador USB, la mayoría de estos se comunican a través de SPI / I2C, etc. Encontrará muchos aquí (www.mouser.com), elija algunos, lee las hojas de datos y tendrás una mejor idea de en qué te estás metiendo.
enlace
También, como referencia, aquí hay un buen libro sobre la implementación de USB:
enlace