3 phase BLDC motor (servo) help

Discussion in 'General Electronics Chat' started by Drools, Nov 6, 2010.

  1. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
    I have salvaged quite a few of these motors from old DLT tape drives.
    Part Number: PN12-60119-01
    LBT79-002 DC12V 2.5A
    I have found a little bit of info on the motors and I have had one spinning using the following pin out.

    Pin 1 = Motor drive enable 0=Off 1=On
    Pin 2 = Gnd
    Pin 3 = Direction control 0=CCW, 1=CW
    Pin 4 = Output from sensor A 2.5V centre
    Pin 5 = +12V In
    Pin 6 = Gnd (internally connected to pin 2)
    Pin 7 = Output from sensor B 2.5V centre
    Pin 8 = Output from sendor C 2.5V centre
    Pin 9 = +5V In

    It has been mentioned that it might be possible to use PWM to control the speed of this motor, which is my goal.
    However I'm not sure exactly what type of PWM to feed PIN1. All of the information I have found on the net shows a driver and some sort of PID with the Hall sensors feeding the PID and the PID feeding the driver.
    This motor already has a UPC1446C chip which is a "PREDRIVER FOR 3-PHASES BRUSHLESS DC MOTOR". It looks like the upc1246C chip feeds a MP6403 (Toshiba POWER MOS FET MODULE) 3-phase motor drive and bipolar drive of pulse motor - application.

    Here is the question using a PIC or AVR how do I drive this motor using PWM? I hope that maybe I can feed a PID with step/dir commands and in turn control the motor. The board has hall sensors mounted in the proper place, it really looks like most of the driver parts are in place and I just need to proper logic (PWM). I found this site which has a ton of info but all in German and Google Translate does not do it justice. http://translate.googleusercontent....gle.ca&usg=ALkJrhivF9ATAFbJMTUOtgJO8MG2e3ZAJA

    Here is a pic of the PCB with the chips marked.
    Thanks for any help you guys can provide.
     
  2. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    With the info given, you would change the speed by the duty cycle of the PWM on pin 1, the motor enable line.
     
  3. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
    Thanks for the reply. do you know of a simple circuit that I could build to provide the proper PWM?
     
  4. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    You mentioned PIC or AVR in the OP, that would be the lowest parts count way of running several.

    Simple ways would involve more ICs, such as a 555 timer and comparator.

    What is the end application for this? How many motors would be controlled by the one circuit, and what speed range are you thinking of?
     
  5. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
    Thanks again, well firstly I just want to get one motor turning using PWM. Then I want to do some tests on the motor, things like max/min speed, and maybe torque if I can setup some sort of Dyno.
    After this I would like to try controlling the motor from a simple VB app sending Step/Direction signals over the parallel port.
    This is a learning experience for me as I'm aware there are ESCs in sensorless models for $10.00. However controllers for a sensored model are much more expensive. I have done some work programming Atmel Atmega48P/168P chips but I'm not an expert. I have a working CNC that I built using Steppers, and I use this to make my own PCBs etc. I'm even thinking about replacing the board on these motors with one of my own, that would not be too much of a project for me but the electronics on the new board would be a step-up for me.
    I hope I can contribute a working opensource project for hobbyists that come across these motors and want to retask them. These 20/40 DLT drives are quite common. Instead of ending up in a landfill maybe they can contribute to a small DIY project like a CNC.
     
  6. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    From the looks of it, all the input for speed and direction are pins 1 and 3. The actual control of the coils appears to be done onboard, so no need to make a BLDC driver.

    Test this by hooking up V+ and GND to a power supply, then use a 5V signal on a probe to see how much current pins 1 and 3 draw, as this will determine what to use for outputs. My guess is logic level, so a few milliamps. This will also give you full speed.

    Then, since you have spares, use "manual PWM", tapping the enable about twice a second with +5V to see if it turns roughly half speed. Same with direction, but not as quickly. If that works out ok, then you'd only need two outputs on a uC, PWM and Direction.
     
  7. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0

    Thanks for the help!
    I have had the motor turning in both directions by following the pin out in my first post. I made a little test PCB. I put a momentary push switch on pins 1 and 3 with 5VDC feeding the switches. With the switch on pin1 "ON" the motor turned and I was able to change direction with the switch on pin3. I did not like changing direction as the motor kicked quite hard when switching direction as I assume it was turning full speed. I measured the RPM to be ~2.7K.
    I use AVR Studio 4 and I have an AVRisp mkII to program my chips. I have never programmed the PWM modes on my Atmega48 chips but I guess I will be soon :)
    I wonder what kind of resolution the 3 hall sensors will provide. This question will decide the ultimate roll of the motor and if I will need to replace the board with one of my own.

    Just a few more spects on the motor.
    #of poles: 18
    Dia of rotor: 1.8"
    Wire diameter: .028"
    Motor is wound in a Y (wye) configuration. I'm not sure of the number of winds per pole as I would need to disasemble a motor more than I have done. The case is a nice cast Aluminum. The dia of the motor is 3.25". I have not tried to measure the air gap yet.
    If I can get this project working I plan on using pulleys to drive the load. If I'm correct a small pulley on the motor and a larger pulley on the load will give me more torque. Maybe a 4:1 ratio?
     
  8. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
    I tried the Manual PWM but I could not tell if I was having an effect. The motor just seemed to speed up when I pressed the button on the enable line.
    I have been doing some research and I found a document from Atmel, the AVR443 document. It comes with source code written in C but not for the avr-gcc compiler. I have been able to port it over to avr-gcc and get it to compile.
    Going this route is going to mean replacing the existing hardware which I would rather not do.
    What is confusing me on the original hardware is the single PWM input, or Enable line. All of the documents I have read on sensored BLDC controllers show 3 PWM lines going to the motor. I'm wondering if the single input would require 3 different PWM frequencies or they are out of phase 90 drgrees.Just thinking out loud.
     
  9. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    With the results of your test board, did you measure how much current pins 1 and 3 draw? The need to be < 10-15mA to not fry your AVR.

    Also, before reversing direction, you'll want to stop motor first, full speed reversing can create large currents and destroy the onboard driver.

    Othrwise, use a PWM lib or source code for AVR PWM and give it a shot. I think there are some avr guys around that have some canned source code.
     
  10. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
    The current draw at full RPM on pin1 is .445ma.
    When +5 is applied to the rev pin the current draw is 3.44ma of course the current is 0 when no voltage is applied.
    Some canned code for a Atmega48 or 168 would be fantastic if it is available.
     
  11. blind2_man

    Active Member

    May 12, 2008
    33
    1
    In order to have full control of the BLDC motor and to get the best performance from it, you will need to control each transistor of the bridge.
    Suposing that the sensors can be reused from your board and they are HALL, yo.u can experiment diferent comutation, implemented on 16bit/32bit microcontroller or a DSP.
    In case you want some think very simple you should stick to the driver board provided by the supplyer.
    Good luck.
     
  12. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
    I have used DLT in my every day job and if I remember correctly they are variable speed at least they sound like that in operation. However it might just be possible they are all or nothing which would explain the single input ENABLE line. However if this were the case why the hall sensors?

    When I was working on the conversion of the Atmel C code I found an interesting PDF online. It is a thesis done by an Aussie, his work is directly based off the Atmel 443 PDF. His code is a conversion of the same code I was working on. I complied it successfully and I suspect it works properly. It is a good read and might be helpful to others tinkering with BLDC motors.
     
  13. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    If you have several of them, and hey are available to you as "junk surplus", it couldn't hurt to try PWM with one of them. It should work, having an English datasheet would help.
     
  14. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
    I have 6 of them, well 5 in original condition and 1 that I have tinkered with. I have several more complete DLT units at my disposal if I want them.
    When you say "try PWM on one" what freq etc of PWM should I try? The code that I have been working on is for a complete solution PID and driver. I wonder if someone has a PWM code example for an m48?
     
  15. thatoneguy

    AAC Fanatic!

    Feb 19, 2009
    6,357
    718
    The frequency of the PWM is what will need tinkering. Start at around 20kHz or so, if that doesn't work, lower it until it works (or not)
     
  16. Drools

    Thread Starter Member

    Jan 6, 2009
    18
    0
Loading...