You need to go back and read all my previous posts.
On the 3001 there is only 16K words of buffer available… on top of that, the FPGA FIFO cannot be attached to the Cypress FIFO. For instance if you ask for more than a 4K read, there is no flow control to the FPGA FIFO, so that the FPGA FIFO can say it does not have anything available. Your routines just return the 4K+ requested reads, and will fill the end of the transmission with whatever is sitting on the FPGA FIFO Ouput, with no indication that the data was not available. In fact as I recall it would do this even for short reads, if there is no data. This is where you guys left the hardware, opting for making the 3010 instead of fixing this nagging problem.
What I have had to do is to add my own flow control around the FIFO’s, using wire in and wire outs, and FPGA data counters, so that I do not request more data than is actually there. Additionally since you guys choose to use the lowest priority data transfer mode, these counts take “forever” to transfer back and forth to the PC. (It would be thoughtfull to provide high priority “control” packets for transfers of this type).
So between the use of lowest priority bulk packets for the data which can be interrupted by anything, including USB mouse, USB Keyboard, USB disk, USB etc (there are a lot of them these days) (also note that the ISOCHRONOUS packet mode would be suitable for data that can be a little lossy, and I would sure like the option) and the incomplete FIFO implementation…
I cannot achieve reliable sustained transfers of over 128KB in length and 1.6MB/s. And try telling a customer they can’t use USB2 cause it will mess up the data transfer…
And that’s just the begining of the story. I’ve been working it for sometime, and the ONLY solution you have ever offered me, is BUY MORE MEMORY. Which would work, except that when you designed the 3010, you #&%#! CHANGED THE CONNECTORS, so I would have to redesign all my boards AND pay you another $200 per board. The other alternative, an add-on memory board, requires an entire J2 or J3 row of connectors, which also will not work for me, since my board designers did not pay attention to my directions to leave that avenue open…
So I’m stuck, and to top it all off, there is that nasty little issue of the Device Driver going away without notification! Welcome to the BSOD! When’s that one going to be fixed?
You know, I wish you guys would just quit dancing around like a bunch of kids, and fix these very real problems, that you know all about, before you do anything else. And don’t bother to reply to this with some hogwash, we’ve been there before. Just make a commitment to fix the problems… and actually get it done. It will do you well in the long term. I want to see the real 22 MB/sec that Cypress can produce…
Bill