Is your data rate 500 * 500 bytes/second or what? You're mentioning 200Hz lately - perpaps that's the data rate of the 500-byte frames.
This chip is capable of doing this if you program it properly.
As stated by JimDon, this chip supports a "Full Speed" USB interface, and not a "High Speed" one. The difference is "Full" has a clock rate of 10MBits/sec and "High" is 480MBits/sec. If you really need "High" then it takes a far more capable chip.
We're using an MCF5329, which is a more powerful CPU. It has two USB controllers in it, and the "OTG" one can support "High Speed" with an external transceiver chip. We're using the other one in "Full Speed' and can easily get over 800 kbytes/second reading a USB Memory Stick.
10 MBits/second divided by 8 bits/byte is 1.2MBytes/sec and not 1.5. Thereis a huge overhead as stated, so the maximum "user data rate" is about 840k.
Like any communications protocol, you can't send the next byte/frame/whatever until the previous frame has been sent. I don't know what software you're using, or what interface it has, but there's either something you can poll to find out when a packet has been sent, or you may register a "callback function" that gets called from an interrupt.
Tom "A Random Poster"