3-phase brushless DC motors and voice coil from hard drive

Do you have a question? Post it now! No Registration Necessary

Threaded View

Has anyone played with trying to spin the 3-phase brushless DC motors
from the inside of a computer hard drive?

I have been trying for some time now, and as a hobbyist, haven't had
much luck.
This is about the only resource I've found, but have not had sucess
translating it to pbasic.

I've been able to make a full bridge driver circuit that energizes the
coils in a pattern to get it to spin slowly and jerkily, but when I
ramp up the firing frequency, the motor just jitters erratically.

On another note, I've had fun with the voice coil, but haven't been
able to control it properly either.  Any suggestions?

Thanks for any advice!

- D

Re: 3-phase brushless DC motors and voice coil from hard drive

Quoted text here. Click to load it
Yes, I've tried playing with a hard drive motor.  The last one I tried had a
separate motor control IC on the PCB, and looking up the datasheet for it
shows quite a complex control system.  It's not as easy as firing the coils
in the right sequence like a stepper motor.
IFRC, the IC samples the back-emf from the motor to get feedback on phase
and speed.  It also uses PWM for soft current limiting.
That web page is a bit out of date.  Hard drives have been going faster than
3000rpm for a long time - maybe that means they're more difficult to play
with now!


Re: 3-phase brushless DC motors and voice coil from hard drive

The important thing here is that modern motors are brushless AND

If you have a motor that uses hall effect sensors to detect when the rotor
magnet has moved to the "zero crossing", then it is relatively simple to
design code that will commutate (change drive phase) the motor at the right

To cut cost, the motors are "Y" wound with an added 4th wire to the center.
It is used, along with the unpowered winding, to sense the zero crossing.
The need for  Hall effect sensors is eliminated. To replicate this you need
comparators and mux logic to select the right comparator.

Then there is the speed control problem, which is done with DSP
processors...designed by guys with PHD's. There are motor IC's that do most
of this, but you still have to design the control loop or it will behave in
strange ways.

Hope it helps!


Quoted text here. Click to load it

Re: 3-phase brushless DC motors and voice coil from hard drive

Oh, on the voice coil part..

Two ideas:

1) put a small magnet on the rotating shaft of the voice coil, and use a
Hall Effect Sensor to measure the field. This should provide enough
positional feedback to allow you to servo control the voice coil

2) and optical proximity sensor or interupter could work, but mechanically
it will be a bit more tricky to mount it and find a good target that gives a
linear output.

With PBASIC the control loop may be too slow - the voice coil is designed to
slew end to end in ~ 10e-3 sec, so your loop would need to be ?? 10 kHz???
Can you tolerate an interupt every 100e-6 sec? Adding an inertial load will
slow this down, depends on what you want to accomplish.

I have always wanted to do this with a PIC and assembly language, but have
not gotten around to it. I have a bridge drive IC that I can PWM at 30kHz.
In assembly on a 10Mhz PIC this translate to about 25% of the processor
bandwith to service the interrupt and update the PWM. I have now idea how
often I could do an A/D conversion and calculate the new PWM value - I
suspect it is close to 10KHz. It will be fun to try someday!

Another tip: the voice coil has low friction, so just a few milliamps should
move it, so it could be driven by a CD4049, using 3 parallel sections on
each side and two microcontroller pins. This would be worth experimenting
with, and it will reduce the loop gain, but you won't get much torque.

Good Luck!


Quoted text here. Click to load it

Site Timeline