The RP2040 datasheet has a woefully underspecified Analog to Digital Converter, only 3 lines:


Compare this to the Digital IO Characteristics (Table 631); it has 18 lines! And ADCs have much more complexity and nuance than a Digital IO (however, Digital IO blocks have surprising complexity).

In this project, I will explain different ADC specifications, how they can be characterized, and the results of those tests on the PR2040.

Issues Found

During this project, I found some issues and inconsistencies with the ADC.

The biggest thing is that the ADC has some significant DNL issues. It looks like those were caused by a systematic error in the capacitors for the DAC portion of the SAR ADC.

The other thing I discovered is the “Low-Noise” mode of the DC-DC converter on the Pico has more noise (see below for the performance impacts) than the high-efficiency mode.


Specification Test Method Result PSM Result PWM
Power Supply Noise and Spectrum Oscilloscope 1.0mV RMS 1.3mV RMS
Input-Referred Noise Histogram 0.97 LSB RMS 1.36 LSB RMS
Noise Free Resolution Histogram 9.3 Bits 8.8 Bits
Effective Resolution (Not ENOB) Histogram 12 Bits 11.6 Bits
Effective Number of Bits (ENOB) Sine Curve Fit 8.92 Bits 8.84 Bits
Effective Number of Bits (ENOB) Coherent Sampling/FFT 7.89 Bits 7.84 Bits
Signal to Noise and Distortion (SINAD) Sine Curve Fit 53.77 dB 52.82 dB
Signal to Noise and Distortion (SINAD) Coherent Sampling/FFT 49.27 dB 48.96 dB
Differential Nonlinearity Sine Histogram 8.9 LSBs Unchanged
Integral Nonlinearity Sine Histogram 7.85 LSBs Unchanged
Input Bandwidth Sine Sweep TBD  
Aperture Jitter?      
Power Supply Rejection Ratio?      


subscribe via RSS