Re: Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?
- From: "rickman" <spamgoeshere4@xxxxxxxxx>
- Date: 18 Mar 2006 20:05:22 -0800
I am not clear on your requirements for reading the data once you
capture it. In one place you mention slow reading of the data by an
AVR but with the USB you talk like the data must be read at the full 25
MB/s rate.
If you need a high speed interface to a PC, you may need to either use
USB or PCI. I did a design once that captured data at up to 50 MSPS
with samples up to 8 bits wide on a PCI card. We used an FPGA, a four
bank SDRAM and a PCI interface chip. Data was buffered to make a 32
bit word which was written to memory at 33 MHz (the PCI rate). FIFO
buffers isolated the two clock rates and allowed transfers to SDRAM to
be bursted since you transfer data on every clock cycle only after some
setup. Once a bank was full, the writing moved to the next bank and
the first bank was read out through the PCI chip by the PC and written
to a RAID drive. This was pretty good for 10 years ago in a standard
PC running Windows2K.
The SDRAM controller was done in the same FPGA and refresh was not at
all hard to do. As someone else said, if you access all rows within
the refresh period, either 2, 4, 8 or 16 ms depending on the chips,
then you don't need to refresh it. Just read the SDRAM data sheet
carefully. A memory controller is not at all hard.
The size of memory that you need is not all that large. 256 MB is just
one module or maybe just two chips. If you were doing the software, I
think I could have the board designed in a couple of weeks ready for
layout and have the FPGA code done before the assembled boards were in
house. It really is not all that hard of a design.
I expect the memory module is a bad idea because the interface is very
high speed and hard to design to. They are pushing the limits of
commercial design and fabrication to get >400 MHz busses to work
reliably with multiple memory module types. It would be difficult to
meet all the SI issues with a custom board in a standard motherboard
memory slot I think.
Another interface you might consider is the ATA disk drive interface.
They run at speeds from 33 MB/s up to >=133 MB/s. Parallel ATA is
still very common and not hard to use at your speeds. Serial ATA is
available and offers much higher data rates with a very small cable. I
don't know much about how hard it is to design to. I don't know that
standard FPGAs will directly support SATA.
Martin Maurer wrote:
Hello,
i am in the need to capture around 10 seconds (ok, 5 to 8 seconds would also
be enough) with 25 MSamples / s. Each sample should be 4 to 8 digital lines.
It would be nice if i can use an external clock.
But how to do this ? The amount of data for 10s * 25 MSamples / s * 1 Byte =
250 MByte. So it is not a small amount !?!
So at the moment i have 3 ideas to solve this:
1) FPGA with SRAM: SRAM in this size is expensive.
2) FPGA with DRAM. I think i saw a page where a DRAM was connected to an
AVR. AVR can handle only static RAM. But i think i need an dram memory
controller for doing the refresh. Are there ready to use chips or programmed
CPLD's or FPGA solutions which can do this ? So i can put a second FPGA (or
even the same) to collect the data very fast and i read them out via PC in a
slow way.
3) I found digitial IO card with PCI interface. But usually they are using
io access, to the bandwidth is very limited (don't reach the 25 MByte/s).
Are there faster memory accessable IO card, which can transfer 25 MBytes/s
into pc memory ? I think i must forget the external clock, because PC is not
synchronitzed to external clock... Are there much faster ones ? E.g. with 50
MHz ?
4) Another new idea: Do you think it is possible to add a own build memory
module (DIMM), but instead of memory modules, add own circutry to external
world. I think then you can do some kind of memcpy from one module the real
main memory. Found a news article where such an idea was realized to connect
an FPGA to a PC and do crypt algorithms. But they used a modified linux,
because OS isn't allowed to use the memory area.
5) USB 2.0 (high speed) board, but i think also there it is very difficult
to reach / sample with 25 MByte/s...
What do you think about this ? Any other solutions ?
Regards,
Martin
.
- Follow-Ups:
- Re: Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?
- From: Hans-Bernhard Broeker
- Re: Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?
- References:
- Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?
- From: Martin Maurer
- Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?
- Prev by Date: Re: I2C Question
- Next by Date: Re: Communications controller?
- Previous by thread: Re: Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?
- Next by thread: Re: Capture 10 sec with 25 MSamples/s (4 - 8 Bits)... how to do ?
- Index(es):
Relevant Pages
|