![]() |
Forum Index : Microcontroller and PC projects : Pico ADC has very high DNL spikes / noise
Author | Message | ||||
Amnesie Guru ![]() Joined: 30/06/2020 Location: GermanyPosts: 675 |
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 KingdomPosts: 7937 |
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: NetherlandsPosts: 5091 |
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: GermanyPosts: 675 |
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 StatesPosts: 719 |
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 KingdomPosts: 7937 |
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 KingdomPosts: 10315 |
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 |
||||
![]() |
![]() |
The Back Shed's forum code is written, and hosted, in Australia. | © JAQ Software 2025 |