Replies: 10 comments
-
Very interesting results. There's a minimum of 9 ENOB per the dataset, but that looks more 7.5 if my back of the envelope math is correct. Have you opened up a discussion on the RPI forums? The actual designers are active there and might be able to offer assistance. |
Beta Was this translation helpful? Give feedback.
-
I see the claim of 9 ENOB and I looked at the forums but found nothing. The latest datasheet still has this so I am waiting for more info.
I really like the RP2350 but often need an ADC for my projects but it looks like strike two for the ADC. |
Beta Was this translation helpful? Give feedback.
-
Here Is a SAMD21 ADC with Vref the internal 3V3. Better accuracy between 0.3 and 3.0 V. |
Beta Was this translation helpful? Give feedback.
-
Microchip has had a few more years than the RPI folks getting the analog portion right. Analog ASIC design is always a dark art practiced by wizards. 😆 Just spitballing, but is it possible to design a transfer function to get you closer to what you need? If multiple chips are repeatably off in the same way, is there a 4K entry lookup table that can map from ADC readout to actual physical value? I know you can't add information but maybe you can shift the errors around? |
Beta Was this translation helpful? Give feedback.
-
Probably a quadratic fit would be pretty good for the RP2350. I don't like the DNL jumps that many CPU chips have. I have lots of experience with ADC chips so if I need more accuracy I add a chip. I have written drivers for a number chips. For high accuracy I like the MCP342X family of 18 bit ADCs. They have a builtin reference and INL: 10 ppm of Full Scale Range. There are lots of good SAR 12 bit chips. For many years I have used the MCP320X family. |
Beta Was this translation helpful? Give feedback.
-
Here is an example of a 12-bit MCP3202 with a Pico 2. I just put the ADC and DAC chips on a bread board with no caps so there is a lot of noise. Most reading are within a millivolt. Since the least significant bit is 3000/4095 = 0.73 millivolt this is about as good as you can expect. I use three parts, MCP3202, 3.0 V reference, and a 220 ohm resistor. |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
The relevant difference is, that the pico 2 comes with a buck-boost regulator, which is more efficient and is able to power the pico down to 1.8V. That is great for battery powered applications! |
Beta Was this translation helpful? Give feedback.
-
I understand all of this. For my applications the Adafruit approach is better. For USB power I don't care about burning a little power. For most battery power applications I like the builtin LiPoly charger. There are options on the RP2350 for disabling the LDO regulator and the LiPoly charger to use the JST-PH battery port with non-LiPoly batteries, such as AA or AAA battery packs. Here are pages about power for the RP2040 and RP2350 Feather Boards that discuss power options. https://learn.adafruit.com/adafruit-feather-rp2040-pico/power-management https://learn.adafruit.com/adafruit-feather-rp2350/power-management |
Beta Was this translation helpful? Give feedback.
-
Hi. I measured the ADC accuracy of Pico/PicoW (RP2040) and Pico2/Pico2W (RP2350). To reduce measurement noise, I supplied the LDO voltage to ADC_VREF and additionally added a 10μF capacitor to the 3.3V power line (between pin36 and pin38). RP2350 has improved nonlinearity compared to RP2040, but discontinuities still remain. Furthermore, there is a significant variation between individual devices. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
I am looking for other users experience with the Pico 2 ADC.
I found lots of noise when using USB power. I followed a suggestion and put a LM4040C30 3.0 volt reference from the Vref pin to ground. That improved the noise problem.
The DNL/INL problem is better but still not great.
I used a 16-bit AD5693 DAC to generate ADC input. I stepped from zero to 3.0 V in one millivolt steps. I get this error chart for the ADC at 12-bit resolution. I subtracted a large zero offset and adjusted for the 3.0 V reference.
The three big jumps are at these multiples of 512: 1536, 2048, 2560.
This is better than the RP2040. Here is an early example for a Pico 1. It has noise since I didn't use a voltage reference chip. It goes to 3.3v since 3V3 is the reference.
I checked the DAC performance with a 6 1/2 digit DMM. Here is the result:
Beta Was this translation helpful? Give feedback.
All reactions