1
\$\begingroup\$

I faced a strange problem with the following circuit. The circuit

I'm using some buck converters and an Arduino. The buck converter (Vout = 5.25v) is for a USB charger (up to 2 Amps). Well, I think the circuit itself has no problem, but in fact there is a problem due to electrostatic charges.

Let's suppose that I touch the open-state USB cable with some electrostatic charge (caused by friction of my clothes). Then the Arduino's voltage is influenced in this situation. I coded the Arduino to respond to the voltage fluctuation of the circuit and the Arduino tells me the fluctuation has occurred. If the electrostatic charge is big enough, Arduino reboots!

I know the electrostatic charge causes the problem, but how can I cease the problem? Some intuitions for the solution will be appreciated. This just occurs very few times but I don't like this. If I can do, I want to solve this problem.

  • USB is used with Dedicated Charger Port (DCP) mode.
\$\endgroup\$
  • 1
    \$\begingroup\$ Where are your shield connections and routing? \$\endgroup\$ – Ale..chenski Jan 27 at 9:54
  • \$\begingroup\$ @Ale..chenski The USB is just a breakout board so the port is not connected with Arduino. So that's the all. I'm using USB just for power charger, not communication. Also because I'm using the breakout board the shield is shorted with GND. \$\endgroup\$ – Chanho Jeon Jan 27 at 10:01
  • 1
    \$\begingroup\$ That's where your problem is. ESD flows along your signal grounds and creates "ground bounce". Disconnect the shield/housing from ground and put a separate "shield" wire directly to the negative terminal of your battery. Also, ESD sensitivity has no meaning on breadboard prototypes, because of hairy interconnect. Make your device in compact form first following all ESD countermeasure rules before complaining and wasting your time. \$\endgroup\$ – Ale..chenski Jan 27 at 10:10
  • \$\begingroup\$ @Ale..chenski Actually the 12V supply is the SMPS 220V to 12V DC Supply. Even if the power is not a battery, just connecting the shield directly to the negative terminal of the SMPS would be okay? \$\endgroup\$ – Chanho Jeon Jan 27 at 10:12
1
\$\begingroup\$

The conventional way to deal with externally applied ESD is to protect the circuit with TVS diodes and ESD clamp devices. There are a plethora of these types of devices in the market including a slew of them designed specifically for USB applications.

\$\endgroup\$
  • \$\begingroup\$ In the above circuit, in my thought, the cause of the Arduino reboot is the fluctuation of the Vcc(in USB, VBUS). I searched some protections for similar situation but they were generally for signal pins(D+/D-). I wonder if using the VBUS itself for ESD protection is resonable solution for this. \$\endgroup\$ – Chanho Jeon Jan 26 at 13:15
  • 1
    \$\begingroup\$ Rebooting in your Arduino can be caused by many things. The ESD could be putting glitches on the GND. Glitches could be on the VDD to the Arduino or could even be showing up on the Arduino RESET pin. \$\endgroup\$ – Michael Karas Jan 26 at 13:18
  • \$\begingroup\$ Your answer is right. I hadn't think about other causes. Then, specifically, if the VBUS glithes is the only cause of the problem, then using TVS only for VBUS could be a solution for the problem, right? Also, if the GND is the cause, how can I resolve the issue? \$\endgroup\$ – Chanho Jeon Jan 26 at 13:23
  • 1
    \$\begingroup\$ GND glitch problems come into play when there is impedance between various parts of your grounding system. That impedance could be due to resistance of wiring and inductance of the cabling. The key to eliminate GND glitching between different parts of your system is to lower any impedances in the grounding system as much as possible. That means shorter connections, larger diameter conductors, gathering all GND connections to a common point, and using GND planes or plates as applicable to your system design. \$\endgroup\$ – Michael Karas Jan 26 at 13:38
  • 1
    \$\begingroup\$ It doesn't sound as right answer. First, ESD is 50-100ns event, no arduino can sense this, unless the whole power supply chain is marginally unstable. Second, external ESD goes into shield/housing first, and therefore the first path is through ground network. It is likely that the device has improper shield connection. \$\endgroup\$ – Ale..chenski Jan 27 at 9:53
0
\$\begingroup\$

Use apparel that grounds you before using any kind of electronics. I personally screwed up a monitor while disassembling it because of electrostatic charge.

The easiest thing to do is touching grounded metal pieces every few minutes. If that's irritating, buy an ESD mat to stand on. Also, I bought a device that I can wear on my wrist and attach a wire to a grounded metal. I don't remember what it's called though. I'll update it after going back home.

\$\endgroup\$

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.