Mystery Stepper Motor

alband

Senior Member
Hi all,

This is for the same projects as a previous thread about PS/2 optical mouse. As before, I don't want to give away many details of the project because it might actually be valuable. I'd love to tell, you though, I'm quite pleased with an idea and we all know how that feels!

I've got a stepper motor I need to control, and it has to be that particular one because: 1) it's part of a gear train which has a very nice but unusual worm gear which I need; 2) it's nice and small. It's actually from a PSP disk laser drive unit.

I don't know what the correct names to describe the stepper are, but I've figured out how it works. I've attached two images. The first is a schematic of the motor. It has 4 wires controlling it, call them "1,2,3,4". It has 6 coils, in 3 pairs. One end of each of these pairs are tied together on wire "1" (at the bottom of the image [1] ). The other end of each of the pairs is connected to one of the other wires "2,3,4". So it is possible to excite any coil pair by putting wire "1" high and one of "2,3,4" low (or visa versa).

Around these coils is the moving part, which is a shell (cross section shown in schematic), which is magnetised with 5 poles. In the schematic, red = north, blue = south.

The second image shows the sequence to rotate one step. The red line represents the currently active magnetic attraction. I believe it sort of works like a variable reluctant motor - the rotation of the coils excited is the revers to the rotaion of the shell. But the shell IS magnetised. Sticking with the pin names 1,2,3,4, one step clockwise would look like this electrically:
Code:
[U]1  2  3  4[/U]

1  -  0  -
1  0  -  -
0  -  -  1
0  -  1  -
0  1  -  -
1  -  -  0
Obviously, I'm trying to figure out how to interface with it.

Firstly, is there any way of working out what kind of current/voltage it's designed to take? The PSP it came from ran on a 3.6V Li-ion, but that's little to work with. The resistance of each coil pair is about 4 ohms. 3V seems to be the lower limit to actually make it move. That's (a rather large?) 750mA. The motor is only about 1cm diameter - the coils are small.

Secondly, are there any driver chips that exist for this type of motor? I've asked digikey and they've never heard of anything like it. I wondered about using a standard dual H-bridge. Normally, a dual H-bridge would have 4 outputs to control two coils, call them coil 1 and 2, so the four outputs would be 1A, 2A, 1B, 2B. Normally it would be connected as attachment 3 Fig.1. Could it instead be attached as in Fig.2? It would mean that 1A would need to be able to sink and source 1B and 2B, which it wouldn't normally be designed to do. Would this kind of use break it?

I also have some quad op amp lying around (AZ324, similar to LM324). Might that work? Just for simple high/lowing the required wires at the right time. Problems I see with that idea are that (again) it's not designed for that, and I would need to be able to have unused pins floating, which isn't possible with an op amp.

As always space is a premium so single (small) chip solutions would be best.

Thanks greatly in advance as always.
 

Attachments

alband

Senior Member
I've searched digikey for 3-phase stuff, but nothing fits the bill. It seems regular 3-phase steppers have no need for "wire 1", where all the coils join, as the magnetized rotor has fewer poles.

