Sujet : Re: rp2040 a2d?
De : pcdhSpamMeSenseless (at) *nospam* electrooptical.net (Phil Hobbs)
Groupes : sci.electronics.designDate : 13. Mar 2025, 22:11:56
Autres entêtes
Message-ID : <817668f6-ea2b-0fee-7a4e-839c333aa8a4@electrooptical.net>
References : 1 2 3 4 5 6
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.0
On 2025-03-13 13:33, john larkin wrote:
On Thu, 13 Mar 2025 11:17:18 -0400, Phil Hobbs
<pcdhSpamMeSenseless@electrooptical.net> wrote:
On 2025-03-12 23:20, wmartin wrote:
On 3/12/25 17:52, john larkin wrote:
On Wed, 12 Mar 2025 08:48:41 -0700, wmartin <wwm@wwmartin.net> wrote:
>
On 3/11/25 15:15, wmartin wrote:
Anyone have experience using the a2d in an RP2040? I've heard some
negative opinions, would like to check against actual user
experience...
in particular with the Pi Pico hardware. I'm using one as a plug-in
subsystem on a simple controller now, but not using the a2d just yet.
Question is: Use it or put an external a2d on the spi bus?
Thanks,
Bill M.
>
A big thank you to all who responded! External seems the safest bet...
-bill
>
One trick to improve a bad ADC is to add noise (or a triangle wave) to
the signal and lowpass filter or average a lot of readings. That will
pave over missing codes, but not help gross nonlinearity much.
>
I see how that goes, but I think I'm better served by going "outside"
the micro in this case. The game is to monitor & record the position of
a moving mechanical part, moving quickly & not in any kind of
predictable periodicity, so averaging probably is out of the picture. I
may ditch the a2d idea entirely & go with an encoder strip...if I can
figure out where to put it!
>
You can make a triangle from a timer and a port pin into an RC.
>
An ADC inside a uP is tricky. There's too much noise, and the silicon
process is optimized for digital, not analog.
>
Averaging doesn't have to be stroboscopic--you can just run the ADC N
times faster and sum N adjacent samples.
>
A 500kSa/s ADC can average a lot of samples on the time scale of most
common sorts of mechanical motion control. How fast is your control loop?
I like exponential smoothing, basically simulating an RC lowpass
filter. DSP jocks sneer at this algorithm, for some reason. Too easy,
I guess.
It's good news in general, I agree. Of course as with almost all IIR filters, you have to be careful to avoid limit cycle nuisances if the word length is too short and the time constant is long. FIR filters don't have that problem. (First order IIR filters eventually decay to a nonzero final value somewhere in [-0.5/decrement, +0.5/decrement].)
The RP2040 has two CPUs. We call them Alice and Bob. One could assign
Bob to doing nothing but the ADC acquisition and filtering.
Yup. Or run the ADC from the DMA peripheral, with ping-pong buffers. Either way, you can arrange to get good repeatable hardware timing.
Cheers
Phil Hobbs
-- Dr Philip C D HobbsPrincipal ConsultantElectroOptical Innovations LLC / Hobbs ElectroOpticsOptics, Electro-optics, Photonics, Analog ElectronicsBriarcliff Manor NY 10510
http://electrooptical.nethttp://hobbs-eo.com