29 August 2021

PROJECT: Half-Life 2 AR2, Update #13 - Solenoid Driver


Continuing with the RECEIVER_MAIN-BOARD design, this post will concentrate on the solenoid driver section. The solenoid in question is one I wound myself, whos approximate specs are:

  • 0.95 mH inductance
  • 1.42 Ω series resistance
  • 21 AWG wire (0.7mm dia)
  • 40m wire length

Why is this section so crucial? Well this circuit deals with driving a highly inductive load, which creates big voltage kicks/transients during the ON/OFF transitions. Dave from EEVblog made a good summary of this behavior here


Chosen Solenoid Driver Configuration

Before I bore you with more simulations, here is how the chosen configuration compares to driving the solenoid without any dampening/snubbing. Please note that the MOSFET I have chosen (Infineon BSC040N10NS5ATMA1) has a Vds rating of 100 V, which if exceeded will eventually destroy the semiconductor junction (as you see in the simulation with the 110 V peak...)

One other thing to note is that I have chosen to use a dedicated gate driver (TI UCC27533, see section 10.2.1.2.4 of datasheet on how to spec driver), as I am am working with a limited PCB area (as in have bugger all space to make a gate driver using discrete components)


A Closer Look at the Voltage Spike

There are many ways to dampen the back EMF (aka voltage spike), the most simple of which is just placing a diode across the inductor. This diode goes by many names, and the one I was taught at uni was freewheeling diode. It's recommended to use a Schottky diode, due to their lower forward voltage (think less dissipated power) and snappy response to reverse bias

Lastly my gate drive waveform is a 7 Hz square wave with a 50 % duty cycle (as in the inductor is energized for ~70 ms). Which is practically what the solenoid will be driven at, as seen in an older blog post 


Zooming in on the voltage spike we see that it "saturates" at ~110 V. This is because the junction of the MOSFET (which is rated to 100 Vds) is breaking down and clipping the peak. Using an ideal MOSFET in LTspice shows that the spike peaks at ~2 kV and lasts for ~1 ns


And with the freewheeling Schottky diode fitted, we get a manageable ~15 V peak


But What if I Want a Faster OFF Time?

Here is a good thread on this desire ;^)

If you have eagle eyes you might see that there is a bit of a delay before MOSFET Vds (and hence inductor current) stabilizes, and in some scenarios you would want this state to be reached as fast as possible so you can switch the inductor at crazy high speeds. Well if you want to do this one way is to add a dampening resistor in series with the freewheeling diode, but you have to size this resistor carefully otherwise the voltage drop across it is going to bring the spike back (as you can see below)


An even better way would be to use a Schottky & Zener diode combination, which I did not simulate as I was quite happy with the Schottky freewheeling diode arrangement (as I am only switching at 7 Hz...)

21 August 2021

PROJECT: Half-Life 2 AR2, Update #12 - Power Filter 10A


So today I am going to expand on my previous pi-filter topology to make it compatible with the solenoid driver. The same driver that is going to be dealing with ~7 Hz 10 A transients ;^)


Chosen Pi-Filter Configuration

As before, here is the step and frequency response of the chosen pi-filter configuration. Since I am dealing with a higher transient current, I am trying to minimize things like:

  • Settling time
  • Over/under-shoot
  • Frequency of ringing (think radiated EMI)

If you are confused about some of the above terms then have a look at the next section


Summary of Ferrite Beads

With the previous lot of simulations I was quite happy with the electrolytic & ceramic capacitor arrangement (which turned out to be ideal for this case as well), so this time I dived deeper into the impacts of ferrite bead impedance

The step response was configured to peak at 10 A, which is the peak current of the solenoid I wound. As I began simulating stuff I noticed that such a large current spike lead to noticeable over/under-shoot & ringing, hence I evaluated each ferrite with this in mind


Rather than flood yous with pictures of different ferrite bead simulations, this time I decided to summarize the data in a nice table:

Note how the NO FILTER response:

  1. Has a rather "late" -3 dB roll-off frequency, ~3,500 kHz vs ~160 kHz for others
  2. Manages to amplify any transients in the ~30 kHz to ~3.2 MHz range
  3. Has a step response that oscillates at ~2.2 MHz (think radiated EMI)

At the same time, now how using a higher impedance ferrite bead (48-115 Ω @ 100 MHz) leads to:

  1. Amplification of any transients in the ~15 kHz to ~150 kHz range
  2. An increase in settling time
  3. An increase in over/under-shoot

In my opinion the 10 Ω @ 100 MHz ferrite bead (Wurth 74279221100) gives the best performance of the lot. With the most noticeable/worthy feature being no amplifiaction of transients from 1 Hz all the way to 100 GHz :D


Closer Look at 115 R Ferrite Bead

For the sake of completeness, here is how the largest impedance ferrite bead (Liard 28F0181-1SR-10, 115 Ω @ 100 MHz) looks