Home
JAQForum Ver 24.01
Log In or Join  
Active Topics
Local Time 06:53 02 Aug 2025 Privacy Policy
Jump to

Notice. New forum software under development. It's going to miss a few functions and look a bit ugly for a while, but I'm working on it full time now as the old forum was too unstable. Couple days, all good. If you notice any issues, please contact me.

Forum Index : Microcontroller and PC projects : Pico ADC has very high DNL spikes / noise

Author Message
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 675
Posted: 10:19pm 10 Feb 2022
Copy link to clipboard 
Print this post

Hello again,

I came across this topic, where it is mentioned that the Raspberry Pico has some issues with the ADC which are not solved but now documented in the offical Pico documentation. Since I am using / or plan to use the ADC a lot, I am wondering if this could be a problem. I don't really understand what DNL spikes are and wether it really bothers the "average" user. If this could be a problem I am thinking of using an external 16bit (actually 15) ADC I used for the Arduino in the past (ads1115). It is communicating via I2C.

Here is the reported issue:

https://github.com/raspberrypi/pico-feedback/issues/91


Greetings
Daniel
Edited 2022-02-11 08:20 by Amnesie
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7937
Posted: 10:45pm 10 Feb 2022
Copy link to clipboard 
Print this post

The DNL spikes on the internal ADC are a known problem on the silicon. There's no workaround for it. Depending on the application, most people probably won't notice. Maybe a bit of non-linearity.

You can reduce noise problems to a very low level by disabling the 3V3 SMPS and powering the 3V3 rail from a conventional voltage regulator. Also, fitting a LM4040 3V shunt regulator will help keep the reference supply clean (especially if you need to use the SMPS). Your analogue range will then be 0-3V instead of 0-3.3V though.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
Volhout
Guru

Joined: 05/03/2018
Location: Netherlands
Posts: 5091
Posted: 04:48pm 11 Feb 2022
Copy link to clipboard 
Print this post

There are 2 issues. One is the noise from the switchmode powersupply. The measures descibed above solve that.
The second pne is non linearity, non monotonicity. This is a silicon issue, and cannot be solved. Possible averaging can help, but that depends on the noise on the input signal.
PicomiteVGA PETSCII ROBOTS
 
Amnesie
Guru

Joined: 30/06/2020
Location: Germany
Posts: 675
Posted: 05:53pm 11 Feb 2022
Copy link to clipboard 
Print this post

Thank you both for the hints, so it is better to use an external ADC like the ADS1115 which communicates via I2C?

-Daniel
 
hitsware2

Guru

Joined: 03/08/2019
Location: United States
Posts: 719
Posted: 06:36pm 11 Feb 2022
Copy link to clipboard 
Print this post

I would try it out bare ( as is ) to begin with ,
and see if it is not working to expectations .
Many times nit picking is not called for .
my site
 
Mixtel90

Guru

Joined: 05/10/2019
Location: United Kingdom
Posts: 7937
Posted: 06:48pm 11 Feb 2022
Copy link to clipboard 
Print this post

It'll all depend on your application, Daniel. If you can manage with a bit of non-linearity in places then the on-board ADC will be quicker and easier to use. If you need the linearity over the full range then an external ADC is the answer, but it will be slower to work with. If I was unsure then, as hitsaware2 says, I'd try the on-board ADC out first.
Mick

Zilog Inside! nascom.info for Nascom & Gemini
Preliminary MMBasic docs & my PCB designs
 
matherp
Guru

Joined: 11/12/2012
Location: United Kingdom
Posts: 10315
Posted: 06:53pm 11 Feb 2022
Copy link to clipboard 
Print this post

The RP2040 ADC is good for 8 bits only. If you need more then you will need to use something external. If 8 is enough then as long as the supply is clean and you have a good reference then it will work OK
 
Print this page


To reply to this topic, you need to log in.

The Back Shed's forum code is written, and hosted, in Australia.
© JAQ Software 2025