Strange effect with H-Bridge + PWM + Peltier -- is an LC filter needed?

Discussion in 'General Electronics Chat' started by j_c, Dec 1, 2009.

  1. j_c

    Thread Starter New Member

    Dec 1, 2009
    I am trying to use an H-Bridge motor driver to control (heating and cooling) a Peltier TEC. Specifically, I am using the ST VNH2SP30 motor driver from a Pololu MD01B carrier board which can do PWM up to 20 KHz. An Atmega 328 based Arduino controls the H-bridge motor driver and provides the PWM signal. The Peltier I have (CUI CP40336) is rated for Vmax = 15.4 V, Imax = 4 A. My power supply is 0-18 V, 0-5 A.

    At PWM frequency 250 Hz and Peltier supply voltage Vcc = 15 V, the output current is proportional to the PWM duty cycle. However, I read that it is bad to drive Peltiers at low frequencies (is it?). I am not sure what the optimal frequency is, but since the VNH2SP30 can do up to 20 KHz PWM, I am trying both 10 KHz and 20 KHz. I've checked the PWM signal on an oscilloscope.

    Here is my problem: at high PWM frequencies (e.g. 10 KHz), I see this weird effect. When the Vcc is relatively "low" (below 12 V), the output current is proportional to the duty cycle. But as I slowly raise Vcc, there is a sudden transition where the current suddenly drops by a factor of 4, and the scope shows that there is now only a voltage pulse across the Peltier on every fourth PWM cycle! At 20 KHz, the drop is even worse (a factor of 7-8).

    I am not experienced in electronics, so i don't understand what is happening. And since I don't understand what is happening, I don't know how to solve the problem. I could do PWM at 250 Hz, but supposedly that is bad for the Peltier. Or I could keep Vcc below the threshold voltage where the weird effect starts, but then I am not getting the most out of the Peltier.

    From some Google searching, I think what I may need is an LC filter between the motor driver output and the Peltier. However, I am not sure if the effect I am seeing is due to the lack of an LC filter or due to some other unrelated problem. And if I do need an LC filter, what component values should I try?

    If anyone could provide some guidance, I would be most grateful.
  2. SgtWookie


    Jul 17, 2007
    Post your schematic, and an image of how you have things laid out.

    I suspect that at the higher frequencies, you're having problems with inductive signal /power paths, and you probably don't have sufficient bypass caps across your uC's supply and the VNH2SP30's logic supply.

    Just a simple inductor will help greatly to keep the current through the Peltier constant. The size of the inductor will be a function of your Peltier current, PWM frequency, and maximum desired ripple current.
  3. Darren Holdstock

    Active Member

    Feb 10, 2009
    It's not so much the low frequencies that piezos don't like, it's the thermal shock of a sudden change in drive level, so for maximum lifespan they need to be ramped up gently to the operating point.

    I think the pulse-skipping phenomenon you're seeing is more of a function of the feedback control, not something intrinsic to a piezo. Just for debugging purposes, try adding an extra resistive load and you should see the missing pulses return. The solution here is to lower the maximum drive current capability.

    The Sarge is right, an LC filter is the way to go when driving a piezo with a PWM signal. Don't rely on the intrinsic capacitance of the piezo, as its C will be a function of a number of things. Besides which, piezos kick back, so always use an external cap.

    Not part of the OP question, but a handy hint maybe: Choose your MOSFETs judiciously for best efficiency, as there's a tradeoff between static switching losses due to Rds(on) and dynamic switching losses due to gate capacitance charging/discharging. For any given load and switching frequency there will be a magic combination that gives best results.