Using libusb-1.0.9 and cyusb_linux_1.0.4, I've written software that is controlling the RF output frequency of a EVAL-ADF4350-EB2Z Rev B evaluation board. It works fine as long as I wait at least 50 milliseconds between calls to cyusb_control_transfer(); otherwise, some of the calls have no effect on the ADF4350. The more I decrease the period between calls below 50 msec., the greater the probability that frequency changes will be missed. There also can be a predictable point in execution time at which the losses begin to appear, depending on how high the frequency of USB requests is. The return value from cyusb_control_transfer() is always 5, the number of bytes that should have been transmitted. No messages are logged by Linux to dmesg. As these are synchronous USB output requests, I shouldn't be overflowing any buffers anywhere, so I'm at a loss to understand the cause of this problem. I've been unable to get the ADF435x PC software to sweep at even close to this rate, so it can't provide independent verification of the performance of the evaluation board.
Does anyone have any ideas?