• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Driving a vibration motor using discrete components

Thread starter #1
Hi all,

I need to drive a small vibration motor. The datasheet is in Chinese but i have translated the specification:

1. Voltage: DC1.5V 3.0V
2. Current: 75mA max
3. RPM: 10000 +/- 2000 rpm
4. Start Voltage: DC0.5V 1.5V Max

I don't quite understand what the start voltage means. In any case, I like to drive this motor with a transistor circuit. I read this design note on using discrete components to drive a vibration motor:
https://www.precisionmicrodrives.co...discrete-driver-circuits-for-vibration-motors

Where they recommended using a MOSFET with the following setup:



I am using VDD directly from 3 x AAA batteries (4.5V) and the PWM signal is coming from a microcontroller at 3.3V. A few questions here.

1. n-Channel MOSFET is active high, so when PWM signal is at logic low, motor does not move. For p-Channel MOSFET, it is active LOW, so my PWM signal needs to be at logic HIGH to turn off the motor. Assuming I am using the p-Channel design, then my MCU PWM pin will need to be constantly high when the motor is to be turn off. Will this increase consumption on the MCU since I am setting the PWM pin constantly high? So it is better to use a n-Channel MOSFET instead?

2. Can I used a BJT NPN instead of a MOSFET? To save cost in the design.

3. Do I need a current limiting resistor between VDD and the motor? Since the motor is rated at 3V max and my supply is 4.5V. How do I calculate the value of this current limiting resistor?

Thanks in advance.
 

dknguyen

Well-Known Member
#2
Not sure what start voltage means. I wouldn't worry about it too much since this is a DC motor but maybe someone knows something I don't.

1. Yeah, use N-channel MOSFFET on the low-side. They are more efficient and there's no reason to go with a PMOS in this case. Also, you might also acidentally exceed the voltage limits on the MCU or on the gate-source voltage using the PMOS. (This is just an arbitrary example: If you run the motor off 5V but the PMOS gate-source voltage max is 3V or your MCU pin can only handle 3.3V max. Overvoltage would ocur on the PMOS gate source when the MCU pulled the pin low and overvoltage would occur on the MCU pin when it was released the pin high.)

1a. The current consumption on the MCU isn't the problem. MOFET gate capacitances draw no current when fully charged up/down. The real issue is that depending on the gate charge of your MOSFET and your PWM frequency, you might want to use gate driver instead of driving the MOSFET gate directly with the MCU. Even though the gate capacitance draws no current when the gate is charged up or down, it takes current to charge up/down that gate capacitance. Less current means longer time to turn on and off which means more heat generated in the MOSFET.

2. Yes you can. Just size it correctly. Unlike the gate resistor on the MOSFET which is optional, the base resistor on the BJT is not optional

3. You have to know the load of the motor when it turns. I would just start at a larger resistance and slowly decrease it and trial-and-error.
 
Last edited:
Thread starter #3
Hi dknguyen,

Thanks for the feedback.

What do you mean by gate driver instead of driving the MOSFET gate directly with the MCU? I need to add an additional component between my MCU PWM pin and the MOSFET?



Not sure what start voltage means. I wouldn't worry about it too much since this is a DC motor but maybe someone knows something I don't.

1. Yeah, use N-channel MOSFFET on the low-side. They are more efficient and there's no reason to go with a PMOS in this case. Also, you might also acidentally exceed the voltage limits on the MCU or on the gate-source voltage using the PMOS. (This is just an arbitrary example: If you run the motor off 5V but the PMOS gate-source voltage max is 3V or your MCU pin can only handle 3.3V max. Overvoltage would ocur on the PMOS gate source when the MCU pulled the pin low and overvoltage would occur on the MCU pin when it was released the pin high.)

1a. The current consumption on the MCU isn't the problem. MOFET gate capacitances draw no current when fully charged up/down. The real issue is that depending on the gate charge of your MOSFET and your PWM frequency, you might want to use gate driver instead of driving the MOSFET gate directly with the MCU. Even though the gate capacitance draws no current when the gate is charged up or down, it takes current to charge up/down that gate capacitance. Less current means longer time to turn on and off which means more heat generated in the MOSFET.

2. Yes you can. Just size it correctly. Unlike the gate resistor on the MOSFET which is optional, the base resistor on the BJT is not optional

3. You have to know the load of the motor when it turns. I would just start at a larger resistance and slowly decrease it and trial-and-error.
 

dknguyen

Well-Known Member
#4
Right now, you plan to connect the MCU pin straight to the MOSFET gate. That means the MCU pin has to provide the current to charge/discharge up the gate capacitance to turn it on and off. Obviously, the current that can be supplied by an MCU pin is limited.

A gate driver is a circuit or IC that is basically a current booster that sits between the MCU and the MOSFET. Allows the MCU pin to drive a larger current into the gate to charge the gate capacitance faster.

Whether you need one or not depends on your circuit. If you aren't doing PWM at too a high frequency you won't need one. If your motor is very small you may not need one. Just try to pick a MOSFET with the lowest possible "Total Gate Charge" and see if you need one to begin with. If you are expecting your MOSFET to noticeably heat up under normal operation, you probably DO need one.

At 75mA...you probably don't need one, but I can't be sure since I don't know your selected transistor or PWM frequency.
 

Pommie