I need some way of turning a PICAXE high-z/1/0 into a port that can do nothing/source current/sink current respectively. My original question about whether a standard Dual H-bridge can be safely "cross wired" still stands. To re-phrase: Is it possible to wire the different H-bridges of a dual H-bridge to each other so they can sink/source each other? (Normally each of the H-bridges would have it's own coil and would only control that).

Also, found out that the schematic of my motor is slightly different, but it doesn't make much difference. Basically one of the coils is physically reversed. This would be the amended sequence for a step, and attached is the ammended schematic:

Code:
[U]1  2  3  4[/U]

1  -  -  0
0  -  1  -
1  0  -  -
0  -  -  1
1  -  0  -
0  1  -  -
Really could use some help with this otherwise I'm just confined to expensive guesswork.
 

Attachments

alband

Senior Member
Discovered the chip that controlled the motor while it was in the PSP is this. (eventually worked it out based on the icon and number of pins, markings were no good).

This has left me slightly confused though. I've still got more reading to do so may work it out but from what I've picked up so far the common terminal for the coils is only used in comparitor circuitry and is not actually powered. I don't really know what the comparitor side of things is for, but I'm guessing it's a way for the master CPU to tell what position the motor is in and therefore when to change to the next step.
Also, this means that the coils are excited two at a time. This can still mean the pattern I had previously worked out applies, but the points on the central hexagon would represent the average direction of the magnetic field caused by two sets of coils.

The other thing I don't quite understand is why the driver outputs PWM instead of "high". "Table 7" on page 11/12 shows what output states are possible, and each one is a combinations of Low/PWM/High-Z. Presumably current would flow from the PWM to High-Z. My guess as to why it's PWM, is that it's being used sort of like the clock on a serial line to "clock in" each combination of pin states with power.

I was intending to use this stepper for absolute positioning, but I'm starting to wonder whether I'll be able to drive it at all.
 

SAborn

Senior Member
3 phase motors are tricky to drive and not so good for absolute positioning, but are better for high speeds and why they are used in things like PC fans, hard drives, video heads, etc.

It all come down to what you need to get from the motor, but one rough method of driving it is to connect the star wire to V+ and using transistors or mosfets switch V- to each coil in turn, in much the same way as you would a unipolar stepper motor.
This method will result in lower torque, and perhaps bigger steps, but if you have the coil order or sequence right it should drive the motor, by changing the sequence will reverse the direction.

Most 3 phase motors also have hall sensors to monitor the phase conditions of each coil group.
 

oracacle

Senior Member
have you perhaps looked at using a PC DVD RW drive instead, i have just used one to make a macro rail. they use a bi-polar stepper motor (easy to drive) and have the nice worm drive and carriage assembly. but i do not know if this is going to be to lage for your project.
 

alband

Senior Member
have you perhaps looked at using a PC DVD RW drive instead, i have just used one to make a macro rail. they use a bi-polar stepper motor (easy to drive) and have the nice worm drive and carriage assembly. but i do not know if this is going to be to lage for your project.
Sorry, missed this reply. Limiting factors for my design are the diameter of the motor and length of the worm gear. Gear needs to be shorter than about 3cm, motor dia. needs to be smaller than 1cm (maybe a touch bigger, but that's the really difficult one). How big was the stuff you found in your's roughly?

Thanks to another thread and the help of SAborn and Westy, I've got my motor on the bread board. I've got the bottom 6 pins of portC on a 28X2 as my outputs in use. Those 6 pins are driving 6 transistors, each through a 1k. The pins on the left (C.1-C.3) are driving BC327 PNP's and the ones on the right (C.4-C.6) are driving NPN's (2x BFY51 and one 2N2222A - I broke a BFY51 :( ). All those transistors have a max collector current of over 800mA.

The six transistors are arranged in 3 half bridges as show in the attachment. I've made a ~2.6V supply using a AP1117E33G 3.3V regulator + 2 diodes. The regulator claims 1A output and when I measure the current from it with multimeter, it shows 0.97A. That's with no load (multimeter as load). When I measure the current with the motor going, it measures about 0.2A and there's a significan voltage drop. If I connect an LED accross one of the coils, it flashes when that coil is switched on, but doesn't stay lit. I'm thinking from this that the load of turning the rotor initially increases the resistance of the coil, decreasing the current draw, so there isn't a voltage drop so the LED lights. Then, when the rotor is in place, there is less load, so the resistance of the coil falls, so current goes up, voltage drops and LED goes out.

I don't understand why there seems to be too much current draw though. The coils are about 4ohms (without magnetic rotor attached) and because two sets of coils are being driven at a time, it's an 8ohm load. So with 2.6V / 8ohm, it should only be 0.325A, which is well bellow the regulator's rating, and the transistors rating. So I don't understand why it's acting as if there's too much current draw, pulling the voltage down.

I'm also having problems with the sequencing, but I think the circuitry and power needs to be sound before these problems can be addressed.

What do you guys make of my circuit diagram? (drawing quality aside!) [1],[2],[3] represent the three terminals of the stepper I'm trying to use. I don't know where they are in the motor, but from what I can make out, it shouldn't matter.

This is my code, but for the moment, I don't think that's relevant. The code is changing a lot too as I'm trying different things to make it work. Gives an idea though:

Code:
sertxd ("Start")
let dirsC = %11111111
let pinsc = %00000000
'high C.0
main:
let pinsc = %00101000
pause 1000
let pinsc = %00100010
pause 1000
let pinsc = %01001000
pause 1000


pause 500
pulsout B.0,500
goto main
There's an LED on B.0 for debugging.

Any help would be hugely appreciated!

Thanks,
David.
 

Attachments

SAborn

Senior Member
I think your coil sequence in program might be wrong, and perhaps missing a few coil sequences (program output states).
Have not given it much thought but my gut tells me there should be six sequences.
 

alband

Senior Member
Indeed there should, that particular code was trying to test "what comes next". The first two seemed good, but out of the other 4 combinations, none seemed to follow. The code gives the general idea of how I'm driving/switching it all.

Thanks,
David
 

oracacle

Senior Member
motor is about 15mm in diamete and screw is 55mm long, but i would think you can cut that down witha dremel or something
 

alband

Senior Member
Thanks for replying.
That's interesting. I've measured and 15mm would be a squeeze. I've got a 15mm gap into which i need to put a bracket that can move, onto which the motor would be mounted. At this point I'd prefer to keep trying with my stepper. Though the fact that your experience with a DVD drive motor, is that it is that small, suggests there might be others out there with perhaps slightly smaller motors. So definitely another line to pursue. Thanks :)
Has anyone got any idea whether the circuit diagram i posted should work?
 
Top