2
\$\begingroup\$

I am trying to replicate a sensor that outputs pulses of 7->14 mA at a frequency of up to 5 kHz. I have achieved this with a combination of an LT3092 current source and an MCP4822 SPI DAC.

It works well using a DAC channel output per sensor output switching output voltage to set the current output of the LT3092 via the set pin, however, when ramping up to 4 sensors combined with a lot of other time sensitive code, the SPI interface doesn't seem capable and causes timing issues. I am using a 3.3 V microcontroller.

MCP4822 DAC & LT3092 Current Source

I'm learning as I go along, so I apologise for any stupid questions, but I have been struggling on this one for a while - I have explored the use of fast CMOS analog switches, such as the ADG1634, which is a break before make style switch so I could switch the input of the LT3092 to the two DAC output voltages, and with decoupling capacitors I think this could be kept stable for all the outputs, but it leads to spikes in the output signal at switch breaks (in nS, so unlikely a real concern, but a consideration nonetheless). The analog switch is also quite an expensive IC, at ~£7.

Analog Switch / LT3092 Combo

I was thinking there could also be a way to achieve this outcome with BJTs or MOSFETs. I was trying to make something work where a DAC channel at 0.525 V protected by a diode provided the base signal voltage to the LT3092, and a transistor switched 1.05 V over this base to give the desired input, but I couldn't make this work.

I am also wondering whether the LT3092 is a necessity and whether the whole thing could be achieved simpler?

This is the DAC controlled current source I was replaicating with the LT3092 from the data sheet;

LT3092 DAC Controller Current Source

Any advice would be much appreciated!

UPDATE;

I have now got to the point of testing it with the control unit, it seems that the shunt resistor value is lower than I expected at ~20 Ohm (rather than 75 Ohm), leading to the output voltage for the pulse to be 135mV -> 270mV for the 7mA and 14 mA outputs. I was able to correct this as I was still using a DAC to feed the voltages for initial testing before building one of the great solutions below.

The next question/requirement I would like to ask for advice on has appeared due to diagnostics. On intial ignition, the controller sends pulses on the 12V+ line, and the sensor responds with 12V pulses on the signal line - meaning the output now has to be capble of 4 voltages - 0, 135 mV, 270 mV and 12V. I know how to create the 0,135 and 270 with the below, as the 0 will occur when the 12v source is OFF, but the 12V is causing me some headaches to understand. Below is a trace showing the sensor + line in Blue, and the sensor response in red (when it goes off scale it is going to 12V)

Sensor Diagnostics

The 12V is essentially a short to the +line so I used a voltage controlled switch in LTSpice to create this circuit seen below, but I only achieved 11.45v for the high pulse, which is also quite high current, but must be happening with the real sensor also. I dont know how best to actually implement the voltage controlled switch as an electrical component - I have tried with transistors/FET's/optocouplers, but wasnt able to achieve the 12V, or ended up messing with the other lower voltage outputs. The shorter pulse is also 2ms total, so SSR's etc seem to be too slow when looking for the 600mA load.

LTSpice Voltage Controlled Switch

Does anyone have any ideas about how I could achieve these 4 outputs?

As an aside - I'm hoping to soon have enough kudos/reputation to actually thank all those that responded to my original post - it currently wont let me!

