Brushless Motor Problem

Thread Starter

ljkenny

Joined Oct 26, 2014
9
Can anyone tell me what might be going wrong with this circuit please?

I have created and verified the required 3 phase square wave from the Arduino, but the motor is just vibrating.

I've tried debugging with my oscilloscope, which I'm not an expert with, but to no avail.

Where would I place the probe to see if the correct signal is travelling through the motor windings?

 

MaxHeadRoom

Joined Jul 18, 2013
28,688
Are you using a 3 phase signal or in BLDC mode where any two windings are powered at once?
Where is the motor from and any make/model?
Do you have a circuit?
Max.
 

Thread Starter

ljkenny

Joined Oct 26, 2014
9
Are you using a 3 phase signal or in BLDC mode where any two windings are powered at once?
Where is the motor from and any make/model?
Do you have a circuit?
Max.
Thanks for your prompt reply Max.

I have tried both; one winding at a time and overlapping sequences.

It's a HDD motor that I extracted from an old Western Digital 20GB device.

I'm using this circuit:

So I'm a little worried that I'm using the wrong diodes or the incorrect transistors etc.

Would someone mind telling me how the diodes provide protection in this circuit too -- I'm struggling to work it out.
 

Thread Starter

ljkenny

Joined Oct 26, 2014
9
There looks like many post out there for achieving this, I have never ran a HD motor but it appears to need three sequential pulses and is an Outrunner motor.
Here is a simple example but using a 74164 with a serial pulse in that may help in the trouble shooting.
http://letsmakerobots.com/content/howto-walz-hard-drive-spindle-motor
Max.
I'm not sure this helps. The circuitry is completely different and he's using a motor driver.

The signal he's producing is the same as mine -- I fear it's the components (choice or wiring) that might be at fault.
 

MaxHeadRoom

Joined Jul 18, 2013
28,688
I meant the link to serve as an example of what form of output signal he used to control the motor, it is basically the same method used in RC Outrunners.
Your 'scope signal appears to be very short pulses instead of 100% pulse witdth? And assuming this is a signal of one phase?
Max.
 

Thread Starter

ljkenny

Joined Oct 26, 2014
9
I meant the link to serve as an example of what form of output signal he used to control the motor, it is basically the same method used in RC Outrunners.
Your 'scope signal appears to be very short pulses instead of 100% pulse witdth? And assuming this is a signal of one phase?
Max.
Ah, I see where the confusion is, sorry for the ambiguity.

That's not a picture of my scope. It's a video of a Dutchman who has the same setup as I do.

You asked for the circuit (I assumed you meant schematic). There is a picture of the schematic in that video (I assume you haven't watched it yet).

The signal coming from my Arduino is correct.

I've tried the following 3 phase configurations (all of which are 100% pulse width):

A => B => C


AB => AC => BC


A => AB => ABC => BC => C
 

MaxHeadRoom

Joined Jul 18, 2013
28,688
That diagram is for a conventional BLDC Delta connected motor with commutation pulses rather than the Star or Wye configuration that the HD is.
The HD appears to need energization of the three sequential winding's according to the link.
I believe the correct name for this motor is variable reluctance stepper?
Max.
 
Last edited:

Thread Starter

ljkenny

Joined Oct 26, 2014
9
Okay, let's try to approach this problem in a different way.

I have removed the motor and replaced it with a 1K resistor and an LED in the place of each winding.

There is a probe for channel 1 (yellow) located just after the 3rd winding and one for channel 2 (blue) at the output of the Arduino on it's way to the 1st winding:

NB: Retrospectively I probably should have placed the probes on the same winding, but hopefully this provides enough information regardless.



This is what things look like when no power is applied to line representing the motor's "common" input (channel 1 - yellow - 0V is centred):



First the (what I'm calling) Simple configuration, where the windings are energised sequentially and only one of them is powered at a time (channel 1 0V is now at the bottom of the screen):

A => B => C => A



I have some questions about this:

Why has this ballsed-up the signal from the Arduino?

What are the voltage spikes on the winding?

Next I tried the inverse of the Simple configuration:

AB => AC => BC => AB



This looks a little better; cleaner at least, and the output signal looks a little more sinusoidal. No real questions about this one.

Next was what I'm calling Wave:

OFF => A => AB => ABC => BC => C => OFF



This one looked promising; at least the output (yellow) is starting to look pretty sinusoidal.

Couple of questions:

I'm still not sure why the signal from the Arduino (blue) is affected so? Is there feedback coming through the transistor?

Why are there little steps up, a massive increase to Vpeak, and slightly larger steps down?

In theory the next one should have nailed it. The BLDC configuration looked like this:

AC => A => AB => B => BC => C => AC



The Auduino signal transitions twice during the low phase. Any ideas why?

The output signal looks bonkers. Again, any enlightenment would be gratefully received.
 

Thread Starter

ljkenny

Joined Oct 26, 2014
9
I decided to put the HDD motor back in the chassis and take some readings while the 'proper' controller was doing its thing.

Probes are on 2 of the windings.

This is the reading taken whilst the HDD was powered, but the motor was dormant:



100V?

This is the same reading with the motor running:



The next two images are close-ups of the 'fuzzy' lines when the motor is running:



And:
 
Top