I am back with my brushed DC motor PWM project.
From all the previous replies I got, I've settled with and built a simple one MOSFET circuit as follows:
- The motor is a LEM130 from Lynch Motors (about 2kW and 50A rated power/current at 24V from the datasheet): https://www.lynchmotors.co.uk/pdfs/lmc-lem-130.pdf
- U1 is an IRFP2907 power MOSFET: https://www.infineon.com/dgdl/irfp2907pbf.pdf?fileId=5546d462533600a401535628b2d51fe8
- D3 is a VS-100BGQ10 Schottky diode: https://www.vishay.com/docs/94581/vs-100bgq10.pdf
- Motor snubber is a bunch of capacitors and resistors of different values (don't know if pertinent to list everything here)
- 12V battery for control circuit is a lithium battery
- 24V battery for power circuit are 2 lead acid batteries in series
I already tried the circuit before with C1 at 100 nF, which gave a PWM frequency of about 150 Hz. The whole PWM duty cycle range worked but the motor still spun even at the lowest duty cycle, the range was not linear and there was a lot of jerking in the motor.
I then read on the internet that my PWM frequency was likely too low. I opted to raise it to 2 kHz by replacing C1 with a 6.8 nF capacitor. I calculated that the dead time for the MOSFET would be about 1.2% of the total period at 2 kHz, which is still fine in my opinion. I confirmed this with oscilloscope measurement.
I tried my circuit again: no more jerking and a more linear range but at low PWM duty cycle, I can hear a worrying high-pitched whine (close to 2 kHz noise) coming from the circuit itself (not from the motor). I don't know if it comes from the 555 circuit or the MOSFET.
The very strange thing to me is that the whine lasts for a few seconds before the motor jumps instantly to somewhere in the middle of the PWM range. This happens reliably whenever I go to the upper PWM range and then go back down, as if there was some non-destructive avalanche breakdown of a component happening somewhere.
Here is a video of me testing the circuit; you can hear the whine and see the motor "jumping" to the mid speed range: https://drive.google.com/file/d/1f0vSzAntd52sPCEY5sCrNHMPXRk4C7YQ/view?usp=share_link
Please tell me if you know what's happening here, because I have no idea. I must have a missed an important detail I am not aware of.
On a maybe related note: after testing the circuit for a few minutes, I noticed the MOSFET heatsink was slightly warm, which wasn't the case when I ran the circuit at 150 Hz. That's to be expected as higher frequency with the same driving current means longer dead time for the MOSFET relative to the period, which means more heating.
I was wondering if driving the MOSFET from the 555 alone wasn't fast enough at 2 kHz. Maybe I need to use a CMOS 555 and put a proper driving stage between the 555 and the MOSFET gate? This would greatly reduce the gate charge time and hence the dead time. Maybe it would help the circuit run smoother?
If you think this would help, could you please recommend some parts for the driving stage?
P.S: Maybe I need to add a pulldown resistor for the MOSFET gate?
EDIT:
I've just ran the circuit while probing the 555 output (MOSFET gate voltage) and here is a video of what it looks like : https://drive.google.com/file/d/1f5-YWdOZ2zK52ZtLsc2__DINoROPSHKs/view?usp=share_link
It looks nothing like the open circuit 2 kHz square waveform. It looks like a ~100 kHz signal that varies with the motor speed. It should stay similar to the open circuit waveform, right?
Is this because there is no pulldown resistor? The gate picks up parasitic voltage from the power circuit?
Also, the whining does come from the motor when at minimum PWM duty cycle, not from the components.
The MOSFET was burning hot this time, I think this comes from the "whining" low duty cycle position, as the MOSFET is not fully off when it is supposed to, dissipating way too much current.
Any pulldown resistor value you would recommend? I would guess 10 kOhms is fine.
I'm really starting to think a proper driving stage might be necessary for the MOSFET heating issue.