著者: Frédéric 日付: To: guilde 題目: Re: Portage d'une appli (USB inside)
Le mercredi 9 novembre 2011, Frédéric a écrit :
> Des physiciens russes nous ont fourni une carte d'acquisition maison
> basée sur un FPGA, et dont la communication est assurée via un chip FTDI.
>
> [...]
Bon, j'ai un peu avancé, en utilisant la libusb. J'arrive à lire des choses
en mode bulk.
Mais je n'ai pas le résultat attendu. Je devrais recevoir beaucoup de
données (buffer tournant de 4096 valeurs), et je ne reçois que 2 valeurs à
chaque read.
Dans le programme windows, lors de l'initialisation de l'interface (au sens
usb, j'entend), ils programment un champ nommé MaximumTransfertSize à 4096,
justement.
Mais j'ai lu, et c'est confirmé par lsusb, qu'un transfert en mode bulk ne
peut balancer que 64 octets à la fois. La question est : est-ce que c'est
la librairie windows qui va attendre d'avoir reçu le nombre de valeurs
souhaitées, en lisant le device usb par paquets de 64 octets, ou bien
peut-on réellement programmer le MaxPacketSize (nom retourné par lsusb) à
plus de 64 ? Et se peut-il que s'il n'est pas bien programmé, je ne puisse
pas recevoir les données correctement ?