1
\$\begingroup\$

I am trying to find a way to drive an FIT0441 brushless DC motor at half speed. One way to do this would be supplying a PWM signal with a 50% duty cycle.

However, due to restrictions on this project, I can't use PWM for control, only straight DC voltage.

If I supply a constant 5 V to the PWM input of a motor, it would act like PWM with 100% duty (full speed). If this is the case, would I be able to supply 2.5 V to the PWM input to achieve half speed?

I'm aware that this could impact the motor's torque output and lifespan, but I'm still interested in exploring the possibility.

\$\endgroup\$
5
  • 2
    \$\begingroup\$ the controller is internal. \$\endgroup\$ Feb 7 at 1:32
  • 4
    \$\begingroup\$ probably the PWM input expects PWM input, and 2.5V will be treated as either 100% on or 100% off, depending what voltage the circuit is looking for to see if it's on or off. Note that motors don't have PWM inputs. This is a BLDC motor. Every BLDC motor requires a circuit called a controller or driver (same thing, different word). \$\endgroup\$
    – user253751
    Feb 7 at 9:28
  • 1
    \$\begingroup\$ You are expecting a motor that requires PWM (0 to 5V) to work will also work with a fixed voltage level. I'd think they would say that at some point. \$\endgroup\$ Feb 7 at 15:22
  • 4
    \$\begingroup\$ Curious about why PWM isn't an option. Not criticising you or trying to change your mind or anything, I'm just interested in when that might be a thing. \$\endgroup\$ Feb 7 at 17:47
  • \$\begingroup\$ Use a gearbox on the motor output shaft. \$\endgroup\$
    – Solar Mike
    Feb 14 at 11:36

5 Answers 5

7
\$\begingroup\$

It looks like that is a BLDC with a built-in controller. I notice that one of the pins is labelled 12 V. That is probably the main supply for driving the motor.

You can try supplying 6 V instead of 12 V. This may cause the motor to run at half speed. But it may not work. I am not sure.

You can try supplying 2.5 V to the PWM speed control input. According to one commentator this will not work because it is a logic input. Only an actual logic level PWM signal will be correctly interpreted on this pin. So it probably won't work.

I don't think either of these suggestions will damage the motor, but I can't promise that with 100 percent guarantee.

Or you can find another motor.

\$\endgroup\$
4
  • 3
    \$\begingroup\$ Applying 2.5V to the PWM input will not yield a useful result. It’s a TTL or possibly 5V CMOS input, so it could be interpreted as high (TTL) or indeterminate (CMOS). The Intel 4-wire specification states that a valid low on PWM is less than 0.6V; it’s pulled up to 5V on the fan. \$\endgroup\$ Feb 7 at 20:17
  • \$\begingroup\$ @hacktastical thanks. I edited my answer. \$\endgroup\$
    – user57037
    Feb 7 at 21:26
  • \$\begingroup\$ ti.com/lit/an/scba004e/scba004e.pdf might change your mind about damage to the motor's integrated control circuits. Supplying analog voltage to a logic input is going to end badly. \$\endgroup\$
    – Ben Voigt
    Feb 7 at 23:36
  • \$\begingroup\$ @BenVoigt don't be so dramatic. You can try it for a few seconds and if it doesn't work then you give up. \$\endgroup\$
    – user57037
    Feb 8 at 1:55
5
\$\begingroup\$

XY problem?

First, let's get this out of the way:

If I supply a constant 5 V to the PWM input of a motor, it would act like PWM with 100% duty (full speed). If this is the case, would I be able to supply 2.5 V to the PWM input to achieve half speed?

Nope. Your motor will interpret the 2.5V on PWM input as a logic '1' and run at 100%

Why?

The gear motor you show is a 5-wire type, with a setup similar to a 4-wire PC fan but with an additional direction signal. As such it includes a tachometer output and a logic-level PWM input. 4-wire fans that follow the Intel spec state that PWM '0' is < 0.6V (note also this pin is pulled up internally at the motor to 5V - beware.)

Applying 2.5V to PWM will be interpreted as logic ‘1’, so like the PC fan your motor will be at 100%.

So that’s a nonstarter.

More about 4-wire fans (motor likely follows this spec) here: https://www.electroschematics.com/4-wire-pc-fan/

The right way to control this motor is in fact to use its rated DC voltage (12V), then apply a PWM signal to the PWM line to set its speed. 50% PWM (generated with a 555, say) will give you something in between 0 and 100% of full speed, but not exactly, you will need to adjust your PWM to achieve your target speed.

Related: DC motor speed vs PWM duty cycle

PWM control for 4-wire fan using a 555: 12V to 5V regulator for PWM fan controller

Let’s say you’re stuck with this motor (why?), have to make it work, and you need consistent, repeatable speed. Let’s consider a couple of options.

  • Try to run the motor on variable DC
  • Use fixed DC, and convert the variable DC to PWM

Option 1 has an issue: with any BLDC (or for that matter, any motor) it’s not a given that you can linearly reduce voltage and get a corresponding linear reduction in speed. With the BLDC there will be some voltage at which the motor ‘drops out’, depending on the controller. In my experience with 2-wire BLDC 12V fans that's roughly 6-8V.

