Getting the 5-phase stepper to run.

Recently I bought three stepper motors from a junk seller in ‘armour street’. It costed me Rs. 300 each. The labels on these motors were almost unreadable, but since I selected all three motors of the same type I was able to put the remaining contents of the labels to find out about the motors.

The labels stated the following.

5-PHASE STEPPING MOTOR
A5729-9115FV
DC 2.0A 0.347 OHMS / PHASE
0.72 * / STEP
FC6-0435 02
ORIENTAL MOTOR CO LTD

Each motor has 5 wires coming out, and by disassembling one motor I found it was wound in a penta wiring (All coils are connected end to end to form a pentagon).

The next job was to get the motor to spin. I searched the web for an appropriate controller but couldn’t find any that satisfied my need. So I decided to build my own.

I found the energizing sequence here.

I thought of using a PIC16F84 (since I had experimented with this chip and had one in my parts box) as the controller and five IRF540 s and five IRF9540 s as the driver MOSFETs.

I wrote the following code in C in order to spin the motor in a single direction. (My intension was to some how get this motor working)

#define __16f84

#include"pic/pic16f84.h"// Set the __CONFIG word:

typedef unsigned int word;

word at 0x2007  __CONFIG = 0x3ffa;

const unsigned int excitations[] = {22,18,26,10,11,9,13,5,21,20};

signed char excitation_index = 0;

 void forward(void){

 // increment the index;

 excitation_index++;

 PORTB = excitations[excitation_index%10];

}

void main(void) {

 TRISA = 0x00;

 TRISB = 0x00;

 PORTA = 0x00;

 PORTB = 0x00;

 T0CS = 0;

 T0IE = 0;

 GIE = 0;

 PSA = 0;

 PS0 = 1;

 PS1 = 1;

 PS2 = 1;

 T0IE = 1;

 GIE = 1;

 while(1){

 	// increment port a to indicate that the chip is doing it's job.

 	PORTA = PORTA + 1;

 }

}

void intr_handler(void) interrupt {

 T0IF = 0;

 GIE = 0;

 forward();

 GIE = 0;

}

I used the SDCC compiler for GNU/Linux to compile and used PIKDEV to burn the hex file to the chip. PIKDEV failed to verify the chip after burining the hex, so I switched to Windows and used ICProg to burn the chip which was successful.

The following is the basic driver schematic I used to run the motor.

Schematic

The Port B’s B0-B5 are connected to 1-5 in the diagram respectively. The motor connects to A,B,C,D,E points in the schematic.

I setup my proto board and powered it up with a 300mA power supply. It didnt work as expected. The motor kept vibrating without turning. After hours of checking what was wrong I figured out that the power was not enough to drive the motor.

Then I used a 1000mA 12V power supply to power the motor and the 300mA 12V to power the uC board.

The motor started to spin with very low torque and very low speed. Also about 2 of the IRF540N s were getting hotter than the others. The investigation is pending.

I think thats because there is no PWM used in this driver. Planing to add a PWM to this driver as the next modification.

By the way I destroyed 2 PIC’s in the process, one by applying 12Volts to PORTB and another by burning the hex file on to it too many times. ( I had used it for about more than a year and I suppose it went out of the maximum number of times it could be reprogrammed ). Any way I finally got the 5-phase to run. 🙂

See it working in the following video. Sorry about the very bad quality.

22 thoughts on “Getting the 5-phase stepper to run.

  1. I also have 5-phase penta wired steppers. Mine are larger, I think — 1.4 A and 0.7 ohm. I am hoping to build a controller able to drive these as well. So far I’ve not built a single thing, but am about to order some transistors and misc bits to try to come up with something useful.

    Any recommendations on how to do this, ideally using a PC power supply? 3.3 V or 5.0 V lines can easily provide the current I need to drive three of these, and if not, I can drive a few at a time, turning the others off fully.

  2. very interesting. i also have one PMM33BH2 5phase stepper motor. but i still cant find driver IC for the driver circuit. could you pls help me?
    thx

  3. I designed my controller by going through several designs of 3phase bldc controllers, and 5phase exitation documents. I have not found a single IC that would do the job in the fly, but the PIC and the MOSFETS are doing fine, exept for the initial build cost. 😀

  4. Hi ravith,
    I am still confuse with your schematic on 5 phase stepper driver.
    Btw, I have not try or simulate it. But, is that true, you connect 4 pins source of IRF540 to PORTB.3 of uC?

  5. i think all the n-mosfet source in the basic driver circuit should go to vss and the all the p-mosfet source to vdd

  6. hi ravith,
    long time since u posted this drive but actually i am starting to build a cnc mill using the vexta 5 phase steppers…i understood the driver circuit and thanx for that.
    but would really appreciate if u guide me whether it was possible for u to drive the 5 phase steppers from the controlling software(mach3/emc2,etc) and secondly whether it is possible to drive the same motors from avr atmega16 by changing reistances etc.
    thnx

  7. @maaz,

    My CNC project is still on hold, because I haven’t had time to put in to it. If you map the Parallel port pins correctly to your uC and have the software on the uC correctly setup, it should work.

    Regards

    Ravith

  8. thnx for replying =),
    while trying to make your circuit with an atmega16 some queries came…
    1) first of all u have used 1000ma 12 v power supply for motor while it needs 2A min.(mine needs 3A)?wont the high voltage corrupt the motor…
    2) how r u driving the mosfets directly from controller?as it can only supply 5v……..
    3) lastly what is the vss in mosfets?-vdd or ground…..
    would appreciate u taking some time out…

  9. @maaz,

    My controller is not very good, and has lot of glitches as there is no mosfet driver stage and mosfets are driven directly by the uC which is not the best way to do it.

    See the comment by nastelroy, he has a better controller which he has built and tested.

    Regards

    Ravith

  10. Hello,

    Your blog is very helpful. I am going to use your idea for 5 phase circuit but I am still confused on how you decided to use a 12V supply and the use of the IRF540? Could you possibly use a smaller supply with logic level MOSFETS? (the use of 5 phase motor is to hold a small platform in vertical direction) Im confused on how to pick a supply and proper MOSFET and how to limit current into motor below .75A per phase

Leave a reply to Agreefshege Cancel reply