SAR ADC Oscillations

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

 Hello, I am trying to use an SAR ADC for an application that requires low power and battery power.  I have the SAR input setup from an analog pin(high z).  Going into the pin, I have a DC power supply that is supplying 2.5VDC.  I have the ADC output reading into a uint16, and then going directly to the LCD.  

   

-12-bit

   

-100kSPS(tried 60k and 900k with bypass cap)

   

-vref internal(tried bypass and external vref)

   

-played around with IMO frequency a bit, but left it at 3MHz and PLL at 24MHz

   

-software trigger(use startconv and stopconv then read)

   

 

   

I took several readings, delaying 4 seconds between each reading.  The max and min decimal values are below.  2154 is 2.5V at my vdd of 4.75VDC.  

   

 

   

Min/max

   

-------

   

2154/2165

   

2156/2161

   

2155/2168

   

2153/2163

   

 

   

Why are the outputs oscillating 4 bits?  I am really only getting 8 bits of resolution with this setup because of the oscillation..  

0 Likes
11 Replies
Anonymous
Not applicable

 I did 10 readings for each of the Min/Max values

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

That could be anything. The 16 counts you see as fluctuation (no, these are no oscillations) are only 16 milliVolts.

   
        
  • are you sure the signal you are measuring is really clean (no fluctuations)
  •     
  • do the voltage you measure and the power supply share a ground line? (then you introduce ground currents)
  •     
  • how long are the leads - could it be that you get noise coupling?
  •     
  • use internal ref bypassed with capacitor - this gives best performance (100 kSps is the upper limit for just the internal ref), and bypass it with an external capacitor
  •    
   

Try to get a scope to the inputs as near as possible on the PSoC, and look at the signal there. Is this a Cypress board or did you design it on your own?

   

You can also try to use the DelSig ADC instead, it has better noise rejection characteristics.

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Start with 12 bits, if Vref set to Vssa to Vdda, then 1 LSB = 5 / 4096 = 1.2 mV.

   

 

   

So start with a DSO, look at your Vx, scope on infinite persistance, and measure pk-pk noise.

   

Then calculate the # LSBs you would get from that, and compare to what SAR is measuring.

   

 

   

If your counts from SAR vary by 4 counts, that is not 8 bit resolution. Your resolution is still

   

12 bits. Your accuracy though is Vx +/- 2 lsbs.

   

 

   

If you signal average, and the noise is uncorrelated, then you can improve the accuracy.

   

But this all depends on nosie being uncorrelated, which in a mixed signal environment is

   

only partially true as UP generates a lot of correlated noise.

   

 

   

http://en.wikipedia.org/wiki/Oversampling

   

 

   

Regards, Dana.

0 Likes
HeLi_263931
Level 8
Level 8
100 solutions authored 50 solutions authored 25 solutions authored

You might want to look at AN57821 (http://www.cypress.com/?rID=39677 ) which explains details how how to design PCBs for mixed signal applications - it contains lot of valuable information about potential sources of analog errors.

0 Likes
lock attach
Attachments are accessible only for community members.
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

One further comment, bypassing is critical in systems even at 8 bits.

   

 

   

Polymer tantalums are an order of magnitude better than "normal" tants in

   

their Z vs freq performance.

   

 

   

Some ref material on board layout and mixed signal design, attached.

   

 

   

Regards, Dana.

0 Likes
Anonymous
Not applicable
        Hi EEdave   
ADC oscillation(Noise) issue will happen several times   
But 4 bits is too much, I think   
When you measure the ADC accuracy, Notice to that things   
1) Place low pass filter at the input pin, for you design, 50KHz around   
2) Measure on well grounded Iron table, If you can   
3) Do not use fluorescent light   
   
And how would be like this, for a trial   
1) Place internal Vref on your ADC input, This might be best effort of your design.   
2) Use continuous conversion   
3) Use some averaging, If you can   
Regards.   
0 Likes
Anonymous
Not applicable

If your input is a DC source, moving average would be OK. Of course, you should try to minmize the noise first.

0 Likes
Anonymous
Not applicable
0 Likes
Anonymous
Not applicable

http://cp.literature.agilent.com/litweb/pdf/5968-9726EN.pdf

   

This is the DC power supply i was using, the oscillations I am seeing are higher than the ratings of the supply.  This is not the supply.  I also tried a TIA setup as a non-invert opamp configuration with the output of the TIA running directly to the ADC.  The oscillations increased.  

0 Likes
Anonymous
Not applicable

I am using a USB to power my dev kit from a laptop.  Would this cause the vref to jump around?  

0 Likes
ETRO_SSN583
Level 9
Level 9
250 likes received 100 sign-ins 5 likes given

Not directly, but could easily add system noise to the ground currents.

   

 

   

Put your scope on infinite persistence, and look at supply and SAR inputs.

   

You will get a pk-pk reading of the worst case noise.

   

 

   

Regards, Dana.

0 Likes