But here, this motor is a 4-wire (+ direction) type. It assumes a constant, unmodulated 12V DC supply. On this motor type the PWM chop is applied internally only the coil voltage, not the controller.

Check the data sheet, but it likely needs 12V +/-10% (like a PC fan), so will be even less tolerant of jacking the DC voltage than a 3-wire or 2-wire BLDC type.

In other words, varying DC the rail just isn’t how this 4-wire motor is designed to work.

Again, for this motor, this is also a nonstarter.

Option 2 requires that you supply a constant 12V DC voltage to the motor, use some kind of voltage-to-PWM conversion to drive the PWM chop. There’s lots of ways to do this; many involve using a 555 timer IC.

But let's go a step further. I’m going to infer that you actually care about the speed because you chose a tachometer motor and have DC speed control from your host. So you probably want it to be closed-loop, right?

To achieve a repeatable target speed I recommend using a microcontroller to read the DC voltage, convert that to PWM, then monitor the tach signal on the microcontroller locally to close the loop. Then you have a linear DC to speed control, regardless of load conditions or motor nonlinearities. You have to do a bit of software on something like an ATTiny, but it will work well with less loading on your host.

This gives an example of DC to PWM with ATTiny: https://www.engineersgarage.com/tutorial-7-dc-motor-speed-control-using-attiny85/

Cheap-and-cheerful, look up any of the myriad voltage to PWM designs, then use your host to monitor the tach signal. This adds more load on the host since it now has to dynamically adjust the DC voltage using a control loop.

Another thought: change your gear ratio.

\$\endgroup\$
2
  • \$\begingroup\$ I find it hard to believe that microcontroller to read speed and adjust voltage is viable answer, when 50% PWM isn't \$\endgroup\$
    – Mołot
    Feb 7 at 15:49
  • 3
    \$\begingroup\$ Just fixing PWM at 50% won’t adjust for variations in load or any other motor nonlinearities. So there’s no guarantee that they will get actually half speed, without some sort of loop closure. \$\endgroup\$ Feb 7 at 17:28
4
\$\begingroup\$

You can't supply the PWM input pin with constant 2.5V and expect it to treat it like a 50% PWM signal. The 2.5V level is neither high nor low, so the result will be unpredictable.

However you can power the motor with less than 12V. This will reduce its torque, which will reduce the speed by some amount (depending on your load), but it won't be exactly half.

\$\endgroup\$
1
  • \$\begingroup\$ The PWM may be filtered and sampled as an analog voltage by the controller. I don't know I have never tried it. But it seems possible that it might work to simply send an analog control voltage. \$\endgroup\$
    – user57037
    Feb 7 at 18:09
0
\$\begingroup\$

I came across a similar issue recently. Yes, your motor would work but probably damage it. With a 50% PWM duty cycle, you are still giving it 5V peak voltage, which is the minimum voltage required for the motor to run properly.

I'm not sure how you'd be able to run without a PWM though, do let us know if you figure it out.

\$\endgroup\$
4
  • \$\begingroup\$ I disagree that anything about this setup is likely to damage the motor. \$\endgroup\$
    – Drew
    Feb 7 at 14:52
  • \$\begingroup\$ @Drew: Motor drive (H bridge) FETs really do not like being left in the linear region (partially on). They need either to be fully on, high current and low resistance, making I2R losses small. Or fully off, high resistance and zero current, making I2R losses small. Operating with an intermediate gate voltage gives medium current and medium resistances, dissipating a lot of power in the FET itself and burning it up. \$\endgroup\$
    – Ben Voigt
    Feb 7 at 23:29
  • \$\begingroup\$ If it goes through some logic in order to control the FET gate drive voltage, transition voltages are still bad (but now you'll burn out the logic IC's input buffers instead of the H bridge FETs). ti.com/lit/an/scba004e/scba004e.pdf \$\endgroup\$
    – Ben Voigt
    Feb 7 at 23:31
  • \$\begingroup\$ It's a brushless motor. There's commutation logic in there, not just an H bridge. A signal near 2.5V is very likely to read as "1" but even if it gets read randomly as 1 or 0, it still is unlikely that anything will be damaged. \$\endgroup\$
    – Drew
    Feb 8 at 2:55
0
\$\begingroup\$

As @HackTastical's excellent answer says, this motor has a built-in controller that most likely can't be made to run reliably at half-speed by means other than a valid PWM signal.

But you are also not giving us the full picture - WHY can't you use PWM? Do you not have enough IO pins, timer peripherals on your micro for example, or is it a PCB that's already been made and can't easily be added to?

In the absence of information I'd add to the other answers and suggest a very basic oscillator circuit to give you a 50% PWM waveform you can feed into the motor - you can achieve this with a basic 555 timer circuit, or a couple of transistors & some resistors & capacitors, or with a very small logic gate, or an op-amp, etc. etc. etc. there's a hundred ways to generate a basic 50% pulse train that will easily satisfy this motor's controller.

You need to give us the full information about your constraints.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.