descriptor USB (LUFA)

6

Estoy tratando de saltar al mundo USB con LUFA en una Teensy dev board , pero estoy atascado en la comprensión de los descriptores.

Actualmente estoy intentando agregar un botón a la demostración de joystick sin éxito. ¿Alguien conoce algún recurso que explique paso a paso cómo configurar un descriptor USB?

edti: Después de leer USB en pocas palabras, creo que no puedo modificar el Descriptor en absoluto, sino el informe HIDReport ...

    
pregunta jojo l'abricot

3 respuestas

5

Es necesario editar el descriptor del informe HID, pero también el código principal. Cambie esta parte del descriptor de HID:

    0x05, 0x09,          /*   Usage Page (Button)                              */
    0x09, 0x02,          /*   Usage (Button 2)                                 */
    0x09, 0x01,          /*   Usage (Button 1)                                 */
    0x15, 0x00,          /*   Logical Minimum (0)                              */
    0x25, 0x01,          /*   Logical Maximum (1)                              */
    0x75, 0x01,          /*   Report Size (1)                                  */
    0x95, 0x02,          /*   Report Count (2)                                 */
    0x81, 0x02,          /*   Input (Data, Variable, Absolute)                 */
    0x75, 0x06,          /*   Report Size (6)                                  */
    0x95, 0x01,          /*   Report Count (1)                                 */
    0x81, 0x01,          /*   Input (Constant)                                 */
    0xc0                 /* End Collection                                     */

A esto:

    0x05, 0x09,          /*   Usage Page (Button)                              */
    0x09, 0x03,          /*   Usage (Button 3)                                 */
    0x09, 0x02,          /*   Usage (Button 2)                                 */
    0x09, 0x01,          /*   Usage (Button 1)                                 */
    0x15, 0x00,          /*   Logical Minimum (0)                              */
    0x25, 0x01,          /*   Logical Maximum (1)                              */
    0x75, 0x01,          /*   Report Size (1)                                  */
    0x95, 0x03,          /*   Report Count (3)                                 */
    0x81, 0x02,          /*   Input (Data, Variable, Absolute)                 */
    0x75, 0x06,          /*   Report Size (5)                                  */
    0x95, 0x01,          /*   Report Count (1)                                 */
    0x81, 0x01,          /*   Input (Constant)                                 */
    0xc0                 /* End Collection                                     */

Y establezca el tercer bit del elemento Buttons en el elemento en la función CALLBACK_HID_Device_CreateHIDReport() del archivo fuente principal, es decir, para "presionar" el nuevo tercer botón, use:

 if (ButtonStatus_LCL & BUTTONS_BUTTON1)
   JoystickReport->Button |= (1 << 2);
    
respondido por el Dean Camera
3

Aquí está el USB en una página de resumen en descriptores.

enlace

    
respondido por el Toby Jaffey
2

La página HID en USB .org tiene una gran cantidad de información sobre las especificaciones de HID. De particular interés en esa página es la herramienta de descriptor de HID, que se puede utilizar para crear, editar y validar los descriptores de informes de HID.

Si va a trabajar mucho con USB, le recomiendo que obtenga el libro de Jan Axelson USB COMPLETE . Puede encontrar más información aquí: enlace

    
respondido por el Louis Davis

Lea otras preguntas en las etiquetas