Tuesday 20 January 2015

noise - Why does connecting a high-current device to my digital circuit cause weird behavior?


I have a




  • arduino

  • microcontroller

  • other digital thing


and when I connect a



  • motor

  • pump

  • heater

  • other high current thing



I experience



  • weird ADC measurements

  • reboots

  • crashes

  • errors in digital communication

  • other unexpected behavior


My power supply is properly sized to power all these devices. I don't have an oscilloscope so I can't see much what's actually happening in the circuit. What's a likely cause?




Answer



Without details it is impossible to give a specific answer. Look at these things closely:



  1. Grounding. This is exactly the symptom you get from a poor overall grounding strategy. Without a block diagram showing power and grounds of everything connected, it's impossible to give specific advice. However, carefully visualize all the ground return currents, and consider that any current on a ground conductor will cause a ground offset.

  2. Local decoupling. Make sure there is a 1 µF or so ceramic cap as close as possible between each pair of power and ground pins of each chip. These connections need to be short, because even a little series inductance significantly reduces their effectiveness.

  3. Power supply surge capability. Make sure there is enough bulk reservoir capacitance on the power supply to handle transients for whatever time it takes for the power supply itself to catch up and deliver more current.

  4. Inductive catch diodes. Make really sure that any possible inductive load, which includes any external load, has a reverse polarity diode across it. For voltages up to 50-100 V or so, these should be Schottky because of their high speed. This applies to loads driven by DC. Since they are always driven with one polarity, the diode can safely short out the other polarity. As Tut pointed out in a comment, for AC loads, more complicated snubber and/or clipping circuits need to be used.


No comments:

Post a Comment

arduino - Can I use TI's cc2541 BLE as micro controller to perform operations/ processing instead of ATmega328P AU to save cost?

I am using arduino pro mini (which contains Atmega328p AU ) along with cc2541(HM-10) to process and transfer data over BLE to smartphone. I...