2016-03-29 2 views
0

J'essaie d'envoyer des transferts isochrones au microcontrôleur sur un Arduino Due en utilisant la bibliothèque Libusb 1.0 et le pilote libusk installé en utilisant zadig_2.2.Erreur Libusb non prise en charge

Les transferts en masse fonctionnent parfaitement, mais lorsque j'essaie de lancer un transfert isochrone, j'obtiens le code d'erreur "erreur non prise en charge". De la façon dont je le comprends, libusb devrait supporter les transferts isochrones pour Windows maintenant. J'utilise Visual Studio 2015.

Des idées?

Répondre

1

Il peut y avoir deux problèmes du côté Arduino. Vous devez configurer:

  1. Configuration du point de terminaison.
  2. configuration descripteur USB (point final doit être configuré comme un type de transfert isochrone)

Par exemple:

  ===>Endpoint Descriptor<=== // <-------- This is the one I'm using. 
bLength:       0x07 
bDescriptorType:     0x05 
bEndpointAddress:     0x81 -> Direction: IN - EndpointID: 1 
bmAttributes:      0x01 -> Isochronous Transfer Type, Synchronization Type = No Synchronization, Usage Type = Data Endpoint 
wMaxPacketSize:     0x0040 = 1 transactions per microframe, 0x40 max bytes 
bInterval:       0x01 

      ===>Endpoint Descriptor<=== 
bLength:       0x07 
bDescriptorType:     0x05 
bEndpointAddress:     0x02 -> Direction: OUT - EndpointID: 2 
bmAttributes:      0x01 -> Isochronous Transfer Type, Synchronization Type = No Synchronization, Usage Type = Data Endpoint 
wMaxPacketSize:     0x0040 = 1 transactions per microframe, 0x40 max bytes 
bInterval:       0x01