Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

How to (appropriately) drive an ignition coil and/or a flyback?

Status
Not open for further replies.

Speakerguy

Active Member
OK, I am thinking about designing a multi-use box to drive both ignition coil drivers and flyback transformers (not at the same time, obviously).

The idea is to have a Visual Basic program communicate via serial to a PIC to tell it what waveform to generate, and have the PIC actualy generate the waveform to be applied to the primary of the device.

So basically PC->MAX232->PIC->Isolator (for spike protection)->Output stage

1)What waveform/duty cycle/etc is appropriate to drive a flyback? What voltage range do they take on the input? I have several surplus units but no specs. I've found ignition coils to work fine anywhere from 12-15V with a low duty cycle square wave, but the exact parameters depend very much on the individual coil and what frequency you're running at (basically each coil had an individual charge time, at which point you wanted to fire, and then just keep it switched off for the remainder of your period).

2) Is a simple low-side switch OK, or would I do better with a half-bridge FET system?

3) Any suggestions on this? I've found that arc discharges from ignition coils can reset the PIC, but twisting the wires that fed the coil and the leads to the arc gap fixed everything (basically they were acting as antennas). I plan on putting the entire system in an aluminum enclosure this time with power devices heatsinked through the case to some big ol' sinks I can find around work.

I figure this might be a useful project for others too, since people like to use these as HV sources and this would be a pretty slick way of controlling the device.
 
A simple low side driver is all you need, there's not need for anything fancy.

The spark is not generated when the current in the coil is initiated but when it is interrupted. The longer the pulse to the primary lasts the more energy you'll get in the spark up to a certain point at which core saturation occurs and from then on you'll be throwing the extra energy down the drain. If I were to build an ignition coil driver I would find the saturation current experimentally then design an astable 555 timer circuit accordingly.

Now I appreciate that you want to do something more advance so you could just find the saturation current then end the pulse when the current gets to that value. For example if your coild saturates at 2A you turn the MOSFET on and leave it on until the current builds to 2A then turn it off, the advantage with doing this you'll get the same ouput energy in the spark regardless of the input voltage. The spark energy could be easilly made adjustable by varying the current limit and the repetition rate is easy to vary by varying the gap between switch off and switch on.

Measuring the saturation current is easy, first you need the DC resistance of the MOSFET, coil and any other wiring in the ciruit including any current sense resistors. In theory core saturation occurs when the current reaches the value deturmined by ohms law, i.e. the inductance has disappeared. Turn the MOSFET on and monitor the current, first it will grow in a linear fashion but it will gradually get steaper until it suddenly grows to the point where it's only limited by the resistance in the circuit, you want to interrupt the current before it gets to this point! This test is best done using a squarewave signal generator, an oscilloscope, a MOSFET and a current sense resistor. The idea is you watch the voltage across the current sense resistor with the scope and play around with the duty cycle until it never saturates.
 
Your best option is to use an IGBT.. They are designed to drive inductive loads..

OnSemi have 25 listed in their online parametric database...

https://www.onsemi.com/PowerSolutions/parametrics.do?id=805


I've used the NGB8207NT4G IGBT to drive a car coil, and for firing pyro stuff.. :eek: Good to about 20 amps at 365 volts..... :D

Onsemi do freebies, but you'll need to pay $14.99 shipping.. Absolute bargain!! :D
 
It would be much more easier just do what hero said, and ajust the frequency at the 555. Flybacks don't like operating at frequencies much below 20khz, otherwise they will go up in a puff of smoke:D
 
I've done it the easy way and also used PIC's in this manner before, but I'm trying to whip up a slick project that's not ghetto like my last projects :)

So about driving a flyback transformer. What's the appropriate waveform for a typical one? 50/50 square wave, or some other duty cycle or waveform?
 
You drive the MOSFET with a squarewave even though the current thorugh the coil will be a sawtooth wave.

I've already answered your question regarding duty cycle, it's the on time that really matters more than the off time, even if it isn't off for long enough for the current in the secondary to decay to zero, the next turn on cycle won't last as long as the core will reach the cut off current more quickly.

I would do the current monitoring and the initial MOSFET control in hardware because a PIC might not be fast enough to interrupt the current before the core saturates. I would use a bistable multivibrator with the reset connected to the current sense comparator and bufferamp and the ouput to the gate of the MOSFET. This will effectively form a monostable vibrator with the coil and current sense resistor acting as the timing element. Suppose we turn on the power and the bistable is in the reset position, the MOSFET will be off, now we send a pulse to the set pin, the MOSFET will turn on causing the current to grow in the coil until it's greater than the comparator's reference voltage causing it to reset the bistable. You could use an R2R network from the PIC to the comparator so you can control the current limit and also trigger the monostable from the PIC.
 
I've already answered your question regarding duty cycle, it's the on time that really matters more than the off time, even if it isn't off for long enough for the current in the secondary to decay to zero, the next turn on cycle won't last as long as the core will reach the cut off current more quickly.

OK, cool. I understood this was the way it worked with the ignition coil but wasn't sure it also applied to the flyback.

I would do the current monitoring and the initial MOSFET control in hardware because a PIC might not be fast enough to interrupt the current before the core saturates. I would use a bistable multivibrator with the reset connected to the current sense comparator and bufferamp and the ouput to the gate of the MOSFET. This will effectively form a monostable vibrator with the coil and current sense resistor acting as the timing element. Suppose we turn on the power and the bistable is in the reset position, the MOSFET will be off, now we send a pulse to the set pin, the MOSFET will turn on causing the current to grow in the coil until it's greater than the comparator's reference voltage causing it to reset the bistable. You could use an R2R network from the PIC to the comparator so you can control the current limit and also trigger the monostable from the PIC.

