Motor speed control via back-EMF detection

Hi guys, I've been tearing apart a Brother PT-1000 label printer with the eventual goal being to connect it to a desktop PC to print labels for my various component storage boxes. I've figured out how the print head communicates with the controller board, which just leaves the motor drive circuitry.

Naturally, being a low cost device (£15), the PT-1000 doesn't use anything remotely stepper-motor-like for the label feed. Instead, it uses a cheap Mabuchi DC pancake motor (an RF-300C-11440, for which I have yet to find a datasheet) and a speed reduction gearbox. The speed control is performed by a ROHM BA6220 chip.

Ideally I'd like to eliminate the ROHM chip (seeing as it's basically unobtainium) and use a PIC of some description (probably a 12F675) to do PWM speed control of the motor. But first I'd like to understand how the ROHM chip manages to do what it does.

I found a datasheet for the '6220 here:

.. but like most ROHM datasheets, it doesn't say much about the chip, other than that it uses back-EMF sensing and how to determine one of the two external resistor values.

What I don't get is that there's no obvious way for the chip to sense back-EMF. Everything I've been able to find about bEMF sensing suggests that it's normally used with PWM control -- the motor is powered up for a short period of time, then in the off period the voltage across the motor is sampled and used to (roughly) determine the motor speed. Unless it's sensing current, but if it is, the "application circuit" (BA6220 datasheet, Fig. 2, page 2) doesn't look like any current sensing circuit I've ever seen. In fact, it looks like a voltage comparator, but the polarity of the voltage reference doesn't look quite right...

I've hooked the scope up to the driver IC's pins (and the motor itself) and didn't see anything that suggested the driver IC was switching the power on and off. In fact, the voltage remained more or less constant, excepting the ~50mV sine wave (plus one ~200mV spike per cycle) modulation that I suspect is being caused by the motion of the commutator relative to the brushes.

Can anyone shed some light on this?

Like I said, I'm getting rid of this thing anyway, but I'd rather like to understand how the existing circuit works first, if at all possible...

Thanks,

--
Phil.
usenet08@philpem.me.uk
http://www.philpem.me.uk/
If mail bounces, replace "08" with the last two digits of the current year.
Reply to
Phil Pemberton
Loading thread data ...

Its call armature feed back.. DC motors generate energy like DC generators would.. keeping the DC voltage constant under variable loads does not mean the motor will be perfectly stable how ever, it'll come close under normal loading conditions.

All the controller is doing is maintaining the voltage at the desired set point and while the motor is loading on this IC, it simply provides voltage to the motor when needed (under loading conditions) and removes voltage from the circuit when the motor unloads (shaft torque is lowering and DC motor is now producing regenerating energy which adds to the voltage).

formatting link
"

Reply to
Jamie

eventual

with

anything

by a

PWM

chip

other

that

sampled

current,

itself) and

on

the

suspect is

to

year.

The motor current is sensed inside the 6620 chip with a 20:1 current mirror. Though not completely clear because actual components are left out of the block diagram, there are two transistors being driven from the internal amplifier. They are the main parts of the current mirror. The motor current goes to the collector of one transistor and one twentieth of that current flows in the other transistor. The current ratio is established by the mirror geometry from the ratio of collector areas in the chip.

This sensed current with the motor voltage is applied to the internal op-amp in a way that forms a back emf bridge. The bridge subtracts the motor driving voltage from the current generated voltage leaving only the back emf which is proportional to speed. This can be shown with some simple algebra.

This bridge concept allow DC motor back emf and thus speed to be sensed in the steady, DC state.

Reply to
Bob Eld

That's equivalent to driving the motor from a power supply that has a negative output impedance. The negative-impedance supply cancels the ohmic losses in the motor and in theory makes the motor speed independent of load, and dependent only on the equivalent applied voltage.

And ideal, lossless shunt or PM DC motor has perfect speed regulation with a constant applied voltage.

John

Reply to
John Larkin

You put a constant voltage across a dc motor it spins at a speed where the back emf matches the voltage. I suppose you could call that 'back-emf' detection. The problem is additional 'back-emf' from armature resistance which depends on armature current and so motor load.

The voltage across the motor is tapped down by Rs and Rt and the opamp in the chip servos that voltage to be equal to Vref. Additionally the 20:1 current mirror in the chip pulls 1/20th of the motor current through Rt which causes the voltage across the motor to be increased by the amount that current increases the voltage across Rt. If Rt is 20 times the motor armature resistance it more or less matches the 'back-emf' from the armature resistance.

If you are pulling one apart presumably it has one of these chips so why would you want to replace it?

Reply to
nospam

So in effect.. * More load on the motor shaft means more current drawn by the motor (the energy has to come from somewhere).

  • Ohm's Law states that because the current has increased, either the voltage has increased or the resistance of the armature winding has decreased.
  • Assumption: because the drive circuit is holding the voltage steady, the resistance must have changed.