Well-Known Member
Most Helpful Member
#5
With only 3.3V to drive the gate you may have problems getting a suitable mosfet. The ubiquitous 2N7000 has a stated on resistance (RDSon) of 5Ω when the gate is at 10V, at lower gate voltages (3V) this will increase to the point where it will run very hot.

An NPN transistor needs just 0.7V on it's base as it's current that turns it on. A BC337 will handle 800mA and at 100mA has a gain of at least 100. So, a base current of 1mA will turn it fully on. If we use 1.5mA we need a base resistor of (3.3-0.7)/0.0015 = 1733Ω - 1.6kΩ will do. You will need the flyback diode across the motor.

Mike.
 

jpanhalt

Well-Known Member
Most Helpful Member
#6
There is a whole class of mosfets that turn on completely at quite low gate voltages. Here are just two that I have used: FDV303N (N channel), Rds(on) 0.6 Ω @2.7V and STS5PF20V (P channel), Rds(on) <0.1 Ω @ -2.5V.

Just search your supplier for "logic" level mosfets. There are numerous versions with even lower turn-on voltages and are easily driven directly from MCU's.

John
 

Pommie

Well-Known Member
Most Helpful Member
#7
I like that N channel mosfet. However, I assume the OP wants through hole components which is why I suggested the npn transistor.

Mike.
 
Thread starter #8
I am actually looking for a surface mount solution. Its only a very small vibration motor (the ones found in your mobile phone).
The link I posted in the first post actually recommended this MOSFET: MGSF1N02LT1G
 

dknguyen

Well-Known Member
#9
That is a good MOSFET for this application. Almost non-existent gate charge.

Paper napking calculation (i.e. crude) gives me less than 11mW dissipation if I assume 5mA sink/source ocurring at the MCU pin at most practical motor PWM frequencies. It's so low it almost seems wrong to be honest...but 0.075mA is also wayyyyy lower than any motor I've worked with. That's barely 3 LEDs and I wouldn't worry about flashing those extremely fast.
 

audioguru

Well-Known Member
Most Helpful Member
#10
An NPN transistor needs just 0.7V on it's base as it's current that turns it on. A BC337 will handle 800mA and at 100mA has a gain of at least 100. So, a base current of 1mA will turn it fully on.Mike.
Nope. The current gain of a transistor is when it is not a saturated switch and has plenty of collector to emitter voltage. The current gain of a BC337 is spec'd when its Vce is 1.0V. It saturates fairly well when its base current is 1/10th its collector current.
 
Thread starter #13
Its strange that precison micro's application note recommended this part (MGSF1N02LT1G) if it doesn't turn on well at 3.3V.

The IRLML2402 seems to be a discontinued product. Can someone recommend another part? I am looking for something low cost and easily available to be used in a product. Would a BC817 work in this case?

My application doesn't require the motor to turn on very often. Probably for about 10 seconds for 10 times a day.
 

dknguyen

Well-Known Member
#15
Its strange that precison micro's application note recommended this part (MGSF1N02LT1G) if it doesn't turn on well at 3.3V.

The IRLML2402 seems to be a discontinued product. Can someone recommend another part? I am looking for something low cost and easily available to be used in a product. Would a BC817 work in this case?

My application doesn't require the motor to turn on very often. Probably for about 10 seconds for 10 times a day.
Doesn't seem discontinud to me:
https://www.digikey.ca/products/en?keywords=irlml2402
http://ca.mouser.com/Search/Refine.aspx?Keyword=irlml2402

Might cost more than you want it to though.
 

atferrari

Well-Known Member
#16
A vibrator motor as those found in any common phone cannot require 75 mA. If the datasheet says so, the motor is not of that type.
 

audioguru

Well-Known Member
Most Helpful Member
#17
Small radio controlled airplanes and drones use tiny brushed pager motors. A 160mAh 3.2V to 4.2V Li-PO battery powers their propeller for 3 minutes at full power so their current is 160/3= 53.3mA. It might draw 75mA when swinging an unbalanced weight.
 

atferrari

Well-Known Member
#18
Small radio controlled airplanes and drones use tiny brushed pager motors. A 160mAh 3.2V to 4.2V Li-PO battery powers their propeller for 3 minutes at full power so their current is 160/3= 53.3mA. It might draw 75mA when swinging an unbalanced weight.
I recall testing some from discarded phones with the weight. Vis a vis 75 mA, currents were really tiny. Extremely small motors.

The OP reminded me the Extec mobile iron crushers we discharged upriver in Bolivia. :hilarious:
 
Thread starter #19
Thanks everyone for the feedback. I have decided to go with the BC817 because I am using them to drive some 1W LEDs too. It will save on my BOM cost to use the same transistor part number.
 

audioguru

Well-Known Member
Most Helpful Member
#20
A BC337 will handle 800mA and at 100mA has a gain of at least 100. So, a base current of 1mA will turn it fully on.
No, it will not be fully on. The datasheet shows it is fully on when its base current is 1/10th its collector current and shows that its "gain" (hFE) is used when it is an amplifier with plenty of collector-emitter voltage, not when it is a saturated switch. Since the motor draws 75mA then the base current should be 7.5mA.

A BC817 is a BC337 in a smaller surface mount package.
 

Latest threads

EE World Online Articles

Loading

 
Top