I have a CNC system that consists of a CNC controller connected to a PC via USB. The controller is in turn connected to a stepper motor driver board. My problem is that some time the turning off/on of the stepper motor drive power supply induced larges spikes in the power distribution of the CNC controller, some times to the extent of resetting the system.

When the drives are switched on you can even see the 20khz PWM frequency of the drivers switching on/off on the CNC controllers power distribution as thin voltage spikes. If the drivers board is disconnected from the controller board there is no interference.

I am assuming that since both boards are connected with a common ground that this is the main cause of the induced spikes. Also the CNC to driver interface is via digital isolators, so in fact the CNC board and driver boards are electrically isolated.

I would like to know what I could do to minimize this problem. Any suggestions are greatly appreciated.

The controller uses the USB power supply and is isolated from the drivers. But only when the drivers are connected to the controller do I see noise being injected into the controles (usb powered) power supply.

A diagram to illustrate the architecture:

  • \$\begingroup\$ You say all three items have a common ground, but then you say there are "digital isolators" (opto-isolators?) between two of them. Your question is contradictory and confusing in its current form. Show a block diagram indicating all ground connections, isolation, power supplies, where exactly you see spikes, what resets when, etc. As it is now it is difficult to tell what is being asked here. \$\endgroup\$ – Olin Lathrop Jun 3 '12 at 11:56
  • \$\begingroup\$ Alfredo tells 3 facts: controller power is affected by motor power, controller power shows PWM from motor stage, controller digital part is isolated from power stage. Normal motor controllers are all built like this. The user error is at external wiring level. USB ground wire is first suspect and weakest link, because it is not preferrable way, if controller has isolated Ethernet for example. USB closes ground loop inevitably. \$\endgroup\$ – user924 Jun 3 '12 at 13:16
  • \$\begingroup\$ The controller uses the USB power supply and is isolated from the drivers. But only when the drivers are connected to the controller do I see noise being injected into the controles (usb powered) power supply. \$\endgroup\$ – Alfredo Jun 3 '12 at 21:34
  • \$\begingroup\$ A diagram to illustrate the architecture: link \$\endgroup\$ – Alfredo Jun 3 '12 at 22:19
  • \$\begingroup\$ Looks very underpowered. If you move a 10 lbs telescope with velocity of one rotation per day, then it is OK.But not for CNC. Or may be it is a pocket CNC ? Compare USB specs to motor specs, does the amperage compute ? \$\endgroup\$ – user924 Jun 4 '12 at 12:12

My first knee jerk reaction is that the ground connection between the controller and the motor doesn't belong there. You have a isolator block, which makes sense, but then you defeat the isolation by tying the grounds together.

What is the nature of the STEP and DIR lines to the motor controller, and what exaclty is the isolator block? Most likely the isolators are opto-couplers. In their simplest form, these have floating NPN transistor collector and emitter outputs. If the motor driver has passively pulled up inputs, then tie the isolator output transistors between the motor driver ground and these lines. There are other ways they could be hooked up too, but it makes sense to get into that after you explain the electrical interface to the motor driver and what exactly these isolators are.

In no case should there be a connection accross the isolation.

  • \$\begingroup\$ The isolator is a digital isolator chip (utilizes rf instead of light to achieve isolation). It has two halfs, one power and ground for inputs and another power and ground for outputs. So that the inputs are completely isolated from the outputs. A isolated DC to DC converter creates two isolated power and grounds. So that the motor driver in reality is not grounded to the USB power supply. \$\endgroup\$ – Alfredo Jun 4 '12 at 13:30

To systematically resolve this issue, we need to determine the amount of conducted emissions (CE) from the radiated emissions (RE).

You need to take some differential noise measurements using two matched probes with very short ground clips so that when you invert and add channel B for A-B, the USB cable data will be null. If this is not possible then you have serious radiated noise.

Obviously the ground connection reduces common mode (CM) CE noise but it also induces conducted differential mode (DM) noise via the ground path.

1) Measure two ground noise from PC to CNC then to Driver using coax for the ground lead grounded at PC and centre conductor to CNC then Driver. Look for <100mVpp 2) Measure USB ingress noise from Driver with respect to PC ground. Look for <100mVpp. 3) Measure radiated noise with a shorted ground probe with a ground clip say in a 12" diameter wire loop antenna. This should be < 50mV on spikes.

If the conducted noise exceeds this level you need to isolate the grounds. A large ferrite choke will work in series. If this is impossible because the driver is mains connected to a PSU that is chassis grounded, you need filter this.

No doubt the radiated CM noise is going to be a problem.. You must use a CM choke around all wire pairs of the driver output. These may be expensive and large like those in your video cable. YOu may also need to use twisted speaker cables for the driver wires (18AWG depending on motor current)

All the CNC , pick and place equipment etc I have seen, you these methods.

One last point.. Your isolation is in the wrong place. It needs to be at the load so that the driver has high CM rejection. Since your Opto isolation is far away, it makes your job harder and shielding the cables may be necessary as well as ferrite CM chokes.

Good ruck.


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.