I have a PIC32 microcontroller (MCU) system that experienced intermittent (though regularly) resets, most likely due to ground bounce caused by the switching of inductive loads (solenoids). All the decoupling capacitors and bulk capacitor are present as per the datasheet's recommendation. The MCU is contained on a breakout board that plugs in to the rest of the circuitry. For modularity and ease of replacement if necessary.

One solution that nearly eliminated the resets was to put a very large value capacitor across the main MCU power pins of the breakout board. The MCU is powered by 3.3 V. In this particular case, it was a 1000 uF electrolytic capacitor with a 25 V rating (which is a rather large capacitor). However, the odd intermittent resets still occurs now and then, but not nearly as much as it did without the electrolytic capacitor. I did some testing with a power supply and LED where I removed the power to the breakout board, and the LED still remained powered on for a couple of seconds, as expected. However, it seems that there is a saturation point at which more capacitance doesn't help the situation anymore.

Herewith follows a few questions:

  1. Is there a saturation point at which any larger capacitors will not help the situation (i.e. that remains charged for longer)?
  2. Does the fact that the capacitor is rated for 25 V make it a bad choice for such a bulk capacitor for use at only 3.3 V?
  3. Is there a minimum voltage at which a particular capacitor will reliably provide adequate stability as a temporary power supply in the event of a ground bounce occurrence?
  4. Would a super capacitor be a better choice in this case (particularly the ones with low rated voltage and high capacitance in the Farad-range)?
  5. Taking all the above questions into consideration, what is the best way to provide an MCU with a reliable, stable power supply to eliminate susceptibility to ground bounce (other than using external power supplies like switch mode supplies).
  • 1
    \$\begingroup\$ Larger bulk capacitors cause power to come up more slowly, which may cause issues. \$\endgroup\$ – Ignacio Vazquez-Abrams Nov 15 '17 at 23:31
  • \$\begingroup\$ @IgnacioVazquez-Abrams: Do you mean that the large bulk capacitors take longer to respond to a ground bounce, or take longer to charge? \$\endgroup\$ – wave.jaco Nov 16 '17 at 0:01
  • 1
    \$\begingroup\$ The latter case. \$\endgroup\$ – Ignacio Vazquez-Abrams Nov 16 '17 at 0:01
  • \$\begingroup\$ If the ESR of load DCR to source ESR is more than 5% then you get 5% dip. Caps must be huge to have an RC time constant 10x greater than T=L/DCR of solenoid. If a big cap wont help , a small battery will, kept on float V.. After all they are also equiv caps 1k x larger, See my related answer for a different application. electronics.stackexchange.com/questions/340072/… The rest are routine EMI issues \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Nov 16 '17 at 0:11
  • 1
    \$\begingroup\$ show your schematic wih p/n's and photo of layout then your issues will be obvious \$\endgroup\$ – Tony Stewart Sunnyskyguy EE75 Nov 16 '17 at 2:42

You want to attempt to create a star ground where the power supply ground connection is in between the power and digital sides of the circuit. Ground bounce is caused by resistive losses when a large current flows through the ground traces. By putting the power circuitry on the "other" side of a star ground, you put the resistor that is causing the drop/bounce in series with the power load and not in series with the digital load.

