Electronics > Projects, Designs, and Technical Stuff

Solenoid driver design

<< < (3/6) > >>

T3sl4co1l:
Yeah, that circuit is roughly the right idea.

A current mode hysteretic control is a good and cheap way to implement this; consider for example the classic L297/L298 stepper driver system.  These sense ground-return current and PWM the load (which is basically a solenoid) to control current.  When turning on or off, the load gets a large voltage (i.e., full supply), for high [current] slew rates.  When idling in a state, the load's average voltage is chopped down.

Those two chips are... terribly dated, but there are newer options, or you can make your own.

I think there are solenoid controller ICs out there that can do everything in a few parts, but a discrete version could be done in, hmm, a dozen or so parts, if carefully optimized and you don't mind a few missing features (like wide supply range, super high efficiency, and various kinds of protections).

The power stage isn't very interesting; the one- or two-switch version (e.g., compare the EDN example to the injector example above) can be used, with the downside that the one-switch version has to dump the excess coil energy (which, it can be dumped into an auxiliary power rail and converted back into the supply to avoid burning it), while the other circulates the energy by itself (a pretty clear winner, unless some kind of economy-of-scale should apply).

The two-switch does have the downside that you can't use a common-ground (or +V) load.

The EDN circuit I think uses a design intent from a handy philosophy: keep everything consistent if possible.  Namely, all you really need is a current mode converter for the power stage, and then you can vary the current setpoint to get the leading step.  It's always in control, making your circuit immune to destruction due to a shorted load.  You don't need a bunch of arbitrary junk -- state machine and timers -- to run it.  (Granted, in this case, the state machine approach may well be simpler.)

Other gotchas include switching waveforms on a wiring harness, and general automotive concerns (e.g., reversed battery, load dump, smoking high temps in the engine bay).  You would at least want those cables to be shielded up to the injector/solenoid, or to put the circuit right on top of the device.  The former adds expense, the latter adds complexity (high operating temp).

Tim

max_torque:
As a bit of an asside to this particular circuit, i found it interesting to note that most automotive direct injection drivers, that use a peak and hold architecture, actually also use the injectors themselves as the boost inductance!   DI injectors need around 100V to actuate, so the vehicle 12v (nominal) system must be boosted, and to avoid having to have expensive and large inductors in the driver, they cleverly pulse the injectors with very short pulses, too short to actually open them (~250uS) during the "off time" for each injector.  That allows the system to use the non firing injectors as the boost inductors, generating the higher voltage that is then switched to the firing injector!  (and unlike port injection, DI injectors are necessarily limited to a maximum of around 25% duty,meaning there is always plenty of time and hence boosting current avaliable!   :-+

mbless:

--- Quote from: chuckb on November 26, 2019, 01:32:59 am ---With 14V? injectors you will need 19V on the gate. Luckily these MOSFETs have a very rare and good 30V Gate-Source rating. So the components look like they will work in the actual circuit.

--- End quote ---

I was able to get more information on it. This particular injector is 24V, and the high-side mosfet's gate is driven with 40V to have a Vgs of 16V. I'm planning on using p-channel for the upper mosfet to avoid using a bootstrap driver. The high-side gate also gets the peak-and-hold PWM where as the low-side mosfet is full on for the injection duration.


--- Quote from: chuckb on November 26, 2019, 01:32:59 am ---When laying out the circuit, the Transorb, M1, D1 and D3 should be the first things the solenoid wires see when they get to your circuitry. Minimize this wiring length. This will keep voltage spikes under control. Then M1 can connect to the solenoid wiring. The control/Drive electronics and power return needs to be referenced to the source of M1. When the electronics transitions from 100% on to PWM the sudden reduction in input current will cause a positive voltage spike on your input power line. This is from the power wiring inductance. This can also be very different between your bench with a power supply and the final installation. I would make sure you have several hundred uF of cap and maybe a 30V Transorb on the power line supplying the control electronics to keep this voltage surge under control.

--- End quote ---

Thanks for the tips. I'll give more thought to the input protection.

mbless:

--- Quote from: T3sl4co1l on November 26, 2019, 02:18:55 am ---Other gotchas include switching waveforms on a wiring harness, and general automotive concerns (e.g., reversed battery, load dump, smoking high temps in the engine bay).  You would at least want those cables to be shielded up to the injector/solenoid, or to put the circuit right on top of the device.  The former adds expense, the latter adds complexity (high operating temp).

--- End quote ---

Thank you for the input. Fortunately this is all for lab work, so I won't have high temperatures or alternator noise to deal with. I will have long leads, so I'll try a shielded cable.

Speaking of noise, do you have any suggestions for a noise-free low-side current sense circuit? The driver discussed above uses a chassis mount resistor. The green curve in the attached image is the voltage drop across the resistor and is extremely noisy.

T3sl4co1l:
Put an RC lowpass after the resistor, such that R*C of the filter = L/R of the shunt.

Mind ground loop voltages and currents.  Keep loops local.  You may also be observing noise that's simply between ground and oscilloscope, and not actually between nodes in the circuit.

Tim

Navigation

[0] Message Index

[#] Next page

[*] Previous page

There was an error while thanking
Thanking...
Go to full version
Powered by SMFPacks Advanced Attachments Uploader Mod