But if the current has increased and the voltage hasn't changed, won't the increased current / reduced resistance balance things out?

But if you're providing a constant voltage, then the current wouldn't matter, would it?

I know the chip is acting as a current amp (first thing I learned about BJTs is that they're current amplifiers -- Ic = Ib * Hfe in an ideal world). So is all the opamp / Vref circuitry really just there to hold the motor voltage steady?

If that's the case, why not just use an LM317 or similar voltage regulator?

Because I can't find the BA6220 in any of my suppliers' catalogues -- it seems to be one of those odd parts that exists, but only in China and the surrounding area...

I'm rebuilding the entire drive circuit for the printer mechanism so I can use it to print labels from the PC; adding a motor speed controller at the same time wouldn't take much longer. I can rig up a PWM controller with a PIC micro and a MOSFET, then monitor the back-EMF with the A/D converter when the PWM output is off.

I think I need to get a couple of motors and a current shunt out of my junk box and do some tests...

Thanks.

--
Phil.
usenet08@philpem.me.uk
http://www.philpem.me.uk/
If mail bounces, replace "08" with the last two digits of the current year.
Reply to
Philip Pemberton

nospam wrote: > > You put a constant voltage across a dc motor it spins at a speed where the > > back emf matches the voltage. I suppose you could call that 'back-emf' > > detection. The problem is additional 'back-emf' from armature resistance > > which depends on armature current and so motor load.

So in effect.. * More load on the motor shaft means more current drawn by the motor (the energy has to come from somewhere).

  • Ohm's Law states that because the current has increased, either the voltage has increased or the resistance of the armature winding has decreased.
  • Assumption: because the drive circuit is holding the voltage steady, the resistance must have changed.

But if the current has increased and the voltage hasn't changed, won't the increased current / reduced resistance balance things out?

But if you're providing a constant voltage, then the current wouldn't matter, would it?

I know the chip is acting as a current amp (first thing I learned about BJTs is that they're current amplifiers -- Ic = Ib * Hfe in an ideal world). So is all the opamp / Vref circuitry really just there to hold the motor voltage steady?

If that's the case, why not just use an LM317 or similar voltage regulator?

Because I can't find the BA6220 in any of my suppliers' catalogues -- it seems to be one of those odd parts that exists, but only in China and the surrounding area...

I'm rebuilding the entire drive circuit for the printer mechanism so I can use it to print labels from the PC; adding a motor speed controller at the same time wouldn't take much longer. I can rig up a PWM controller with a PIC micro and a MOSFET, then monitor the back-EMF with the A/D converter when the PWM output is off.

I think I need to get a couple of motors and a current shunt out of my junk box and do some tests...

Thanks.

--
Phil.
usenet08@philpem.me.uk
http://www.philpem.me.uk/
If mail bounces, replace "08" with the last two digits of the current year.
Reply to
Philip Pemberton

What you really need is what was mentioned before.

BEMF equals the motor speed constant Kv(Volts/RPM) times the RPM.

When the motor runs in motoring mode (driving a load) the DC terminal voltage = BEMF + I * armiture resistance. If the terminal voltage is fixed (volotage regulator output), when the current goes up the I * armiture resistance factor goes up so the BEMF must go down (slows in RPM). If the armiture resistnace is very small, the motor will not change much with load. If hte resistance is high the change will be more dramatic.

A method to cope with this is to adjust the voltage across the motor to compensate for the I*armiture resistance drop inorder to maintain the BEMF and hince motor speed constant. This would appear to be a negative impedance output where the output voltage goes up when the output current went up.

All you have to do is scale the impedance to minimize motor speed vaiations and you're set.

Reply to
Mook Johnson

John Larkin already explained but here is how I think of it (for DC drive).

Model the motor as a battery (back emf proportional to speed) in series with a winding resistance (fixed). The current through this circuit results in a proportional torque.

An ideal motor would have a winding resistance of zero. If you applied a voltage it would accelerate with infinite torque, taking infinite current, until the back emf (speed) equalled the applied voltage. (High quality motors "nearly" do this; you get very high torque and current demand for a step change in applied voltage).

The actual winding resistance means that some voltage is dropped across it when the motor is taking more current (i.e. it is being loaded up). So it slows down proportional to the load. This can be fixed by designing a supply with *negative* resistance, such that it increases its output voltage when the current drawn from it increases. This cancels the effect of the winding resistance and in the ideal results in a constant speed with load.

This circuit shows the principle: .

--

John Devereux
Reply to
John Devereux

The motor is not a resistor it is a voltage generator. It spins at a speed where the voltage generated matches the voltage you applied.

The motor also has some armature resistance which is independent of speed. When load and so current increases the ohms law voltage generated across this fixed resistance is subtracted from the voltage you applied, the motor slows so the generated (back-emf) voltage matches the remainder.

The circuit in the chip increases the applied voltage in proportion to the motor current to compensate for the ohms law voltage generated across the armature resistance. It is a negative resistance circuit where the negative resistance cancels out the speed independent armature resistance.

Reply to
nospam

the

(the

decreased.

the

in

motor

matter,

BJTs

is

steady?

regulator?

seems

use

same

micro

PWM

junk

year.

The motor on the 6220 chip is NOT running with constant voltage as if supplied by a 317 or other regulator. It is running with constant back emf and thus constant speed. The purpose of the 6220 is to sense this back emf and separate it from the supply voltage.

Think of it this way, any DC motor when spinning acts as a generator and creates a generated voltage. This voltage is the back emf and is totally separate and distinct from the forward voltage driving the motor. Therefore, there are two components to the voltage that appears on the motor windings, the forward voltage minus the back emf. The back emf is the one proportional to speed, but you can't get to it directly unless the motor is disconnected from its source.

However, you can get to the back emf by using some algebra and basically subtracting the driving voltage from the total voltage. The 6220 chip does this internally.

If you can't find a 6220 or equivalent chip, you can make your own back emf bridge with several resistors and an op amp arranged to do this algebra and extract the back emf.

If you are interested, I can go into more detail. montassocatyahoodotcom

Reply to
Bob Eld

The only trick is making the negative output impedance match the armature impedance of the motor. I'm sure that there's a bit of tweaking involved in getting the figure right, and in compensating the amplifier so it's stable when you hang a motor off of it, but it's been done for years.

AFAIK this is how the capstan speed of all but the cheapest or most expensive cassette recorders was controlled.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" gives you just what it says.
See details at http://www.wescottdesign.com/actfes/actfes.html
Reply to
Tim Wescott

Oh, you mean they don't use centrifugal contact regulators any more? :))

formatting link
"

Reply to
Jamie

It's pretty simple to do...

formatting link

The tricky part to cope with is the TC of the armature resistance.

...Jim Thompson

--
| James E.Thompson, P.E.                           |    mens     |
| Analog Innovations, Inc.                         |     et      |
| Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
| Phoenix, Arizona  85048    Skype: Contacts Only  |             |
| Voice:(480)460-2350  Fax: Available upon request |  Brass Rat  |
| E-mail Icon at http://www.analog-innovations.com |    1962     |
             
     It\'s what you learn, after you know it all, that counts.
Reply to
Jim Thompson

On a sunny day (Mon, 01 Sep 2008 14:09:09 -0400) it happened Jamie wrote in :

That is exactly what was in the motors. Somebody here? (...) did one of the latest walkman[s], and used a 3 phase motor, driven by some micro or something. As I have one, I can claim that the centrifugal ones worked a lot better. Hmm, maybe I put it in the garbage... mmm lemme see... cannot find it... mp3 solved that problem. Strange, never would have thrown it out without getting that little 3 phase motr out... maybe the jangling sound pissed me of too much ;-) Was it an 'Aiwa?', strange ffwd / reverse mechanics too.

Reply to
Jan Panteltje

If you over-compensate, all sorts of nasty jerky things can happen.

You can also servo off the brush noise.

John

Reply to
John Larkin

mirror.

op-amp

emf

Yep. You make the motor into a VCO. Easiest with Electronically-Commutated... can get nasty with real brushes :-(

...Jim Thompson

--
| James E.Thompson, P.E.                           |    mens     |
| Analog Innovations, Inc.                         |     et      |
| Analog/Mixed-Signal ASIC\'s and Discrete Systems  |    manus    |
| Phoenix, Arizona  85048    Skype: Contacts Only  |             |
| Voice:(480)460-2350  Fax: Available upon request |  Brass Rat  |
| E-mail Icon at http://www.analog-innovations.com |    1962     |
             
     It\'s what you learn, after you know it all, that counts.
Reply to
Jim Thompson

They even did that on record players. Couldn't believe it until I saw it.

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

True.

With the aid of a cheap laser diode, a phototransistor and an oscilloscope, I've measured the motor speed to be around 3000RPM (+/- about 100RPM as the motor load changes). Now I just need to track down a MOSFET and a microcontroller of some description, and rig up some form of speed controller.

Thanks for all your help guys, it was much appreciated.

--
Phil.
usenet08@philpem.me.uk
http://www.philpem.me.uk/
If mail bounces, replace "08" with the last two digits of the current year.
Reply to
Philip Pemberton

With a Mabuchi consumer grade motor? Wow. That sounds like Beluga caviar on a slice of Wonderbread ;-)

--
Regards, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.