Hey everyone,
I have a challenging project ahead for a large university and I was wondering if someone could give some advice on what the best way to go about this is...
Essentially what we need done is to read in about 32 ->64 (or more, eventually, if possible) analog samples every millisecond - preferably about 12-bit accuracy or better (my advisor said that, I'm not convinced that 8 isn't fine too, but we'll see). Storing about 1/4 -> 1/2 a second's worth of data to run algorithms on and look for patterns. Also, it'd be nice (but not vital) to be able to transmit all that information to a computer, which would probably require USB (alternately, we could probably hook up the connection to some hardware in parallel, so the data doesn't *need* to be fed through the controller).
Issue #1- So, 64 analog samples/millisec - coming from 64 different probes - any advice on some kind of an 'analog multiplexer'? Can such a mux switch fast enough to support that kind of data reading? I see ADCs tend to get to 100-200 ksbs, so that part should be alright. What's the best way to go about being able to read all this data from different sources?
Issue #2- Second, enough memory to hold 250 or 500 sets of data, that's also fast enough to keep up with this rate of reading/writing. Worst case: 16 bits
-> 2 bytes * 64 samples * 500 ms = 64 k of RAM just for this. Can get down to 32 K or sure with 1 byte data, or 250 ms, or some reasonable combination.
Issue #3- Preferable, but optional: To transmit all that data to a comp we're talking 128 K/sec = 1 mbps - so we'd need USB, probably USB 2.0 - what does USB 1.1 get realistically?
Issue #4- Would I need a separate interface through the normal I/O pins be able to send a signal back to those original location (to stimulate the tissue there). Is there any other way to do that?
So... Any advice on a chip that can handle all of that? Not to mention that it still needs to be fast enough to do computation on top of it, with all the data in memory. Would it be wise to have dedicated ADC chip that I've seen to do the gathering and a separate ucontroller for the rest? Cost is a minimal concern as this is for a large research university.
Thanks guys!
-Fred