I'm attempting to control an automotive solenoid with PWM at 1250hz. At peak, the solenoid draws 3.75 Amps at 14.4 Volts. The specific problem is that any MOSFET that I've tried gets too hot and destroys itself as I increase the PWM frequency. The fastest that I can successfully control the solenoid is 40hz with the BUK9275-100A. I designed a test PCB to isolate the solenoid, CMS04 freewheel diode, MOSFET and MCP1402 MOSFET driver.

Here are the MOSFETs I've tried:


  1. What MOSFET characteristics should I be looking at besides RDS(on) to successfully control this solenoid at 1250hz?
  2. Will I need to move away from the DPAK form factor to control the heat? I have up to 11 sqin of PCB surface to dissipate the heat.
  3. Is there anything potentially incorrect with my PCB layout for the driver? I plan to use the same driver layout for the MCP1402 in the production board.

I've added the schematic: http://www.firepunk.com/albums/About-Me/mosfetbreakout.png


4 Answers 4


Let's first rule out static losses as the cause for your troubles: Your MOSFETs have an on-resistance of approx. 100 m\$\Omega\$ (or something much lower). With a load current of not more than 4 A, the power dissipation for a full (100 %) duty cycle should not be more than

PV, max = RDS, on \$\cdot\$ I2 

PV, max = 100 m\$\Omega\$ \$\cdot\$ (4 A)2 

PV, max = 1.6 W

To adress your question #1: Don't try to use a MOSFET with a super low RDS, on when you don't have to. The low on-resistance comes with the price of a larger gate charge, making it harder for your MOSFET driver to switch it fast. Also, a DPAK should be able to handle the static losses with a PCB like yours (your question #2).