Given your construction this might or might not be practical.

  • \$\begingroup\$ I have considered this, since the current design has a 2 layer PCB. However, I am reviewing the design and making it a 4 layer board, which should eliminate many of the issues caused by ground loops. \$\endgroup\$ – wave.jaco Nov 16 '17 at 6:44
  1. Smaller or larger capacitors are not the question. The question is what is the frequency content of the transient, and do your capacitors help at those frequencies. All capacitors have parasitic inductance and don't respond to frequencies if they are high enough. Larger capacitors are usually worse at this.

  2. 25 v capacitors might have higher parasitic inductance than 3.3V capacitors. The type of capacitor and package construction matters a lot.

  3. Capacitor performance is not usually affected by voltage unless it is so high that you blow it up.

  4. I would guess that a super capacitor would not help because you likely have high frequency transients and super capacitors aren't great at high frequencies.

  5. The best way is to solve the transient problem. Do you have transient suppression diodes on the coils for the inductive kick when you turn the coils off? Here is a test -- Turn all the solenoids on and then turn them all off at the same time. Does this consistently cause the problem? Off is usually the problem with transients.

  • \$\begingroup\$ Thanks for your answer. I do have schottky suppression diodes for the inductive kickback, although the solenoids are connected to the switching circuitry with some relatively long cables (between 0.5 and 2 meters depending on their location). So the cables might be causing some EMI even though I have the suppression diodes. At this stage it is tricky to figure out if it is an EMI problem or a transient problem. \$\endgroup\$ – wave.jaco Nov 16 '17 at 6:47
  • \$\begingroup\$ Two meter cables will have inductive kickback of their own. You might try to add suppression diodes to the board as well right on the coil. Another thing you can do is place snubbers across the coils because the transients can be quite fast when you turn a coil off. Have you figured out if the problem is worse at turn on or turn off of the coils? If not, try to test for that. \$\endgroup\$ – Dave M Nov 20 '17 at 6:59
  • \$\begingroup\$ I could not conclusively determine whether the problem is worse at turn on or turn off of the coils. I suspect that the transients problem is most likely when the coils turn off, but there are cases in which the problem occurred during turn on of a number of coils simultaneously. \$\endgroup\$ – wave.jaco Nov 20 '17 at 21:02
  • \$\begingroup\$ Regarding the suppression diodes - I do actually have them right on the board. In my particular application, the coils are somewhat hard to reach and their placement in the system make in somewhat impractical to add the diodes directly to the coils. That is why I resorted to having the suppression diodes on the board. I have considered snubbers across the coils but don't have them in a design yet. Adding the snubbers will make an already dense and complex board even more dense. However, if they are absolutely necessary, they will be added to the design. \$\endgroup\$ – wave.jaco Nov 20 '17 at 21:06
  • \$\begingroup\$ If it happens when you turn on multiple coils, then that implies that your power supply is marginal for the task. In that case, more bulk capacitance does help. How close are you to your maximum power supply rating with worse case coils turned on? Another trick for this is to put a slight delay in between switching each coil. A software solution to hardware that might not handle switching all coils at the same time. \$\endgroup\$ – Dave M Nov 22 '17 at 17:35

Insert a large inductor in the power lead between the main PCB and the breakout board; this provides some additional transient suppression for your MCU circuit; what you have now, with the 1,000uF cap being in parallel with the main PCB, leaves the MCU exposed to the voltage sag caused by the sudden current demands.

Or you can simply try 10 Ohms or 33 Ohms or 100 Ohms. The purpose is to isolate the MCU board from the main board.

  • \$\begingroup\$ Thanks for your answer. You mention that the MCU is still vulnerable to the voltage sag despite the 1000 uF capacitor. Isn't that exactly what the capacitor should be preventing here? Since the resets are far less frequent now after adding the capacitor, it would seem to me that the capacitor at least helped a bit against the voltage sag, but not enough. Is this also what the inductor will be assisting with? What value would be a good one to use? Also, how does the addition of the small resistors compensate for the voltage sag by isolating the two boards? \$\endgroup\$ – wave.jaco Nov 16 '17 at 7:12
  • \$\begingroup\$ The solenoids demand large currents. With that 1,000uF cap (and no inductor between main and breakout PCBs), the 1,000UF has to assist in supplying the solenoid drive current. The purpose of inductor or small resistors (and inductors HAVE resistance) is to slow the rate of sag and also reduce any ringing caused in the MCU pcb. \$\endgroup\$ – analogsystemsrf Nov 17 '17 at 4:59
  • \$\begingroup\$ So the 1000 uF capacitor thus in actual fact supplies both partly the solenoid drive current and the MCU PCB, even though the MCU section and the switching section are isolated planes and the 1000 uF capacitor is placed at the MCU PCB? If I just add the small resistor in the power lead between the main PCB and the breakout board, I guess that I would have to pay attention to not cause a too large voltage drop over the resistor that could influence the MCU power input level... \$\endgroup\$ – wave.jaco Nov 20 '17 at 21:16

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.