Driving HighVolt modules (5KV) with Arduino's PWM output

There is an–unfortunately closed–thread under http://arduino.cc/forum/index.php/topic,153684.0.html I like to continue here.

I have a similar problem, I like to drive up to 5 Emco GP 50 module (out 0-5kV, 200μA; in: 0-12V, <150mA) http://hivolt.de/index.php?id=gp_series with an Arduino for an art project.

My initial plan was to use 5 PWM pins and drive some IRLU2905 MosFETs (recommended by an electronics engineer) wiring appropriate to the schematic under bildr High-Power Control: Arduino + N-Channel MOSFET - bildr. The engineer added a 1KOhm resistor between Arduino pin and gate. It should be possible to drive Arduino and HV modules over a single source and branch off the 12V for the HV modules over Vin http://arduino.cc/forum/index.php/topic,161810.0.html

My problem is now: How to smooth the output of the MosFETs? Can I simply add a low pass filter as described her: http://provideyourown.com/2011/analogwrite-convert-pwm-to-voltage/ (further down the page). Or is the MosFET approach completely wrong and it is better to use an OpAmp?

The next problem: The GP 50 do not have “internal bleeder resistors on the output. Provisions must be made externally to discharge the output capacitors if this feature is desired” the datasheet says. Special HV resistors are expensive, our idea was to add about 10 normal 1-5MOhm resistors in series to have a “bleeder resistors”. Unfortunately this eats lot of current. It is about 1/3 higher than without it. Any idea how to manage this?

You need a DC-DC converter with variable output voltage capable of providing upto 150mA. That's normally done with a specialist chip using an inductor and capacitors - for 150mA no need for external MOSFET for most of these chips.

It would be possible to use the LPF solution with poor efficiency though, something like a MIC4422 MOSFET driver run at 15V, PWM into that and take the output through a 15ohm resistor to say 220uF, and PWM at say 10 to 20kHz. Again no external MOSFET needed, but the resistor should be at least 5W and the capacitor a low-ESR version - and you waste loads of power.

The reason a special chip is needed for the efficient inductor circuit is that inductors saturate above a particular current level, and then behave like a short circuit, blowing the switching devices very rapidly. Most of the chip's function is preventing failure modes!

