patroclus said:
"3) this sample is stored in a FIFO (large enough to handle data flow with software & EPP port) "
Which FIFO could I use??
Why not sent it directly from buffer to USB??
The problem is that I don't know if EPP supports that rate, and I don't know how to use USB,.. (I know very well how to control paralel port).
Well, you're going to have to do some math on th etransfer rates.
You see, the main problem I am thinking about is on the software end. I mean ultimately, you will be displaying your data somehow right? Well, if your data rates are too sufficiently fast, your software may not be able to "retrieve" the data in time and you will end up losing data.. This is irregardless of how fast the hardware is (be it USB, EPP etc..) If you are sampling at an 8MHz rate, you are likely going to have a problem getting software drivers to collect data at that rate..
You need to look into the software end of how fast you can grab data from an EPP or usb. Generally though, I would forget about relying on software to be fast enough.. (if it is windows you can forget it!, too much other crap is happening in the background and you generally dont get much control over that).. I'm not an avid programmer so you'll have to check into that.
Simply put, you will only beable to handle a continuous stream of data at a rate that reflects the slowest part of the chain.. think about it..
So how does the rest of the real world devices avoid slow software? They "buffer" the data.. meaning they gather it fast and hand it out at a rate that is compatible with the slower part of the system (like software device driver etc..) But the potential for overflowing the buffer exists so you will have to "size" your buffer appropriately based on sample rate, data size and delivery rate and account for some other interfereing delays that might be possible...
It will help you understand this issue if you draw out a diagram on how you plan to deliver your data to the screen. Include every piece of your system that will be involved and most importantly, include the maximum amount of time each part will need... you will then see an upper limit placed on your sample rate and this restriction can only be alleviated by buffering your data..
I mentioned a FIFO because that acts like a hardware buffer and you can time stamp the data as well.. it makes too much sense to use it.
Do you see how your ultimate problem may not be the rate of your hardware pieces but rather the rate of your slow software pieces (guaranteed if you are using Windows)???
Many companies sell fifo's and they even call them fifo's.. they are essentially volatile ram. you could use general purpose ram as well but the interfaces are more complicated so I suggested a fifo for you with simpler controls that can meet your need.