1
\$\begingroup\$

I will be building a circuit to control a robot arm which is not a small toy kit. There will be motion sensors, feedback systems, robot arm controlling modules. So digital signals will be flying all around. The data communication will be over I2C.

The robot arm has 6 servo motors, 2 x Servo 5521MG (Running Current 750 mA - 1.2 A @ 6V), 4 x Servo MG996R (Running Current 500 mA - 900mA @ 6V) and their potential noise concerns me.

I am planning to use separate power sources but ground has to be common to pass the servo control signal.

I found some ideas such as using ferrite on servo cables, opto isolator, which one would be best option?

Which pcb design practices I should follow to prevent noise influence over signal lines?

robot arm

\$\endgroup\$
  • \$\begingroup\$ Perhaps a topology of servos and their type, as well the comm topology would be good to know. \$\endgroup\$ – Marko Buršič Oct 3 '15 at 17:10
  • \$\begingroup\$ @MarkoBuršič adding them to question. \$\endgroup\$ – dvdmn Oct 3 '15 at 17:15
2
\$\begingroup\$

When heading pcb design it is always good to know the interferences. I think in your case a good ground layer on the pcb is important. If the sensors are sensitive then first make two different ground (analog and power ground) and route the pcb. Then connect the two grounds at one place with a ground tie (pcb object with which you can connect two nets); e.g. the power connector. So there will be almost no offset failure because of the high current. Spacial distance also help, when theres a gap or even a gnd route (route between nets is rarely used, mostly on clock signals f>1MHz) between power and analog the interference is even smaller.

You could use optocoupler, it's the philosophy of having the gnd level as wobbly as possible so if one is higher than the other then there would be no interference. I am not a fan of this philosophy, it's only good when you have a connector in an industrial field with norms and discharge tests. When you are afraid of incoming peaks but you don't want to sell your product and don't have to do these tests, maybe use a rc lowpass first, this is more cheap and needs less space. You can start with a zero ohm resistor and if you measure to high peaks adding caps and rise r's.

For high frequeny noise some caps all over the board are always a good idea. Some small caps (~100nF) for decoupling and bigger caps (~47uF) for stabilizing the power outputs during fast changes.

\$\endgroup\$
2
\$\begingroup\$

This is a damn serious question. First, screen all cables. Screening is one single net surrounding all system. Use star connection for gnd. Meaning you either connect all gnd on your power supply (and screening), or each board's gnd to the screening- incase they have completely sepadate power supplies. Carefully check all current return paths. Use optical or othe isolation between digital an power parts of the system. Use common mode filter on power input. And remember, tbere is always something you forgot, so be ready to blood, sweat and tears.

\$\endgroup\$
1
\$\begingroup\$

You could probably get away with just throwing some decoupling caps on ground. Before you start considering some kind of isolation strategy you should set up some kind of test circuit and check for noise with an oscilloscope. Function generators work great for testing servos if you have a few of those available to you.

\$\endgroup\$
  • \$\begingroup\$ I have decent oscilloscope & function generator at home and very good ones at school's lab. I will give it a try, thanks. \$\endgroup\$ – dvdmn Oct 3 '15 at 17:09

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.