capture device using micros
What kind of trace depth did you have in mind (at a sustained capture rate)? ||Edit||, never mind, just read your post again, 256 bytes.
The following design gives an idea of the limitations of using a micro for real-time sampling. Using the fastest PIC clock rate available (40Mhz), it achieves a sampling rate of 1Mhz. The PIC uses 4 clocks per instruction cycle, so using no more than 10 instructions per input sample gives (25nS x 4 clks) x 10 inst => 1000 nS/sample.
**broken link removed**
Most instructions on the AVR execute in one clock cycle, but the maximum clock speed for most AVRs is limited to 8 or 16Mhz (the latest addition to the MegaAVR family, the ATmega88, can run at 20MHz).
http://www.atmel.com/dyn/products/product_card.asp?PN=ATmega168
The MegaAVR has enough onboard SRAM (1KB - 4KB) to be useful for this kind of application (the mid-range family has up to 512 bytes, @8/16Mhz). Assuming a similar approach to the one outlined in the PIC design note, you might be able to squeak out a 2Mhz sampling rate: 50nS x 10 inst = 500 nS.
Alternatively, I could use a FIFO to store the data and use the PIC or AVR to control and process the data after it is stored (at a lower speed).
Using the micro as a controller is a more practical idea, and will get you to 20Mhz. Of course, your trace depth depends on the FIFO depth. Deep FIFOs are expensive, a lot of designs on the web use counters and fast 32Kx8 or 256Kx16 SRAMs as a low cost alternative. Another option for very deep buffers is DRAM or SDRAM, but there are more issues to consider with these, like handling refresh and row boundries. Hope this helps. - Claude