Peltier PWM Temperature Control: MOSFET RC Snubber

The MOSFET resistance tester I’m twiddling up for my next column will hold the transistor-under-test at a more-or-less constant temperature using a PWM-controlled Peltier module. The Peltier driver looks like this:

Peltier Driver
Peltier Driver

The overall idea is that the relay selects heating or cooling and the MOSFET PWM adjusts the power to keep the module at the right temperature. The feedback comes from a thermistor epoxied to the aluminum block holding the MOSFET, which in turn is epoxied to the module and then to a CPU cooler with a fan. More on that later…

Those fat lines mark the high-current paths: 3.3 A with a 5 V supply, as this Peltier module has about 1.5 Ω resistance. Some early tests show the resulting 17 W can pump the test block down to at least 5 °C and up to at least 40 °C in a few tens of seconds, even without any significant PI (no D) loop tweaking.

When I fired it up a test program that just cycles the PWM up and down, the green LED lit up properly in cooling mode, but the red LED also glowed dimly. Probing the drain showed this nasty ringing when the IRLZ14 MOSFET turned off:

Peltier Turn-Off Transient
Peltier Turn-Off Transient

The initial spike happens when the drain current pushes the MOSFET body diode into reverse breakdown at about 70 V (off scale high in the image). The drain goes slightly negative for the next half-cycle as the diode slams into forward conduction, then the energy engages in some serious 5 MHz ringing while it dissipates in the Peltier’s resistance.

Obviously, this is a job for an RC snubber

A bit of fiddling revealed that a 1.5 nF cap dropped the ringing to 2.8 MHz and a 2.5 nF cap put it at 2.4 MHz:

Peltier Drain - 2.5 nF
Peltier Drain - 2.5 nF

Notice that just putting a capacitor across the MOSFET doesn’t reduce the ringing. What’s needed here is some additional energy dissipation.

Splitting the difference says 2.3 nF would reduce the resonant frequency by a factor of 2, so the original stray capacitance is about (2.3 nF / 3) = 770 pF.

Knowing the resonant frequency and stray capacitance, the stray inductance falls out:

L = 1/[(2∏ 2.5x106)2 770x10-12] = 5.4x10-6 = 5.4 µH

The Peltier module doesn’t have nearly that much inductance, so it’s hidden in the wiring and relays.

Knowing L and C, the characteristic impedance of the circuit is:

Z = √(L/C) = 84 Ω

The snubber cap should be at least a factor of 4 larger than the stray capacitance, which gives 3 nF. Some rummaging produced a small 3.9 nF 100 V Mylar cap (measuring 3.7 nF, close enough) and an 82 Ω resistor, which gave this pleasing result when soldered across the MOSFET source & drain:

Peltier Drain - 82 ohm 3.9 nF snubber
Peltier Drain - 82 ohm 3.9 nF snubber

The upper trace shows a pair of 32 kHz PWM pulses. The lower trace gives a magnified view of one pulse; the peak remains at about 70 V just after turn-off, because that 3.3 A must go somewhere: that’s why MOSFETs have husky body diodes with reverse-breakdown specs.

A better view of the snubbed peak shows it’s all over in about 400 ns:

Peltier Drain - 32 kHz PWM snubbed - detail
Peltier Drain - 32 kHz PWM snubbed - detail

The lower trace is the MOSFET gate drive pulse at the Arduino pin, showing the Miller capacitance delaying the transition. It turns out that removing the 22 Ω gate damping resistor doesn’t improve things, but, given the speed of the transition, I think it’s good enough.

The MOSFET burns at (3.3 A × 70 V) = 230 W during that 100 ns peak, which works out to a mere 23 µJ (assuming constant current, which isn’t the case). The IRLZ14 has a 40 mJ single-pulse rating, so it’s in good shape.

The DC dissipation is (3.3 A)2 x 20 mΩ = 2 W: the huge heatsink I stuck on the MOSFET doesn’t have a chance to get warm during the short tests so far.

The red LED remains dimly lit, which goes to show how sensitive a human eye can be: the negative transient is barely 100 ns long!

10 thoughts on “Peltier PWM Temperature Control: MOSFET RC Snubber

  1. One solution to prevent the far-from-ideal bodydiode from conducting would be to put a diode in series with the drain, and then to put an antiparellel-diode over the combination of FET and diode; i.e. diode with A to gnd and K to the anode

    Another solution to reduce ringing would be to not drive the gate so fast. A mellower gate-drive pulse (say, 1us risetime at 100 kHz switching frequency) may take a lot of the sting out of it. In theory it would increase power dissipation in the FET, in practice it may not be much of problem.

    I used both in my induction heater with good succes.

    1. prevent the far-from-ideal bodydiode from conducting

      Ah, but that energy must go somewhere! Either it burns off in the body diode (which is specified for exactly that duty) or it sloshes back and forth through the Peltier module. In this case, adding a matched resistance in the snubber dissipates it as quickly as possible after the first two passes through the body diode.

      in practice it may not be much of problem.

      In this case it doesn’t matter: 32 kHz PWM doesn’t pose much of a problem. Those MHz-class switching regulators have a real problem: blazing fast transitions and low transients.

      1. Is that body diode really specified for that duty? I thought it was just an intrinsic diode… inherent to the design/building of the FET…. and that *sometimes* it’s rated for that duty (with avalanche energy specified in J or charge in Coulomb), but not always….

        Had a quick look for the site that alerted me originally to that idea; here’s the link (section ‘beware the MOSFET body diode!’):

        But again, it has little to do with the actual ringing – more with the parts that have to dissipate the energy…. still, the link might interest you.

        1. Is that body diode really specified for that duty?

          The diode is there whether you want it or not, but at least for power MOSFETs it’s specified for use as an energy dump.

          You can certainly improve on it, but that depends on the situation. Adding a series Schottky diode can pose a problem in a high-current circuit where you really don’t need another few watts of dissipation.

          With the circuit as shown there, unless they’re paying attention to dumping the inductive energy, the drain voltage will rise until something breaks down… and if it’s the fast-recovery diode, that might not be a Good Thing.

  2. Just realized…. the two extra diodes probably don’t help much in reducing ringing….

    it’s what happens when economists start dabbling electronics… just enough knowledge to be dangerous…. :-)

  3. That’s an impressive spike. Just curious — if you put a fast catch diode across the whole thing (from relay wiper to relay wiper, that is) like you did with the relay coils, does that not tame the spike amplitude?

    1. a fast catch diode

      That’ll recirculate the energy in the Peltier module, which probably isn’t a Bad Thing.

      However, I have it laid out for a 12 V supply that would dump 8 A into the Peltier module and the diodes in my stash don’t have that kind of rating. Truth be known, I didn’t expect that much inductance in the Peltier module.

      I figured just killing the ringing after the body diode burns down the energy would suffice. As it turns out, I must shut off the PWM around the analog reads to get any kind of valid numbers.

Comments are closed.