Tell me about your dream neuro-data-acq system

Joseph J. Kubicky jkubicky at cco.caltech.edu
Wed Dec 1 03:31:32 EST 1993


Hello,

I've been working off-and-on for the past couple of years putting
together a data acquisition system for a neurobio group here.  Based
on the kinds of things that get done in our lab (mainly single- or 
multi-single-unit (say up to 15 channels) cerebellar and olfactory
cortex recording of both spikes and field potentials), I've been
piecing a system together.  However, I'd like to take a broader view.

Basically, the current hardware is scaleable in increments of four
channels.  Each channel is a 10-MIPS AD2105 Digital Signal Processor
(DSP) with a fast (50KHz) 12-bit A/D converter and a programmable
amplifier and anti-aliasing filter (I've also got a switchable
60Hz notch filter on some channels).  Anyway, there's no off-chip
memory, so that leaves 1.5Kwords of on-chip program (1K) and data (0.5K)
memory.  Each group of four 2105's is associated with an ADSP-2101
(16-MIPS, 32Kwords mem).  They communicate over a multiplexed 2.5MBit
serial link.  The 2101 is in a card in a PC and talks to the PC bus
through some FIFOs.  I can add more channels (to a point) by adding more
2101/4x2105 board sets.  Once the PC bus is saturated I'll do something
else.  Anyway, that's the basics.  (I have the hardware for a four-channel
setup built and working.)

So far, what I'm thinking of doing is pretty simple.  2105s can either
(i) pass through 'raw' waveform data, (ii) hunt for spikes and pass
only the waveform data for a spike, (iii) hunt for spikes and pass
through only some parameters or (iv) some combination of these.  Of
course, 2105s can also do some digital filtering. 

2101s will initially do very little - basically just pass-through
data to the PC.  Later, they may do some processing of stereotrode
or tetrode data (like the X-Y stuff in Brainwave) and maybe some
cluster-cutting stuff.

System synchronization is obviously a concearn.  To address this,
I clock all 2105's with the same 10MHz clock.  2101s run async. at
16Mhz.  Additionally, the master 10Mhz is divided down to produce a 
50% 500Hz clock that is visible to everyone (the 2105s and the 2101s)
which is used for start-up, shut-down, etc. (everyone will see this
edge to within 100ns of everyone else).  

I'm writing software under DOS (for test) and Windows (for real).
I've spent a bunch of time on a Windows VxD to handle direct disk-writes
via the '32-Bit Disk Access' routines (BlockDev, etc.).  This almost
works now.  The biggest problem right now is making progress on the
Windows 'front-end' - this is what I'm looking for some ideas for.

I realize this is pretty sketchy information, but I just thought I'd
put something out and see if anyone had anything to say.  I 
guess my biggest problem is that I've only been exposed to a very small
number of different types of experiments and it's hard to anticipate
what might be appropriate to a different setup.  Even information on
your current setup and your current data-acq system (along with any
major complaints) would probably be helpful.

Thanks,
Jay Kubicky
jkubicky at cco.caltech.edu



More information about the Neur-sci mailing list