Continue to Site

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.

  • 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

Status
Not open for further replies.

Kian

Member
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:

**broken link removed**

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.
 
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:
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.
 
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.
 
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.
 
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
 
I like that N channel mosfet. However, I assume the OP wants through hole components which is why I suggested the npn transistor.

Mike.
 
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
 
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.
 
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.
 
Nope. It turns on well when its gate voltage is 4.5V to 10V. Some of them barely turn on when the gate voltage is only 3.3V.
Whoops. I stand corrected. I totally missed that.

Personally, I tend to default to the IRLML2402 for stuff like this.
 
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.
 
A BC817 will work fine. Use a base resistor around 400Ω to ensure saturation.

Mike.
 
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
https://ca.mouser.com/Search/Refine.aspx?Keyword=irlml2402

Might cost more than you want it to though.
 
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.
 
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.
 
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:
 
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.
 
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.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top