Commonly used high speed 16 bit ADC IC's

Go To Last Post
34 posts / 0 new
Author
Message
#1
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Hi Guys,

What are some commonly used (tested with AVR's) high speed ADC IC's that you guys have used in your project?

I was looking for something along the following lines:
1. 16 bit
2. Max sampling frequency: >=2 MSPS @ 16 bit
3. Able to handle positive and negative voltages
4. SPI interface.
5. 5V/3.3V operation.
6. Differential inputs (not needed but would be better)

Xmega is not an option.

I checked the analog website and found the AD7298 which looks good but is 12 bit.

Side question: Why is 12 bit so popular? Is it the ease of design?
Thanks.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Probably because many MCUs already have 10-bit ADCs, and ADCs with more than 12 bits aren't much in demand, and are expensive to make.

Leon Heller G1HSM

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

How are you going to handle two bytes per sample at greater than 2MHz sample rate with SPI?

With an AVR, the fastest SPI clock is F_CPU/2. So, with 16MHz F_CPU,. you have max 8MHz SPI clock. that makes 1us per byte, 2us for 2 bytes, not counting logical decisions and storage in memory. So, even 500KSamples/sec is pretty optimistic.

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Good point Jim.

I was thinking of storing the captured samples in RAM so it won't be real time. Of course I run into the problem of the RAM filling up but I can synchronize the empty_ram() function with the collect_ram_samples() function in the AVR.
So based on this, which ADC comes to mind?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I think requirement #3 reduces the selection significantly. #2 probably too, combined with #4 even less. You could consider a parallel interface, which relaxes the point Jim raised significantly.

I don't think getting all of the 16 bit you paid for is easy. Without very careful design you could easily end up with a 10 bit converter.

Maybe something like the LTC2202 is a possible candidate? Are you prepared to fork out the $60?

What is the application?

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

I was thinking of storing the captured samples in RAM

In what AVR? I think 16K SRAM in the 1284 is the maximum. At 2us/sample that will be eaten up in about 32ms - not a huge sample time is it? Maybe consider an AVR with an extmem interface to which you can attach banked SRAM or look at using Xmega (not sure why you say it's not an option?)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Application is sort of like a spectrum analyzer to capture and analyze signals. Right now I am trying to determine what would be my limitations of input frequencies and levels. Also I want to keep the cost as low as possible (preferable < $50 if possible) as it is a hobby circuit. So ADC should be < $5 if possible.

Of course I am going to design this system by the book (antialiasing filter, windowing, etc.) I know there are numerous examples and it seems like I am reinventing the wheel but I want to go through this so I learn.

Maybe I can live without the positive,negative voltage requirement and use a level shifter op amp instead.

I like the parallel concept idea. I saw the MAX135 but not sure if maxim sells onsie-toosies. Will try to get samples. Also I think I will settle for 12 bits/10 bits.

Cliff,
Xmega is not option because a) I will have to go through the learning curve which will take time and b) The errata list scares me. :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

So if you are building a frequency analyzer, lets see how many bits are useful... a 10 bit converter with input biased to halfway is really a +-9 bit converter, so you get 54 dB signal to noise ratio (6 db per bit). Thats almost 60db... one part in 1000... 0.1%... so if you had a full scale sine wave at some sort of low frequency you could see a 3rd harmonic that was 50 something db down... .1% distortion or so. Good enough? Going to 12 bits gets you another 12db s/n.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

My experience of sample buffering devices (scope, logic analyser, spectrum analyser) is that you NEVER have enough samples. I'd do this with an ARM and stick something like 64MB of DRAM on it. 4/8/16KiB in an AVR will not cut the mustard for anyone.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I'd do with an FPGA with hardware assisted FFT. While at it I'd also add an LCD controller and a softcore processor to handle user interfacing.

This is how a low-budget DSO from a make I cannot recall right (Rigol I think) now works. I know it's hacked too and open source alternative software is available.

You could look into using an audio codec. Those are much, much cheaper and usually have an I2S interface which is supported on some NXP LPCs and maybe other cheap ARM derivatives. I believe audio codec's don't require much absolute DC precision and as such can be made much cheaper; production volumes help too.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

2. Max sampling frequency: >=2 MSPS @ 16 bit

Quote:

How are you going to handle two bytes per sample at greater than 2MHz sample rate with SPI?