Having checked this, and reading your note on not being able to use more than 40 Hz as a PWM frequency, I suspect something is wrong about getting a clean signal from your µC board to the power PCB (question #3). It could happen that every time you switch on the MOSFET, the ground voltages of your power circuit and your small-signal circuit bounce with regard to each other, causing your MOSFET to switch quite a number of times whenever it should just switch once. How long is the connection between the microcontroller and the MOSFET driver's input? How does the overall supply wiring look?

Edit: Now that things are a bit clearer after you have added your schematic, I feel that your input side (driver IC and MOSFET gate) is in danger. The flyback energy released by the solenoid after switching off needs a place to go. Your paralleled 1 µF and 100 nF capacitors may not be enough, and the voltage may rise beyond the max. voltage allowed as VDD for the IC or as VGS for the MOSFET. It is not clear how long the wire from the next stiff source (read: good capacitor) to your board's input is, and I strongly recommend a large, local electrolytic capacitor (1000 µF, 35 V).

  • \$\begingroup\$ I switched to using the digital signal generator to generate the 1250hz 50% duty cycle signal. The MOSFET doesn't even get warm to the touch and the solenoid pulls 0.87A. The microcontroller connection was a 100mm 22ga wire. The two boards are on the same physical breadboard about 2" apart. They are tied to the same ground rail with 0.5" jumpers. I'm using an Atmega32u4 Breakout Board from Adafruit as the microcontroller. I'll try replacing the controller? I have spares. \$\endgroup\$
    – joefarmer
    Jan 6, 2013 at 21:08
  • \$\begingroup\$ Did you try Dave Tweed's proposed series resistor? One of the differences between your microcontroller board and a signal generator is definitely the output impedance. \$\endgroup\$
    – jippie
    Jan 6, 2013 at 23:51
  • \$\begingroup\$ @joefarmer Also, oscillations on the power side (right part of the PCB in your picture) might be coupled back into the gate driver via the 12V supply rail. Try adding a resistor (10...68 Ohm) instead of the direct connection (break the 12V trace in the corner below the text that says "branodn", and bridge the gap with the resistor). Put something like 10...100µF parallel to C1 and C2 to be sure... \$\endgroup\$
    – zebonaut
    Jan 7, 2013 at 9:50
  • \$\begingroup\$ The problem was with the microcontroller and my understanding of the diode marking. With a new ATMega32u4 and the diode in the correct orientation, the original design works fine. \$\endgroup\$
    – joefarmer
    Jan 16, 2013 at 17:09

Wait... what?

I think of solenoids as on/off devices which operate relatively slowly - 40Hz is already fast for a solenoid, and actually operating at 1250Hz is well into voice-coil actuator territory.

And since they are usually on/off, PWM would seem unnecessary unless you are controlling it proportionally?

Are you really moving a solenoid at 40/1250Hz, or moving it much more slowly with a PWM frequency of 1250Hz? I suspect the answer will become clearer once the problem is clearer. For example, for proportional control you probably need a low pass filter between PWM and solenoid, to prevent the MOSFET driving the inductance directly.

Perhaps a link to the device would be useful. (Sorry to post this as an answer but it's a bit big for a comment)

  • \$\begingroup\$ The solenoid controls a fluid pressure circuit and I'm attempting to control the solenoid with duty cycle which regulates the overall pressure. I apologize for my terminology failure describing this as moving the solenoid at 1250hz. In simpler words, I need to use the solenoid as an electronic 0% to 100% valve. \$\endgroup\$
    – joefarmer
    Jan 6, 2013 at 21:00
  • \$\begingroup\$ So, proportional control, fairly low speed motion, 1250Hz is the switching speed not the system bandwidth. There should be nothing particularly difficult about PWM at 1250 Hz, or about 4 Amps!. It is possible that the difficulty comes from the inductive load. Have you fitted a flyback diode across the solenoid? At this point I think a circuit diagram is essential. \$\endgroup\$ Jan 6, 2013 at 21:07
  • \$\begingroup\$ I've tried two different flyback diodes. The Toshiba CMS04 and a Vishay SSC53LHE3/57T. The CMS04 is in the circuit now and I register a 2.43V spike above the 14.4V input voltage when the solenoid is turned off. Is there a more-suitable diode? \$\endgroup\$
    – joefarmer
    Jan 6, 2013 at 21:35
  • \$\begingroup\$ I never put together the clues until now. Before I switched out the uC for the signal generator, I also swapped the diode orientation. The CMS04 datasheet mouser.com/ds/2/408/1609-46490.pdf says there will be a stripe indicating diode polarity. Mine only had a laser dot near one end. I switched this to the pad connected to 12V in the schematic. I'll go back to the BUK9975-100A and see if it will work at 1250hz now. \$\endgroup\$
    – joefarmer
    Jan 6, 2013 at 22:02
  • 2
    \$\begingroup\$ Seeing the circuit : two observations. (1) I have my doubts about the decoupling capacitors; I'd add something like 1000 uF (possibly 100) in place of C2. (2) I would look for switching transients being picked up on the input signal. \$\endgroup\$ Jan 6, 2013 at 22:19

Your MOSFET may be oscillating on the switching transitions. It is often recommended to put a small-value resistor (e.g., 100Ω) or a ferrite bead in series with the MOSFET gate, placed as close to the gate terminal as physically possible, in order to suppress such oscillations.

  • \$\begingroup\$ Quite likely the reason. Either between the driver IC and the MOSFET, or between the µC board and the driver's input. \$\endgroup\$
    – zebonaut
    Jan 6, 2013 at 14:11
  • \$\begingroup\$ How would I see this oscillation with my scope? Just put the probe on the gate pin? Close to the MOSFET driver or close to the microcontroller? \$\endgroup\$
    – joefarmer
    Jan 6, 2013 at 21:10
  • \$\begingroup\$ Look at the drain terminal; they'll be much stronger there. But they may be in the 100s of MHz, so use a fast scope. \$\endgroup\$
    – Dave Tweed
    Jan 6, 2013 at 22:08

If your main problem seems to be running out of current, you can put multiple MOSFETs in parallel.

Since a MOSFET usually has a positive temperature coefficient, should one of them have a smaller ON resistance than the rest, more current will pass through it. Because of the larger current, it will get hotter, thus increasing its resistance. And so, your parallel MOSFETS will be intrinsically balanced.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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