Raspberry Pi Confirms It Is Investigating a Flaw in the Raspberry Pi Pico, RP2040 ADC
Big DNL spikes caused by an apparent mismatch between capacitors used in simulation and production, James Adams confirms.
Raspberry Pi has confirmed it is investigating reports of a design flaw in the analog to digital converter (ADC) on the Raspberry Pi Pico and other RP2040-based microcontroller boards, which manifests itself as measurable spikes in differential non-linearity (DNL).
The Raspberry Pi Pico, and the in-house Raspberry Pi RP2040 microcontroller which powers it, has proven popular since its launch earlier this year. That's no surprise: At just $4 and with the considerable weight of the Raspberry Pi community behind it, the board offers a wealth of features including a 12-bit analog to digital converter (ADC) — but the design of the latter may need a tweak.
Reports of strange measurements in the ADC's differential non-linearity appeared back in January in a post on the Raspberry Pi forums. This was followed a couple of weeks later by an issue filed on the Raspberry Pi Pico feedback repository on GitHub. "I have been working on testing some of the ADC parameters, as the datasheet is a little light," wrote developer Mark Omo in a bug report. "And it looks like there are significant DNL excursions indicating that the ADC may be non-monotonic."
Others chimed in echoing the issue, which can be seen clearly as a series of spikes in the measured DNL — and James Adams, chief operating officer and director of hardware at Raspberry Pi, confirms the company is investigating — and that it appears to be a flaw resulting from a mismatch between simulation and shipping hardware.
"A quick update on this — the issues are understood (we wanted to make sure all the data people are seeing/presenting was consistent with the known issues as well as make sure we completely understood the root cause(s) in the ADC design)," Adams writes on the Raspberry Pi forum. "We are busy working on getting comprehensive characterisation data, which we will include in a datasheet update, along with a blog post. In short, though, this is down to slight mismatch of some of the capacitors in the capacitive DAC, versus the simulation models."
In an update published to GitHub earlier today, Raspberry Pi's Alasdair Allan confirmed the investigation is still underway. "Just to let everyone know we're still working on this," he writes, "we've even bought some new kit for the lab. Data is coming soon, and there will be a blog post — and probably an App Note-style PDF to back it up — in the next few weeks."
In the meantime, an analysis of the root cause of the problem can be found on Mark Omo's website.