I have a program on an 18F4550 with a 20 mhz oscillator that interfaces with a VB program via USB. I need to be able to monitor data at about 500Kbps. I'm using the computer to store the information as it comes in. When I use the computer in real time (not storing data but just viewing) it seems pretty quick. When I press the button to store the data, it seems to slow just a little bit. When I look at the data using Excel, I have roughly 45 measurements per second, which is about 455 short of what I need. I think the 18F4550 can achieve a 2mS measurement but I'm not 100% sure since I've never needed anything with this short of a timing cycle.

So my questions are:

1. Can the 18F4550 do this quick of a measurement?

2. Is there a list of instructions where it lists the amount of time (i.e. If then = 400nS)

3. Is there an easy way to find out where my issue is? (VB or PBP code)

4. Is there a relatively easy way to do data logging on a PIC? Would I need an external memory chip?