I have a project using the BF527 and am running into problems with the ADI supplied USB driver code. The driver basically "works" and but has some big problems. I was wondering if somebody out there had run into these same problems and had an updated verson of the driver they were willing to share.
The drive problems are listed below.
#1. There are some edge cases where it does busy loops in an interrupt handler while waiting for a USB packet from the PC. This means everything else in my app is shutdown. I've seen interrupt times of 20 to 50ms. This happens when the size of the buffer to be transmitted is not an intergral multiple of the max packet size for the endpoint.
#2 Control transfer processing has a similar problem to #1. Most of the the control transfer logic is handled using blocking IO right in the interrupt handler. This is ugly but less of a problem because control transfers don't take place during normal operaiton of my app.
#3 It provides no mechanism to terminate a read or write requests. Once I have queued up a buffer for transmit or receive over an endpoint there is not way to terminate it.
By board is a USB peripheral device. I'm using the VisualDSP and the VDK. I'm only using bulk mode transfers.
I did not discover these problems until I was well into my development so it would be difficult at this point to switch to commericial USB stack (jungo or something). I'm starting to try fix the driver myself but its a big job.