That is an EXCELLENT idea! Reading the current sense voltage with an ADC on the PIC would likely take way to long (isn't it in the 100-200us range? on a PIC16F876A w/20MHz osc - I think that's what I've seen in the past, even though it seems long). My ignition coils here reach saturation right around that time span depending on which one I'm using, so I'd basically be getting one data point :/ This sounds way better and also allows me to keep my power and ground lines for the PIC & associated circuitry isolated from anything that might get a big voltage spike on it from the voltage kickback.

Also, do you have a preference for FET's or IGBT's in this app? I've always used FET's for their ultra low on Rds vs. the Vce sat voltage for a power IGBT for lower Pd, but I haven't looked at a whole lot of IGBT's. We use FET's around work a lot more and so I have a big ol' bag of random parts to choose from usually.
 
An ignition coil is a type of fly-back transformer, it just has a steel laminate core instead of a ferrite core and therefore a higher inductance than a TV fly-back so it will store more energy so you get higher energy sparks but it takes longer to saturate so you won't be able to get the same repetition rate. A TV fly-back will work at around 15kHz to 30kHz but an ignition coil will only work up to a few 100s of Hz.

If you want to keep your PIC circuit totally isolated from the fly-back circuit you could even consider using a current transformer or a hall-effect sensor for the current monitoring and a pulse transformer or opto-isolator to trigger the monostable. The monostable can be anything you like so a quad NAND gate would do. Also, I haven't really thought about it so I don't know if it's possible but you can make a bistable with a couple of transistors can't you? Therefore it might be possible to use the MOSFET controlling the coil as one transistor and form a bistable by adding another small MOSFET like the 2N7000.

I've always used MOSFETs for this sort of thing, like you say they have a low on resistance. If you always load the circuit you shouldn't damage the MOSFET (most MOSFETs are pretty tough anyway) check the avalanche rating on the datasheet.
 
The ignition coils I've used have been able to do up to 10kHz but I have been using specialty (ie expensive) racing coils. One was a $160 drag racing ignition coil and the other was a $40 unit that was an aftermarket upgrade part (this one did not go quite as fast).

Anyway, I got the flyback transformer to spark today. I was running a 50/50 square wave into a 500V FET off a 12V supply. It sparked for two tenths of a second and then my digital isolator between the PIC side and the flyback driver side blew. I didn't know what all else blew, so I replaced everything from the isolator on up (isolator, driver FET, output FET). The kickbacks must be a lot more than with the ignition coils, with those I only ever saw 200V peaks when I switched the coils off and I didn't even need protection diodes on my transistors. This flyback did quite a number on my ckt.

Anyway, I'll play with it more tomorrow. This flyback looks like it has two primary windings, three pins each. Only two of the pins work to drive a primary coil. Seems weird.
 
This Circuit works Very Nicely to drive a Car Ignition Coil.

**broken link removed**

Take care...Gary
 
speakerguy79 said:
Anyway, I got the flyback transformer to spark today. I was running a 50/50 square wave into a 500V FET off a 12V supply. It sparked for two tenths of a second and then my digital isolator between the PIC side and the flyback driver side blew. I didn't know what all else blew, so I replaced everything from the isolator on up (isolator, driver FET, output FET). The kickbacks must be a lot more than with the ignition coils, with those I only ever saw 200V peaks when I switched the coils off and I didn't even need protection diodes on my transistors. This flyback did quite a number on my ckt.
What do you think destroyed the flyback driver?

Its normally the secondary that goes.

Just a thought but isolating the PIC from the ignition coil could be a problem.

Forget my current transformer of hall effect ideas for the current sensing, remember it's the hadware that's doing that. The only connection you need between the PIC is a pulse to turn the driver on so an opto isolator is probably best suited and you can build your own HV opto isolator using an infrared LED and photo transistor working in a dark enclosure like a flim case.
 
just remember that when you disconnect the current from the primary, it will generate a spike of about 300v out the primary as well as the higher voltage out the secondary, so a couple of diodes would be good.
 
I'm using a galvanic isolator with a 4KV isolation rating. I would have used an opto but I had these laying around from an old project at work.
 
Current-Mode PWM Ic's are very popular in flyback power convertion, and coreless transformer provide fastest isolation.
You can adopt from curent-mode system, and only need to trigger the driver on.
For safety, diodes and snubber circuit often used in design.
 
Last edited:
speakerguy79 said:
I'm using a galvanic isolator with a 4KV isolation rating. I would have used an opto but I had these laying around from an old project at work.
4kV is more than enough if you're purely protecting it from voltages on the driver coil but if you want to protect against mishaps occuring on the secondary then you need better isolation; if this is the case then I would suggest that it should be good for at least 25kV
 
Hero999 said:
4kV is more than enough if you're purely protecting it from voltages on the driver coil but if you want to protect against mishaps occuring on the secondary then you need better isolation; if this is the case then I would suggest that it should be good for at least 25kV

"I would suggest that it should be good for at least 25kV"

Does such a device even exist with that large of a isolation value?

Lefty
 
Like I said you can make your own using an infrared LED and phototransistor.

Or if you really don't want DIY then use the cheapest fibre optic cable and tranmitter and reciever you can get your hands on.

Having said that I'm sure there are ready made high voltage opto-isolator modules available.
 
I am making an improved coil driver ckt right now. I will try and post schematics in the next day or so and try to get some feedback. I will make schematics, gerber files, everything available if anyone wants 'em. It will be able to drive several coils in parallel and will have a serial control interface. I don't know if I'm going to just use hyperterm or actually code up a visual basic or C++ interface for it yet though.

Ruggedness is one major design goal, so I would appreciate any help with that I could get on the coming schematic.
 
Status
Not open for further replies.

New Articles From Microcontroller Tips

Back
Top