5-Channel ADC 2MSPS to USB

Discussion in 'Embedded Systems and Microcontrollers' started by AWitt, May 13, 2016.

  1. AWitt

    Thread Starter New Member

    May 11, 2016
    14
    0
    hi engineers and tinkers,

    I am looking for a 5 Channel ADC with 2 MSPS (not strictly, can also be more) that I can connect to my computer via USB to process sensor signals in real time.
    The input voltage range for each channel should be around +/- 10 Volts.
    Now I assume USB 2.0 has a maximum usable data rate of ~ 40 MB/s = 320 Mbit/s. So in theory I can easily have a resolution of 16 bits then but I am really not sure what practical problems I could encounter.

    Another question is, if I can programm the ADC such that it only samples data and transfers it if there is a signal present on one certain and fixed channel (e.g. Channel 1). There I would have to set a threshold for channel 1 and once it is exceeded the sampling on all channels and the data transmission occurs. After a certain time, say 0.5 ms, the ADC should wait for another signal on channel 1 and stop the processing.

    Do you know if there is a simple ADC board which I can buy for this application?

    Gracias!
     
  2. MrChips

    Moderator

    Oct 2, 2009
    12,437
    3,360
    There is no ADC that interfaces to USB. The data output from an ADC and the USB protocol are two completely different beasts.
    You will need a processor to format the ADC data for transmission via USB. The protocol you choose for USB transmission is another matter.

    Your simplest solution would be to get a myDAQ system from National Instruments.

    Edit: Sorry, myDAQ only does 2 channels to a max of 200ksps.
     
  3. AWitt

    Thread Starter New Member

    May 11, 2016
    14
    0
    Thank you for writing.
    Yes I am looking for an ADC board which has all ICs already in place because I do not know how to design a PCB with MPU, ADC, Memory, etc. from scratch. Also how big of a project that'd be.
     
  4. MrChips

    Moderator

    Oct 2, 2009
    12,437
    3,360
    An off-the-shelf data acquisition system with those requirements does not come cheap.You may want to revise your specifications downwards.

    For example, NI USB-6361 with 16-channel 1MS/s comes in around US$2000.

    http://sine.ni.com/nips/cds/view/p/lang/en/nid/209073#
     
  5. AWitt

    Thread Starter New Member

    May 11, 2016
    14
    0

    Wow, I thought I could get that much cheaper. What component is blowing up the price so much? If I buy a standard USB sound card with 192 kHz ADC and multiple inputs that can get as cheap as 30 USD. Basically I only need about 10 times the sampling rate of such device. The frequency range of my input signals is within the audio spectrum so the signal conditioning of a sound card shouldn't be an issue aswell.
     
  6. nsaspook

    AAC Fanatic!

    Aug 27, 2009
    2,907
    2,166
    This is about $38 if you buy 250 or more. http://www.mouser.com/ds/2/405/ads8412-440636.pdf

    Consumer grade technologies and economics of scale. The NI type products are precision devices not tuned to one specific application like audio. Maybe a mass produced USB scope or data-logger product will work as a frontend.
     
    Last edited: May 14, 2016
  7. MrChips

    Moderator

    Oct 2, 2009
    12,437
    3,360
    nsaspook is correct. There is no single component that will drive the price so high. The price goes up with sampling rate. As you push above 1MS/s the price is going to grow exponentially. What you are paying for is R&D, system design and engineering. National Instruments is the creator of Labview. What you get is specialty engineering with the ability to interface with well established functional software. NI might not sell lots of hardware. They have to play the price-versus-volume game.

    To get your price down you have to downgrade your sampling rate. For audio signals you need only 44.1kHz.

    If you want consumer, hobbyist, low cost digitizers, search ebay for 8-channel ADC. They go for under US$20.
    No software support - "Some assembly required".
     
  8. shteii01

    AAC Fanatic!

    Feb 19, 2010
    3,387
    497
    Yeah, a little stroll down to digi-key did not show any evaluation boards or individual chips that can do what you are asking.
    One interesting thing is that since you want +/-10V input signal, before you feed this signal to ADC, you can shift it up so that instead you will have 0 to 20V signal, this might make it easier to find something. You will likely still need to build a custom circuit, but at least you will be spending 500 USD instead of 2000 USD.
     
  9. NorthGuy

    Active Member

    Jun 28, 2014
    603
    121
  10. shteii01

    AAC Fanatic!

    Feb 19, 2010
    3,387
    497
  11. hugeone

    New Member

    May 15, 2016
    7
    1
    If you can program ARM processors buy Discovery board from ST. Three ADCs 2+MSPS each 18 channels. Built in full speed usb interface & USB Vcom interface. Easy to program, high performance (esp F4 or F7 series). Price about 20GBP.
     
  12. NorthGuy

    Active Member

    Jun 28, 2014
    603
    121
    The input range doesn't matter. When you condition your signal, you map it to whatever range your ADC requires.
     
  13. shteii01

    AAC Fanatic!

    Feb 19, 2010
    3,387
    497
    Ah, so you want to shrink the signal and loose the precision. Yes, it definitely something OP can choose to do. They have not chosen yet.
     
  14. hugeone

    New Member

    May 15, 2016
    7
    1
    Changing signal levels to the ADC requirements does not change the precision & resolution.
     
  15. AWitt

    Thread Starter New Member

    May 11, 2016
    14
    0
    thank you for the answers so far, I am somewhat confused now though... the Discovery board ST F4 for example only costs around 30 USD despite the high sampling rate and various other features. That is a little bit less than the aforementioned 500 and 2000 USD.

    The straight forward solution seems to be programming such board accordingly although I read the "simple ADC use" is quite complex.
    Can I expect to get a solid grasp on that within a week as a decent C coder?
     
  16. MrChips

    Moderator

    Oct 2, 2009
    12,437
    3,360
    I can do it in a day but that is only because I work with STM32F4 daily.
    For someone now starting out with ST Discovery you would need a lot of help and code examples to get it going in a week.
    Besides, you still need to build some front-end amplifiers to meet your ±10V input specification.
    Then you still have to figure out your serial/USB protocol and what you are going to do with the data at the PC receiving end.
     
  17. NorthGuy

    Active Member

    Jun 28, 2014
    603
    121
    Since it has only 3 ADCs and you need 5, you'll need two of them. Some effort will come to interconnection unless you want 2 separate USB devices.

    Also, with 6 samples coming every us, you'll get only 28 processor clocks (if at 168MHz), which you must utilize to move your sample to USB. Some of these 28 clocks will have to be used for other things you're doing. You will probably need to use DMA to free the processor somehow.

    USB is not a slouch neither. You will have to pack your 6 samples plus 4 samples received from the other board into packets and pass them to the USB controller in a timely fashion not to cause any delays with USB. You probably will need to inter-slice samples and also add some overhead so that you could parse this on PC. You're looking at 10 x 12 = 120 bits = 15 bytes + overhead = 16 bytes every us. This is 10 clocks per byte minus whatever you have already expended for handling ADC and receiving samples from the other board.

    I would classify it as hard work, which might be possible if you're a good programmer and take on it with courage and dedication.
     
  18. hugeone

    New Member

    May 15, 2016
    7
    1
    Only DMA. you can't poll it. It is actually quite straightforward. I suggest to program it on bare registers instead of using HAL libraries, as they have to huge overhead.

    @NorthGuy it is not 15 bytes but 20. 12 bit sample occupy 2 bytes 2 bytes will be transferred by DMA. There is no need to pack them.
     
    Last edited: May 15, 2016
  19. hugeone

    New Member

    May 15, 2016
    7
    1
    I work on very similar project -Nucleo board oscilloscope and function generator
    It is in an early developing stage but you can see first results here:

    [​IMG]
     
  20. NorthGuy

    Active Member

    Jun 28, 2014
    603
    121
    You're probably right. It's better to avoid packing and just transfer 20 bytes instead of 15.

    BTW: Very nice project! How many channels do you have?
     
Loading...