Go Down

Topic: DUE’s power up sequence seems to cause, or avoid, ADC noise (Read 1 time) previous topic - next topic


I'm want to use DUE's 12 bit ADC resolution in a color organ project that samples and runs filter algorithms at 10KHz for 32 mS blocks, loads a WS2811 LED string, then returns to sampling for another 32mS. 

It works rather well, but the dynamic range is limited by 3 or 4 LS bits of noise in the raw ADC reads IF the DUE is FIRST powered up from 12 volts on the Vin pin, even from a clean lab supply.   This is with the default AREF and just a 16K/16K bias divider at the analog input, which can be capacitively decoupled to no effect.  If Vin is dropped to just short of a shutdown, the noise falls off, suggesting the source is the switching regulator on the DUE, but no degree of decoupling on the +5V or the 3.3V makes any difference at all.  It acts like a ground loop within thr DUE.

The excess noise appeared when I first tried to run it independently of the PC and IDE.  If the DUE is FIRST powered up from a laptop on its programming port, THEN the 12 volts is applied, the noise is only 1-2 LSBs and the whole thing works perfectly.  When I unplug fhe USB, the DUE reboots and the 3-4 bits of noise retuns.

I thought I had a fix in this post:
https://forum.arduino.cc/index.php?topic=414991.msg2857842#msg2857842.  I've intermittently observed the reported 10 KHz on the +5V and 5-6 bits of ADC noise, but the poster's decoupling fix didn't resolve my 3-4 bits of noise.

Hoping for a workaround short of modifying the DUE to disable the switcher, I tried backfeeding the +5V pin on the DUE from a 5V linear regulator on the +12V with no Vin, but the 3-4 bits of noise was present. The +5 must come up first.

I'm wondering if the USB port connection or lack thereof sets or clears the UOTGVBOF line and that somehow produces the noise.  Does anybody know what this bit normally does or have any other idea?


See this article about Arduino DUE ADC noise:

To enhance ADC conversions, you can oversample, calibrate the ADC and average samples.

And some good practices when using ADC in this thread, reply #3:

Plus the AREF pin:

UOTGVBOF = USB VBus On/Off: Bus Power Control Port (PB10)
(datasheet page 1089, UOTGHS_CTRL register ):
VBUSHWC: VBus Hardware Control
0: The hardware control over the UOTGVBOF output pin is enabled. The UOTGHS resets the UOTGVBOF output pin when a VBUS problem occurs.
1: The hardware control over the UOTGVBOF output pin is disabled.


Thanks for the links!  There were two that I hadn't discovered in searching the forums before posting.

There was ≈200mV P-P visible noise to the VIN ground on the +5 and the + 3.3V, clearly originating in the Vin regulator.  As shipped, no amount of added decoupling to any available ground would remove it.  The +3.3 is hard jumpered as AVREF, so not much to do there without brain surgery on the jumpers, which I'm not well-equipped to do.  I'm also not sure it would have helped.

The MPM3620 regulator on the DUE I had is spec'd to operate at 2MHz, but when the light load startup funk was going on, I could hear something squealing at a high, but audible rate.  There's no physical inductor that could be expected to be microphonic, so the source had to be one of the two Hi-K chip capacitors next to that part. There must be some large ground loop currents flowing around that regulator.   

As a foray, I ordered two "OSOYOO DUE R3" clones from Amazon for $21 each.   Those came in today and both show noise just over an LSB in 12 bit resolution.  The clones use the LM2734 regulator and 100 uH discrete inductor of the original reference design. There's 100mV ripple on the +3.3, but its a 500 KHz waveform rather than a collection of noisy pulses.

So I have a fix, sorta',  - at least something that works without degrading the dynamic range of the project, and at a low price.  Thanks for your advice.


Go Up