Maker Pro
Maker Pro

PCB layout suggestions for DC motor + op-amp

J

Jay

Jan 1, 1970
0
Hi all.

I'm working on a motor servo-loop which uses a 16-bit DAC to drive a
single-supply op-amp which in turns drives a small brushed DC motor (<
20mA @ 12V). The op-amp / motor combo have been tested and work well.

I'm now going to make a few prototypes so I can work on the control-loop
but I'm very worred about the PCB layout. Any suggestions on how to keep
the DAC's GND noisy free from the op-amp / DC motor GND?

Everything I've read tells me that I'll be lucky if I get 14-bits
control of the DAC WITHOUT a noise source like a motor...

Best regards,
Jay.
 
T

Trevor Barton

Jan 1, 1970
0
Hi all.

I'm working on a motor servo-loop which uses a 16-bit DAC to drive a
single-supply op-amp which in turns drives a small brushed DC motor (<
20mA @ 12V). The op-amp / motor combo have been tested and work well.

I'm now going to make a few prototypes so I can work on the control-loop
but I'm very worred about the PCB layout. Any suggestions on how to keep
the DAC's GND noisy free from the op-amp / DC motor GND?

Everything I've read tells me that I'll be lucky if I get 14-bits
control of the DAC WITHOUT a noise source like a motor...

Can you actually get 16 (or even 14) bit's worth of speed resolution out of a
DC brushed motor? I'd be suprised, although I've never tested it, if
you could get anything like that. I reckon you'd be hard pressed to
see a consistent difference in speed between 2 adjacent output values
from a 8 bit DAC.

Does anyone know anything different?
 
J

Jay

Jan 1, 1970
0
Hello,

Actually 8 bits is overkill for a motion control servo loop, and 1 bit
(on-off) is just fine if your loop update rate is fast enough (say 50 KHz
or so) and you dont mind the electrical noise.

Unfortunetly, I do need close to to 14-16 bit control, it's a slightly
atypical motor based servo loop.
Just remember that your motor has variable and unpredictable amounts of
friction in the couple of percent of full scale range, plus cogging which
means that your nice 16 bit adjustable drive signal turns into about a 5 bit
accurate torque out from your motor...

Thanks, I will certainly bear this in mind. The motor I am using has
almost zero percivable cogging torque and the motion is amazingly
smooth.

Any suggestions on layout, assuming I did want to get close to my range
of control?

Jay.
 
P

Peter C. Wallace

Jan 1, 1970
0
Hi all.

I'm working on a motor servo-loop which uses a 16-bit DAC to drive a
single-supply op-amp which in turns drives a small brushed DC motor (<
20mA @ 12V). The op-amp / motor combo have been tested and work well.

I'm now going to make a few prototypes so I can work on the control-loop
but I'm very worred about the PCB layout. Any suggestions on how to keep
the DAC's GND noisy free from the op-amp / DC motor GND?

Everything I've read tells me that I'll be lucky if I get 14-bits
control of the DAC WITHOUT a noise source like a motor...

Best regards,
Jay.

Actually 8 bits is overkill for a motion control servo loop, and 1 bit
(on-off) is just fine if your loop update rate is fast enough (say 50 KHz
or so) and you dont mind the electrical noise.

Just remember that your motor has variable and unpredictable amounts of
friction in the couple of percent of full scale range, plus cogging which
means that your nice 16 bit adjustable drive signal turns into about a 5 bit
accurate torque out from your motor...

Peter Wallace
 
T

Terry Given

Jan 1, 1970
0
Jay said:
Hello,



Unfortunetly, I do need close to to 14-16 bit control, it's a slightly
atypical motor based servo loop.


Thanks, I will certainly bear this in mind. The motor I am using has
almost zero percivable cogging torque and the motion is amazingly
smooth.

Any suggestions on layout, assuming I did want to get close to my range
of control?

Jay.

OK, the PCB layout question:

if you have a 16-bit DAC (and want +/- 1/2 LSB say) with 12V supply, then
1/2LSB = 0.5*12V/65536 = 92uV. You are going to have to be very careful to
ensure that your digital hardware doesnt produce more noise than this on
your analogue output, and the motor/amp will be even noisier. The low-power
analogue DAC circuitry will need to be on its own 0V plane, which connects
to the digital 0V plane at (ideally) one place only. You will have to look
closely at feedthrough, especially if the DAC is sitting on an "active" bus
(eg data bus)....Analog Devices have written plenty of good app notes about
how to lay out this type of circuitry. "ground loops" are your enemy here,
as is temperature. for 16 bits you'll probably need an electrostatic
shield.....

the motor/controller is where you will have real trouble though - apart from
the aforementioned motor performance issues, there is likely to be lots of H
field from the motor/driver/cabling, which any loop antenna will happily
pick up (hence the requirement for a solid 0V plane). Careful attention to
(twisted) cabling, PCB layout, positioning of motor etc. is mandatory, and
it might not be a bad idea to keep your prototype in a diecast metal
enclosure. The logic, analogue and motor power supplies will have to be
connected together at a star-point, and you will have to look very closely
at the dac-power amp interconnection (maybe a differential connection
required)

Once you have dealt with the noise issues, you will need to look at the
temperature coefficients of your circuitry, reference accuracy, drift etc.
If you can get 10 bits you're doing well, 12 is great (not including motor
of course). temperature can be compensated for if you have a micro with a
temperature sensor. ultimately the circuitry only needs to be about 2-bits
"better" than the motor
 
Top