Constant Current Pulse Generator

Eric Pietrowicz
3 min readSep 13, 2019

When designing a pulse generator, maintaining a constant voltage across a varying impedance is a common requirement. However, when a requirement calls for maintaining a constant current pulse across a varying load, the design becomes a bit more complex.

This configuration was used for a neurostimulation device, but can be adapted to suit a variety of environments.

Three important specifications must be considered prior to component selection.

  1. Duration of the pulse (this will drive the op amp’s gain bandwidth)
  2. Range of the load impedance
  3. Constant current requirement

The range of the impedance and the specified current will drive the compliance voltage of the system.

For example: a 10mA current pulse across a variable load ranging from 0–1k ohms will require a compliance voltage of: 10 volts (V=I(20mA)*R(1k)). Therefore, you must choose your power supply accordingly.

The boost converter chosen for this application was the Texas Instruments TPS61085PWR adjustable boost converter. It was configured for a 12V output as shown in the application note below:

12V boost converter configuration

The input voltage was supplied by a 3.7V LiPo rechargeable battery.

(Check out my latest project here!)

An important note about this design: if you plan to spin a PCB using surface mounts components, take care in choosing the 10uF output capacitors. It’s easy to accidentally buy 0603 10uF caps that have a voltage rating less than 12V, in which case the boost converter will act very strangely. Also, it is hard to see in the above diagram, but the design requires 2 x 10uF output capacitors.

Current pulse schematic

In the schematic above, there are a few extraneous components that can be omitted if the accuracy of your system is not vital.

The core system is comprised of an op amp (LMC6482 general purpose rail to rail output), and a power MOSFET (IRF530 NMOS). The net labeled pulse control can be set to a fixed value by a voltage divider and a GPIO pin controlling the pulse duration. However, I opted for a DAC output and a pull down resistor (so the pin doesn’t float on startup) to allow for small adjustments in the output current based on readings provided by the INA169.

The non-inverting pin of the op amp is set to a given value: 100mV. The output then drives the MOSFET into its linear saturation region until a voltage drop of 100mV is read on the inverting input of the amplifier. 100mV across a 10 ohm power resistor would indicate that the load, between STIM+ and STIM-, has 10mA flowing through it.

You can stop there if feedback is not important, however, in this case, the INA169 instrumentation amplifier was used to read the voltage drop across the 10 ohm high side resistor, and report back to the microcontroller. The MCU may then determine if the current supplied by the pulse is within tolerance. If not, it will adjust the DAC output either direction until a suitable current is achieved.

If you’re interesting achieving compliance voltages higher than your power supply, a low impedance audio amplifier can be used to step up the current pulse. I did some testing with the Hammond Manufacturing 108E transformer (13.7:1 turns ratio) and was able to achieve a compliance voltage of well over 80V.

The only changes I made to accommodate the transformer were to add a snubber capacitor in parallel with the transformer to reduce ringing across the pulse load.

Current pulse using a step up transformer

--

--