Problem driving 3V motors with TLC5940 and transistor

Hi,

I’m trying to drive 16 parallel 3V 120mA motors with TLC5940 in conjunction with 2N2222 transistors and a 3.7V external source but couldn’t get even 1 motor running.

The referenced circuit is mentioned in a TI’s report http://www.tij.co.jp/jp/lit/an/slva280/slva280.pdf on page 5. It suggests an equation for getting value of the resistor between transistor Base pin and VCC in driving a series of high voltage LEDs. I changed the LED definition to MOT to suite motors. Here’s the equation:

( Vcc - Vbe ) / Imot_oc < R < ( Vcc - Vbe ) / Imot_max

Note: It says that OC or overcurrent protection value should be 20% above max current

Motor’s features:

Typical operating current: 100mA
Max start current: 120mA
Max operating current: 130mA
Rated voltage: 3V
Certified start voltage: 2.3V
Max operating voltage: 3.3V

Transistor’s features:

Collector emitter voltage Vceo: 30V
Collector emitter saturation voltage Vce(sat): 0.6V (while Ic = 150mA, Ic 15mA or Ic =500mA, Ib = 50mA)
Collector base voltage Vcbo: 60V
Emitter base voltage Vcbo: 5V

According to the equation I got a range of resistor values from:

( Vcc - Vbe ) / Imot_oc < R < ( Vcc - Vbe ) / Imot_max

( 5 – 0.6V ) / ( 0.13A+20% ) < R < ( 5 – 0.6V ) / ( 0.13A )

28.205? < R < 33.846?

so here are parameters used in the circuit:

R = 31.3?
Vcc = 5V
Vmot = 3.7V
Diode = 1N4001
Capacitor = 0.1uF

Note: the circuit diagram is attached.

Not sure what the problems are, I know there’re a few Arduino threads discussing similar configuration but haven’t found 2N2222 transistor implemented in.

1/a) Is the resistor value I’m using wrong?

1/b) Or parameters relating 2N2222 I’m using are not correct?

1/c) Or is it the problem of the TLC pin sinking current? Since each pin can sink up to 120mA. However, the motor’s start up current is 120mA plus X mA of the transistor while voltage dropping across it. The total current would be 120mA of the motor itself plus X mA of the transistor that exceeds the maximum value of the TLC pin.

Thanks for looking at the problem.

Vcc = 5V
Vmot = 3.7V

That data sheet is all about using a voltage higher than the maximum 18V. You are using just 3V7!

Remove the transistor all together. Replace the motor with an LED, and put a 2K2 resistor in place of the IREF resistor and see that your software works. Then change the IREF resistor to 200R and replace your motor. Note that this current is right on the limit of what the chip can supply, have you done the power calculations to make sure you don't fry the chip?

Thanks for the reply Grumpy_Mike.

Grumpy_Mike:
Remove the transistor all together. Replace the motor with an LED, and put a 2K2 resistor in place of the IREF resistor and see that your software works.

Yes this lights up the LED.

Grumpy_Mike:
Then change the IREF resistor to 200R and replace your motor.

This doesn't turn on the motor but there's 0.36V voltage that drops across the motor.
Do i understand it correctly that this amount of voltage is not enough to turn the motor on?

Grumpy_Mike:
Note that this current is right on the limit of what the chip can supply, have you done the power calculations to make sure you don't fry the chip?

No I haven't.
I'm still not sure how to do so after reading your Power page http://www.thebox.myzen.co.uk/Tutorial/Power.html
Where shall i start?

This doesn't turn on the motor but there's 0.36V voltage that drops across the motor.

If your motor takes 100mA at 3.7V then it has an effective impedance of 37R. If you only have 0.36V across it that implies you are only getting 10mA of drive from the chip. Are you sure you put 200 ohms in the IREF resistor? Have you used the software that lights the LED to be as bright as possible?

I am assuming you are measuring the voltage on a meter, this does not always show up voltage well that is being pulsed by PWM so the reading might be meaningless. You should look at it on a scope if you can. The other thing to try is putting the other end of the motor to +5V.

Where shall i start?

Look at the power formula in the data sheet. It might look intimidating at first but it just breaks down into two parts, a fixed part for the chip and a variable part for each of the loads you are driving.

If your motor takes 100mA at 3.7V then it has an effective impedance of 37R. If you only have 0.36V across it that implies you are only getting 10mA of drive from the chip. Are you sure you put 200 ohms in the IREF resistor? Have you used the software that lights the LED to be as bright as possible?

Yes i use 2 x 100? resistors in a series. The set up is attached.

Here is the code i use:

void loop()
{

    Tlc.clear();
    
    Tlc.set(15, 0);
    Tlc.update();
    delay(3000);

    Tlc.set(15, 4095);
    Tlc.update();
    delay(3000);

  }

I am assuming you are measuring the voltage on a meter, this does not always show up voltage well that is being pulsed by PWM so the reading might be meaningless. You should look at it on a scope if you can. The other thing to try is putting the other end of the motor to +5V.

Yes, you're right i don't have a scope so use a multimeter.
When supplying 5V instead of 3.7V to the motor, it gets 0.52V dropped across. ~14mA is still not enough.
I tried supplying up to 7.4V and it also gets more or less the same ~0.5V. How would that be?

Look at the power formula in the data sheet. It might look intimidating at first but it just breaks down into two parts, a fixed part for the chip and a variable part for each of the loads you are driving.

I'm looking at it now.

Yes i use 2 x 100? resistors in a series. The set up is attached.

Why?
A schematic would be good, but you need to connect one end of the motor to 5V and the other end to your TLC5940 output, no resistors, no transistor.

Yes i use 2 x 100? resistors in a series. The set up is attached.

Why?

I don't have a 200? resistor so use 2 of 100? in series.

A schematic would be good, but you need to connect one end of the motor to 5V and the other end to your TLC5940 output, no resistors, no transistor.

Is the attached schematic correct?
The motor still doesn't run. Measured with a multimeter, it has 0.237V across with 2.5mA current.

IMAG0710_tlc_n_mot.jpg

Remove the transistor all together. Replace the motor with an LED, and put a 2K2 resistor in place of the IREF resistor and see that your software works.

The schematic's attached.
The code works but LED is not very bright with 1.6V voltage across.

IMAG0713_tlc_LED_2k2irefR.jpg

When I say put a 2K2 resistor in I mean in IREF. That is from pin 20 of the TLC5940 to ground. The LED should be wired directly between the 5V and the TLC output pin.

So for the motor it is a 200R resistor from pin 20 to ground and the motor (diode and cap) between the 5V and TLC output.

Hi Mike,

Sorry for responding late. I've just had time to try out the 200 Ohm resistor and now all motors are running perfectly.

Thanks a lot for your help.
s