Here we go again.. how are you going to get 4MB/sec into an AVR and get it stored? Much less do something with it.

4 bytes each microsecond. 4kB per millisecond. So if you have a 4kB buffer you can sample for...a millisecond.

Lee

You can put lipstick on a pig, but it is still a pig.

I've never met a pig I didn't like, as long as you have some salt and pepper.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Of course if you develop on an Xplain board you get the Xmega, its two ADCs, and two external memory devices already attached, as well as the other stuff. Get your design working and you can always spin off your own PCB.

JC

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

DocJC wrote:
Of course if you develop on an Xplain board you get the Xmega, its two ADCs, and two external memory devices already attached, as well as the other stuff.

Like DMA... which may handle the load of getting it out some other peripheral or external ram.

However, I think you're fighting a losing battle with an AVR with your application.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:
So if you are building a frequency analyzer, lets see how many bits are useful... a 10 bit converter with input biased to halfway is really a +-9 bit converter, so you get 54 dB signal to noise ratio (6 db per bit).

Whether you call "10 bits" 9 bits plus sign or 10 bits unipolar, you still have 10 bits of precision which yields a 60db s/n and 12 bits gets you 72db.

Tom Pappano
Tulsa, Oklahoma

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Agree with Tom on this one! Here, "ground" is no different than a bias point at Vref/2 on an ADC with an input span of 0 to Vref.

Jim

 

Until Black Lives Matter, we do not have "All Lives Matter"!

 

 

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

You guys have pointed this out to me before, but for some reason it doesnt sink in. I guess my 'mental model' treats the 0volts region in the center as the 1st bit and the full scale volts is the 9th bit, thus 9 bits to 1 bit ratio? We arent comparing the ratio of positive full scale volts to negative full scale volts, which would use the full 10bits.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

TI has two of these eval boards for around $200. This one have 4 ADC channels and a color graphic display with touch screen and software support. This might be a neat board to do your spectrum project on.

http://focus.ti.com/docs/toolsw/folders/print/mdl-idm28.html

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Quote:

TI has two of these eval boards for around $200.

At which point someone else may mention the $149 Beagle Board which certainly has tons of "grunt". DSPs were born to do FFTs. I'd then counter than for $60 you can get a 1.6GHz Intel Atom PC motherboard complete with CPU to which you just need to add a $15 512MB DDR2 DIMM (and a PSU). Just hang come fast ADCs off the USB.

BTW because of economies of scale you will find that some 24 bit DACs are quite a bit cheaper than 16 bit ones - throw away the resolution that's not needed.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

clawson wrote:
Quote:

TI has two of these eval boards for around $200.

BTW because of economies of scale you will find that some 24 bit DACs are quite a bit cheaper than 16 bit ones - throw away the resolution that's not needed.

You mean 24 bit ADC. Hard to find a 24 bit DAC. TI now has a 32 bit ADC.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thanks, alwelch for the link. That board does look interesting but expensive. Will consider using it.

Just curious, has anybody implemented the FFT in an FPGA? That would also be something I'd like to try at some point of time.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

npat_avr wrote:
Just curious, has anybody implemented the FFT in an FPGA? That would also be something I'd like to try at some point of time.

Some FFTs at:
http://www.opencores.org/projects

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

npat_avr wrote:
Hi Guys,

What are some commonly used (tested with AVR's) high speed ADC IC's that you guys have used in your project?

I was looking for something along the following lines:
1. 16 bit
2. Max sampling frequency: >=2 MSPS @ 16 bit
3. Able to handle positive and negative voltages
4. SPI interface.
5. 5V/3.3V operation.
6. Differential inputs (not needed but would be better)

Xmega is not an option.

I checked the analog website and found the AD7298 which looks good but is 12 bit.

Side question: Why is 12 bit so popular? Is it the ease of design?
Thanks.

Most of what you want except speed and its 12USD.
http://www.cirrus.com/en/pubs/proDatasheet/CS5581_PP1.pdf

Saw the higher speed 16-bit ADCs at Analog Devices but the price looks out of your range.

XMEGA:
Would you consider UC3?
You'd get peripheral DMA and, with UC3A3, memory-to-memory DMA.

12-bit:
Noise floor would be my guess. Not easy to design & make a high resolution ADC.

"Dare to be naïve." - Buckminster Fuller

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

16 bits with plenty of steam behind it...

http://www2.electronicproducts.c...

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And very expensive too. Regular price in distribution is easily two or three times the price mentioned in the article; I expect at least $60. Needs a custom PCB too to function to spec.

If the budget is only a mere $50 there is unfortunately not much you can accomplish. The specifications must be relaxed.

Or do it all in the analogue domain; local oscillator, mixer, filter etc. Basically a radio that continuously sweeps over the frequency band of interest like a real spectrum analyser. If you could get this to work you'll gain a ton of analogue experience that's maybe worth more than just knowing how to glue together ready made pieces of code pulled from Google :)

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

