Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

ADC at 10MSPS (or more) and SD Card

Status
Not open for further replies.

abicash

Member
Hello

I intend to design an Analog interface which will read data (8-bit would do)
at 10MSPS or more and store this data to a SD Card or any other storage device > 16 GB in real time.

Is this possible?

If so, i would appreciate any pointers or advice any one has to offer.

Eagerly awaiting replies :)
 
the fastest data collection/storage device I've ever worked with was a flight data recorder and it only stored at max capacity of 1000 bytes per second.

The problem with real time is the data write time length of your EEPROM devices, your SD card. you would have to write it to ram and then transfer to SD card, so even though your ram storage would be real time, the write to the card would not.

If you truely need real time on an SD card storage system you would have to have 8 SD cards and fill a page on #1, set it to write, then fill a page on #2, start it to write... etc. 8 is only a guess, as you would need however many determined by the write length of the actual SD card. Also, if this SD card needs to be windows readable, you have another problem as it needs to be formatted like a harddrive, with boot record and directories...
 
There are devices and systems that can take data streams at RF speeds, not something you can make with a SD card. Most of the systems use very fast raid drives designed for streaming modes (most consumer drives recalibrate during operation).

https://www.ni.com/streaming/rf.htm
 
For an 8-bit ADC @ 10MSPS, that's of course 80 million/sec (76.3MB/sec) as flash writes in blocks, the chips usually contain a buffer you can fill up and 'block write' but not at that speed. You might be better off writing to ram, probably DRAM/SDRAM at that speed, and would require a bit of logic form a CPLD, or FPGA to set it up, don't think many microcontrollers would be up to that job. You could then dump that data onto the SD card after the ram is full.

As for 'real time', if this is for an oscilloscope, you could do what digital scopes do and thats take a burst of samples, at full sampling frequency, say 1024, into ram. Then stop and stream this to a PC, or, if you want, your card. That of course isn't going to be a continuous measurement, but its more practical, all depends on your application and what you wish to measure.
 
ADC at 10MSPS (or more) and SD Card
You need fast memory. Look at these FIFO memories.
AL442b is 8x3 meg. 50mhz
AL440b is 8x4 meg. 40 or 80mhz.
AL460a is 16x128 meg. 75 or 150mhz.
You can input data at one speed and output the data at another speed.

The data sheets are hard to find. If you can't find them I have them on another computer.
 
Cypress semi has plenty of FIFO's, 16-18bits wide with 12/20/40/70ns read/write speed. https://www.cypress.com/?id=77

I believe these are SRAM based and so have limited capacity. They were often used in digital storage scopes before FPGA's really took hold (allowing the FPGA to handle the FIFO, but using DRAM like DDR2 for huuuuge sample memory).

Again, all this is for burst reading, you'll be limited in how many samples you can take before you have to empty out the ram/FIFO. 16GB full real time would of course require 16GB of ram, or 8GB if you use a FIFO and write to your card as the same time as reading (but at half the speed).
 
I believe that's the maximum transfer speed of the SATA standard, the actual maximum read/write speed depends on the drive used, be it SSD (solid state flash, which has built in ram anyway) or a magnetic drive. But either sohuld be able to write the ammount of data the OP wants to transfer, pity its not as portable as an SD card. Good call on using HD's though, whilst I've never seen the SATA standard (it'll be licensed I think) the old ATA-standard might cut :)

The transfer rates of most cards can be found here:

https://en.wikipedia.org/wiki/Comparison_of_memory_cards#Technical_details

Seems many fall short of the 10 megabytes/sec required.
 
Blueteeth, You bring up a good point. Many of the storage devices need time to do functions. Like hard drives need time to step the head. New hard drives have RAM buffers that help this problem.

10 megabytes/sec is not that fast. 10 megabytes/sec continuously with no break is harder. (that is what they make FIFOs for) Most storage devices have a way to hold back the computer if the data is too fast. (wait line) Here there is no waiting. I would choose a storage device of 20mhz and probably use a FIFO. If not you may loose pieces of data.

Some of the storage options need commands inserted in the data stream. example: WRITE SECTOR 0 (1024 data), WRITE SECTOR 1 (1024 data), WRITE SECTOR 2 (1024 data), WRITE SECTOR 3 (1024 data), etc. You need a FPGA that can buffer one block of data and add the commands and keep track of addressing. OR you need to choose a type of storage that can be filled with out commands and addressing.
 
I would have a re-think WHY you need to store 10Mbit/sec and if it can be reduced, data-compressed on the fly, or some other option. Good engineering is about solving prolems at the source or rethinking specs or type of operation etc, not about finding some super duper hardware to just make the problem go away. ;)
 
Status
Not open for further replies.

Latest threads

Back
Top