Escribiendo controladores de Joystick para ARM Cortex [cerrado]

0

Necesito escribir un controlador para el controlador de joystick Xbox360, usando su módulo y todo. La idea no es solo tomar el código, estoy realmente interesado en la teoría detrás de esto. ¿Alguien tiene algún tutorial o libros que expliquen algo al respecto?

Tengo la intención de usar una placa de desarrollo Discovery, con un Cortex M3 o un Cortex M4 ST Arm.

    
pregunta user2977500

1 respuesta

1

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

    
respondido por el Bubo

Lea otras preguntas en las etiquetas