\$\endgroup\$
9
  • \$\begingroup\$ Before I embark on an answer, where are you expecting to "see" this current? In other words, is your LT3092 supposed to be sinking (the load is between +3.3V and IN) or sourcing (the load is between OUT and 0V)? As you have it, simply applying some potential at SET requires your load to be on the high side (between +3.3V and IN), with a resistor (that you haven't shown) from OUT to ground. \$\endgroup\$ Nov 23, 2022 at 3:04
  • \$\begingroup\$ Hi Simon, thank you for responding - there is a 75 Ohm shunt in the receiver which the current output of the LT3092 is read against, so sourcing - appologies the circuit was taken from my interface board, which doesnt have the resistor on it! I simulated the resistor on the LTSpice model above (hopefully this is correct!). \$\endgroup\$
    – JamesGT3
    Nov 23, 2022 at 3:08
  • \$\begingroup\$ Effectively you are using the boutique programmable current source as kind of a unipolar voltage follower, yes? Dare I ask why? \$\endgroup\$ Nov 23, 2022 at 3:21
  • \$\begingroup\$ Hi Spehro, thank you for your response - I'm trying to make a tester for a module which reads the current output of a sensor. The sensor takes a 12V feed and outputs 7 - 14 mA pulses against a 75 Ohm shunt in the device. I'm using the LT3092 as it was the only way I could think of producing the current output - hence airing my lack of knowledge here and asking for help. I'm hoping someone here can point me in the right direction or show some different options to achieve this outcome. Could I just use an analog switch with a 1.7k resistor on one output, and 857 Ohm on the other? \$\endgroup\$
    – JamesGT3
    Nov 23, 2022 at 3:35
  • \$\begingroup\$ LT3092 output is a voltage source, not a current source. only when used as shown in the datasheet is it a current source. \$\endgroup\$ Nov 23, 2022 at 4:07

2 Answers 2

2
\$\begingroup\$

You could use a MOSFET to short-circuit one resistor of a chain of two, to effectively switch between two different possible total resistances. This is shown in the blue box (bottom left) here:

schematic

simulate this circuit – Schematic created using CircuitLab

You switch the MOSFET on and off with a simple digital signal:

enter image description here

The effective resistance resistance between X and ground (0V) switches between 50kΩ (Q1 on) and 100kΩ (Q1 off). This causes the potential at X to alternate between 0.5V and 1V respectively, due to this compound resistance passing current from the LT3092's 10μA internal source.

The LT3092 simply reproduces that voltage at its "OUT" pin, which causes either \$I_{OUT} = \frac{0.5V}{75\Omega} = 6.7mA\$ or \$\frac{1.0V}{75\Omega} = 13.3mA\$ to flow via \$R_{LOAD}\$:

enter image description here

Since all this does is to simply copy a voltage, either 0.5V or 1V, to the top side of the receiver's load/sense resistor, why bother with any of this? Can't you use 0.5V & 1V sources to achieve the same result?

Perhaps you could use the same resistance switching technique as above, but with a fixed 3.3V source instead, like this:

schematic

simulate this circuit

This produces a very similar result, without any complicated current sources or DACs:

enter image description here

enter image description here

If you have confidence that you can provide a digital 0V & 3.3V signal, capable of sourcing and sinking 10mA or so, then you could even dispense with the transistor, and let the output stage of the digital I/O source handle the switching:

schematic

simulate this circuit

The resulting current in \$R_{LOAD}\$ is like this:

enter image description here

\$\endgroup\$
1
  • \$\begingroup\$ Thank you for the very detailed answer, Simon! I'll have a look through and try to replicate the circuits in LT Spice so I can learn myself. One of the reasons for using the current source, is that the unit I am trying to test (an ABS unit) sends out the 12V feed to each sensor, and measures the current returning - I was thinking it may have a diagnostic on this line if I ignore it. The current source/DAC also gives me the opportunity to regulate the current to exactly 7 and 14mA if I measure the input voltage (incase its not exactly 12v - it could be upto around 14.4V) \$\endgroup\$
    – JamesGT3
    Nov 23, 2022 at 4:34
2
\$\begingroup\$

You could use a high-side switch as shown:

enter image description here

\$\endgroup\$
1
  • \$\begingroup\$ Thank you, Spehro for this solution - its definitely simpler than what I was trying to do. The key pricipal I had missunderstood, which led to the inclusion of the LT3092 was that with R & I fixed for the load and sensor output, the Voltage was always going to be the same, whether it came from a 3.3v or 12v source! Simple now, but without seeing it, it didnt click before! \$\endgroup\$
    – JamesGT3
    Nov 23, 2022 at 17:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.