1
\$\begingroup\$

I am experimenting with a microcontroller project with a very wide-ranging, noisy DC input voltage at VCC. The controller processes a sensor input to the ADC and outputs a pulsed signal on all pins of a separate port. I need some advice on the best way to configure the system and microcontroller (ATmega168) supply (VCC/AVCC/AREF) to make the ADC and sensor as immune to all of the switching noise as possible. I’ve drawn up 3 possibilities of the top of my head below, but not sure which, if any, is optimal for separating digital and analog noise as much as possible:

Possibility 1: enter image description here

Possibility 2: enter image description here

Possibility 3: enter image description here

Currently I’m testing with both Vcc and AVcc powered from a linear bench supply (output 5.3V), and using a TL431 as 5V reference at Aref (similar to possibility 3). A potentiometer is standing in for the sensor. Despite large capacitors between +5.3V and COM (4400uF total), the multiplexing currently causes a lot of noise on the reference output. Below is a scope screenshot of the reference output, and this is without the switcher:

enter image description here

What is the best basic topology to supply this circuit? Any comments, recommendations or better ideas than any of these would be greatly appreciated.

\$\endgroup\$
13
  • \$\begingroup\$ What does your grounding look like? \$\endgroup\$ Oct 28 '17 at 2:28
  • 1
    \$\begingroup\$ What SNR or Effective Number Of Bits do you need? Is the ADC differential input? How big a capacitor on VREF pin? Is your GROUND a plane? or daisychain? or what? \$\endgroup\$ Oct 28 '17 at 3:07
  • \$\begingroup\$ @abe So far, testing is being done on a breadboard, so not great. I am using separate ground strips for the multiplexing and analog sides, though, in as much of a star configuration as possible, so the currents have minimal overlap. \$\endgroup\$
    – User7251
    Oct 28 '17 at 3:10
  • 1
    \$\begingroup\$ I don't think any microcontroller can directly drive 100 - 450 mA pulses from its GPIO pins - you will need a separate driver circuiit to feed the displays. \$\endgroup\$ Oct 28 '17 at 7:06
  • 1
    \$\begingroup\$ I can't answer that without knowing more about the sensor. If the sensor output is absolute, having a separate reference for AREF can improve accuracy. If it's ratiometric, you want AREF to be connected to the sensor's power supply. \$\endgroup\$ Oct 29 '17 at 18:00
1
\$\begingroup\$

Only answering part of your question:

Since the worst noisemaker here is the multiplexed LED display, you have several options:

1- Use a LCD instead, with a constant-current LED backlight.

2- Keep the high LED currents inside a tight loop close to the 7-seg modules. To do this you would put the 7seg drivers close to the display, route the return currents in traces (don't let them into your ground plane), and use local decoupling to close the loop, like several hundreds µF with lowish ESR like 0.1R (Panasonic FC for example). Then, power the whole display from the switching regulator, not from your clean 5V. You could also add a cheap slow LDO or a RC filter to smooth the current drawn from the supply.

Also you won't get 1LSB accuracy from the micro's ADC, the TL431 is only accurate to 1% too, so this feels like you need to clearly specify what kind of accuracy you require...

\$\endgroup\$
6
  • \$\begingroup\$ Great, thank you for the input ... I like your second idea, along with what I was originally thinking, so you would recommend the LED driver power come directly from the switching regulator, isolating it from clean power. Would you recommend the uC Vcc then be powered by a post-switcher LDO, and the AVcc as well? Should the reference input then also come from the same regulator, or should I use a separate reference? W/ regard to the accuracy, it justifiably crept into the answers to this question, but I am actually saving it for another post, as I felt it might detract from the power issue \$\endgroup\$
    – User7251
    Oct 28 '17 at 22:17
  • \$\begingroup\$ If this is a personal project and you're not going to build 10k boards then parts cost isn't that relevant. For example a LDO will cost 50c, so don't spend an hour wondering whether you'll put one or two on your board ;) likewise if you need accuracy, spend a few bucks on an ADC with more bits, it'll save you time... \$\endgroup\$
    – bobflux
    Oct 29 '17 at 7:44
  • \$\begingroup\$ Right, cost of an extra regulator or reference isn't the concern at the moment, it's really just getting the overall supply topology as good as I can get it to keep the switching noise under control and allow for the best operation of the ADC, whether I use the on-board ADC or an external one. So to bug you one more time about this ;), we've got the LED drivers powered by a switcher and the sensor and ADC powered by an LDO, should the uC Vcc be powered by the LDO also?(since it's switching the LED drivers) And would you recommend using a separate reference or is the LDO good enough for ADCref? \$\endgroup\$
    – User7251
    Oct 29 '17 at 16:13
  • \$\begingroup\$ Well a "reference" and a "regulator" are the more or less the same, except the "reference" will be designed for higher accuracy, lower tempco, etc, and the "regulator" is designed for higher current (and no-one cares if it drifts by 1% versus temp). What you don't want to do is draw a varying current from your reference, because it does have a transient response, so it will take some time to settle if the output current varies. \$\endgroup\$
    – bobflux
    Oct 29 '17 at 16:41
  • 1
    \$\begingroup\$ So if you want good accuracy, a reference chip (or TL431, whatever gives you the accuracy you need) should only power the ARef pin, and not other stuff that draws pulsed current. This is why using the micro's +5V as reference isn't accurate, as the +5V will vary a bit with CPU load, as the cpu's current demands vary, same if it drives loads from its outputs etc... Now I don't what rejection the micro's AVCC pin has, you can put a RC or RLC filter with a ferrite bead and a MLCC like 10µF on AVCC pin, that should filter out any HF noise. \$\endgroup\$
    – bobflux
    Oct 29 '17 at 16:44

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.