Thanks for your answer! First of all the Emco GP 50 HV modules we are using are a kind of DC-(HV)DC converter (see http://hivolt.de/index.php?id=gp_series). From the datasheet: “The isolated output is proportional to the input, and is linear …”

But the problem is

  1. that I do not have a real “analog” signal as input. It is only a PWM signal that I have to smooth. With direct PWM the Emco modules do not work properly
  2. that I have–via PWM-- only up to 5V and the Arduino current but I need for the GP 50 HV modules up to 12V and 150mA to drive the modules

Do the DC-DC converter your mentioned also the demodulation / smoothing of the signal when input is PWM? What “specialist chip” do you have in mind?

I thought about using the Arduino Due, to have a real analog signal, but the Due has only 2 analog out pins (we need 5) and it’s still only up to 3.3V so not much is won … I think I can smooth the PWM signal with an low pass

If I got you right the Low Pass an the 12V level waste power. So the smoothing should be done before amplifying the 5V Arduino signal to 12V, right? I found this schematic http://arduino.cc/forum/index.php?action=dlattach;topic=153684.0;attach=38804;image in the old thread http://arduino.cc/forum/index.php/topic,153684.msg1163154.html#msg1163154 is this a good way to go? Get rid of the MosFETs, smmothing the signal direct after Arduino out, using a LM358 as OP and … hmm what do I have to change that it will work with my GP 50 module? Is the BD435 and BC337 still ok? I think I have to change the Zener diode to 12V … I do not really understand what the two NPN and resistors after the OP do?

Clemens:
There is an–unfortunately closed–thread under http://arduino.cc/forum/index.php/topic,153684.0.html I like to continue here.

I have a similar problem, I like to drive up to 5 Emco GP 50 module (out 0-5kV, 200?A; in: 0-12V, <150mA) http://hivolt.de/index.php?id=gp_series with an Arduino for an art project.

I posted a suggested circuit in that thread - is there a particular reason you don’t want to use it? It’s better to smooth the PWM output and then amplify it than to do the reverse.

You can’t avoid the bleeder resistor, and in any case you need a potential divider across the output so that you can sense the output voltage and feed it back to the Arduino. However, you can use higher value resistors. For example, 10 x 22M resistors such as http://uk.farnell.com/yageo-phycomp/hhv-25jt-52-22m/resistor-0-25w-5-22m/dp/1779371 would draw a little over 20uA @ 5kV.

PS - just realised that you linked to my schematic in your last post. You asked about the two NPN transistors. The BD435 boosts the current output capability of the op amp, because op amps that can supply 150mA directly are hard to find and expensive. The BC337 acts as a current limiter. The Emco module almost certainly includes an input capacitor, so if you try to increase the supply voltage to it rapidly then it will temporarily draw much more than 150mA. Yes, you will need to increase the zener to 12V, or perhaps 13V would be better because you will get around 1V drop in the BD435 and resistor. You will need a supply voltage to the op amp of at least 15V.

PS^2: my original schematic configured the op amp for a gain of 1, because it was driving a 5V Emco, and 5V is what the Arduino provides. You'll need to modify it to provide a gain of 2.4. To do this, insert a resistor R1 in series with the inverting input to the op amp. Then connect a second resistor R2 between the inverting input and ground. The ratio R1:R2 should be 1.4:1, for example R1 = 10K and R2 = 14K, or thereabouts.

Wow, what a fast reply! There is no reason not to use your schematic, as in some projects first you think about a solution and after a time (and some work is done) you find a better solution in the web … :wink: So, thanks a lot!

We thought also about increasing the total bleeder resistor value. Thanks for the link to the 22M resistors, 20uA @5kV would be great. I think I have to test how fast discharging will be. We like to use SMD resistors to save space, hope there is no downside compared to normal bigger resistors regarding HV.

Ok 15V supply for the circuit. I have planed to power the Arduino, up to 5 “GP 50 HV” modules and a radar sensor (8…15V, 30 mA) with one supply. I think this is possible even if the Arduino is recommended up to 12V.

I have “beautified” your schematic and added the voltage divider. Hope that are right, R1 and R2 are not according to your direction in the post, but swapped. Please check if this is so correct in the attached schematic.

Many thanks and Karma++

Clemens: We thought also about increasing the total bleeder resistor value. Thanks for the link to the 22M resistors, 20uA @5kV would be great. I think I have to test how fast discharging will be. We like to use SMD resistors to save space, hope there is no downside compared to normal bigger resistors regarding HV.

Check the voltage rating of the resistors you are planning to use, also read up about creepage distances on PCBs. I don't think you will be able to use SMD resistors in this application unless you use a lot more of them, maybe 50 in series. A single HV resistor may take up less space.

Clemens: Ok 15V supply for the circuit. I have planed to power the Arduino, up to 5 "GP 50 HV" modules and a radar sensor (8...15V, 30 mA) with one supply. I think this is possible even if the Arduino is recommended up to 12V.

Yes that's OK as long as you are not drawing much current from the Arduino's +5V pin.

Clemens: I have "beautified" your schematic and added the voltage divider. Hope that are right, R1 and R2 are not according to your direction in the post, but swapped. Please check if this is so correct in the attached schematic.

Schematic looks OK but you have the 220M resistor connected just as a bleeder, not as a voltage divider, so there is no feedback to let the Arduino know what the output voltage is. I'm assuming you will be replicating this circuit 5 times, connected to 5 different Arduino PWM pins - not driving 5 Emcos from one amplifier. The BD435 in this circuit can dissipate up to about 3W worst case in this arrangement, so it will need a heatsink. You could probably replace it with a TIP31C if you find that easier to obtain. You will need a 13V zener if you want the output to go up to 12V.

Thank you so much! Yes, I will have an eye on the creepage distances. We thought about normal resistors because we found relatively expensive HV resistors. But as I saw in your link this must not be the case and so we will use HV resistors and not count on cheap SMD out of spec! A worth-full hint!

Yes, correct: Replacing the circuit 5x and run it with 5 different PWM pins. I have not planed the voltage divider as feedback because we do not need it--besides you will recommend it as fallback safety component ...