The following meets some of the requirements:
http://www.quickfiltertech.com/files/QF4A512revD8.pdf
See section 7.
It has an application note (separate document) on how to analog interface it.
Serious SPI speed so an AVR will not work.
A slightly overclocked AVR32 AP7 will likely work and a well-overclocked AVR32 UC3A3 may if lucky; probably use DMA and very likely external memory.
13USD, 16 bit (really 12 bit oversampled) but the ENOB will decrease to about 11 bits at 2MSPS with only 1 of the 4 channels available at that speed.
The 199USD development kit uses a FPGA for SPI plus external SRAM to a FTDI FIFO-to-USB.
An alternative SPI-to-hi-speed-USB interface that is almost fast enough is a FTDI FT2232H at 30 MHz for SPI clock.
http://www.ftdichip.com/Documents/DataSheets/DS_FT2232H_V206.pdf
Has a DLL for Windows and the Linux device driver IIRC is already in the kernel.
If want to stay embedded there are a few AVR32 with displays out there and a ton of ARM9s with displays; an example ARM9:
http://www.mini-box.com/mini2440v2
It has a SPI interface but I don't know its max speed.
Mini-Box's Atmel SAM9G45 board (has a display interface) may arrive within a few months.
Linux has a SPI device driver (spidev).

"Dare to be naïve." - Buckminster Fuller

Last Edited: Tue. Apr 6, 2010 - 06:10 PM
  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Honestly a lot of people start with ADC's and look for specs way beyond what they really need. Assuming a 12v signal, 16-bits resolution is 0.1831 millivolts (0.0001831 V). You are likely to lose many bits of resolution just from noise, temperature, and filtering. Even an effective 12-bits of ADC resolution is too much for most applications (exempting hi-fi audio applications and the like, which work at much much lower frequencies and are easier to deal with).

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

For 16-bit resolution, TI offers the ADS1602 for $33 that will do the 2msps.
National Semi offers the ADC161S626 for $10 which will do 250k sps. Both are SPI. You still have to find an AVR or other to handle that number of samples.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Thank, gchapman and ignoramus.

The cirrus logic ADC looks really good for the price.
I may have to use the FTDI to clock in the samples.

I wonder if I can push an external ADC more than I can push the AVR ADC. I am able to go to almost 350 ksps on the 8 bit AVR ADC. Wonder if the ADC161S26 can be pushed beyond 250 ksps.

I think I may have to settle down for a lower resolution.

Is the cost a combination of resolution and sampling rate? It seems like it is a stronger function of the sampling rate than it is of the resolution.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

ADC161S26 is ADC161S626. I dropped a char when I posted it.

EDIT: Data sheet says 250ksps at 5Mz clock. That may be the max.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

Can you tell us about the input signal that is being analyzed? What generates it? Whats it used for? Whats it look like? What are you trying to see in it? I like this part of the design... matching the computer to the job without overspecing x10. Mighgt be able to extract what you are looking for with filtering or some other signal processing tricks.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I am trying to design a general system that will work for almost any type of input signal like signals from different sensors and also work as a general purpose spectrum analyzer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

I hate to say it, but I think an Android phone is the way to go. Color touch screen, fast processor, lots of storage. Maybe make a dataaquistion unit with an AVR and a bluetooth module to talk to the phone. There. Back on topic.

Imagecraft compiler user

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

npat_avr wrote:
I am trying to design a general system that will work for almost any type of input signal like signals from different sensors and also work as a general purpose spectrum analyzer.
Oh, you mean a DSO. Plenty available from many manufacturers.

Stealing Proteus doesn't make you an engineer.

  • 1
  • 2
  • 3
  • 4
  • 5
Total votes: 0

And in (good) DSOs a lot of experience and speciality technology went into the design. Experience gathered over many decades.