3
\$\begingroup\$

I am currently working with sensors which are mostly resistive (100 to 600 ohms on average) and need to be fed with a controllable bidirectional constant current (from -1mA to +1mA with a resolution of approximately 1µA).

I need to measure the switching behavior of the sensor which manifests itself through a binary change in the resistance of the device : the high resistance state is usually between 10% and 150% higher than the low resistance state.

The switching frequency is up to 1MHz, it may occur at random intervals and is quite fast (~ 1 nanosecond settling time).

Another problem is that the sensor is extremely sensitive to ESD and other voltage surges : a voltage of more than 400mV or a current of more than 1mA will kill it in less than a nanosecond.

I designed a tunable constant current source circuit based on the explanations found in the book Current Sources and Voltage References: A Design Reference for Electronics by Linden T. Harrison.

Schematic of the driving and measurement circuit

There are several limitations to the design :

  • first, I don't really like using 15V potentials in the circuit as the sensor is super sensitive but the fast/precise op amps seem to need higher voltages. It would be ideal to be able to power the whole thing from a simple 9V battery. There are some op amps working with lower power but they all seem to be surface mount while (at least for now) I need DIP packages for practical reasons.

  • then, I tried this circuit using a simple resistor to simulate the sensor. When I shorted the sensor with another resistor to simulate a fast resistance change, the current did not settle fast enough (few microseconds) and there was a short but big voltage spike (around 1volt) at the sensor level before it triggered the protection diodes. Ideally, I'd like the protection diodes to never have to trigger

  • also, there is a huge noise problem : anything I measure in the circuit has around 10mV noise, even with decoupling capacitors everywhere. But this may also be due to my experimental setup.

So my questions are the following :

  • Is this circuit even suitable for such an application ? Maybe should I choose different components ?

  • How can I make it work without using a 30V power supply but just a smallish battery ? (I can't find suitable DIP opamps for low voltage operation)

  • Are there some effective ways to prevent dangerous voltage spikes while the system is turning on/off and when the sensor switches or gets connected/disconnected on the fly ?

Thank you very much. I hope this topic will be helpful for other people trying to drive constant current resistive sensors that are sensitive to voltage spikes.

EDIT : Sorry for the misunderstanding : I am not trying to actually see the nanosecond switching process, just to detect switching in real time

\$\endgroup\$
6
  • 1
    \$\begingroup\$ It is not clear in your question whether you need to measure the switching operation (in which case you need to use components with much higher bandwidth) or if it is enough just to detect the switching. As for the current spike, perhaps it will help to use a larger current sense resistor, or a resistor in series with it (several kΩ to say 10kΩ), which will improve the loop stability given widely varying load resistance. The isolation on the outputs will make things difficult if you need to go to higher bandwidths, but it may not be necessary anyway. \$\endgroup\$ Commented Apr 17, 2015 at 11:56
  • \$\begingroup\$ Are you trying to reproduce the sensor's resistance waveform as a voltage waveform? Or just measure some characteristic of it, like duty cycle or frequency? Also, why is DIP a practical limitation? SOICs are easier to solder than you might think, and custom PCBs are cheaper than you might expect. \$\endgroup\$ Commented Apr 17, 2015 at 12:28
  • \$\begingroup\$ Yes, definitely move away from restricting yourself to DIP. DIP will force you to use components 15+ years old. Surface mount circuits have better performance, and they're actually faster to build by hand than through-hole (when you get the hang of it). Also: If you simply intend to resolve switching behavior with a 15:1 ratio, why does your current source need to be bidirectional, and why does it need 0.1% resolution? What kind of a sensor is this thing, anyway? \$\endgroup\$
    – Zulu
    Commented Apr 17, 2015 at 17:43
  • \$\begingroup\$ There is nothing in that circuit that will handle 1nS signals, or 10nS or 100nS ... maybe not even 1uS. \$\endgroup\$
    – user16497
    Commented Apr 17, 2015 at 23:25
  • \$\begingroup\$ Hello, thank you Oleksandr, I will take this into account, it is true that a 10K resistor in series will reduce the work the current regulation has to do. \$\endgroup\$
    – dmp32
    Commented Apr 18, 2015 at 13:42

1 Answer 1

3
\$\begingroup\$

1 - The first thing you need to do is rethink your choice of amps. An OP37 simply will not respond in nanoseconds. Neither will an AD625. And that 100 pF feedback cap is great for stability, but it also reduces bandwidth. If you want low-voltage, high-speed op amps, it's time to move away from DIPs. And you do want high-speed amps. Your current source needs nsec response times if it is going to respond to nsec transients in load impedance.

2 - For better results, put the 100 ohm resistor to ground, and float the sensor. That way, you won't have to worry about common mode response to your sensor fluctuations.

3 - I take it as given that your control voltage is not actually +/- 15 volts.

4 - If your sensor is ESD sensitive, the last thing you want to do is to connect/disconnect the sensor while the circuit is hot. Just don't.

5 - If you wish to drive 1 mA through 650 ohms, you are going to get 0.65 volts - and that is incompatible with your 400 mV number. Even so, you should consider diodes that are not optimized for relatively large currents, such as the (1 A) diodes you're using.

EDIT - Furthermore, I'm curious about how you're measuring circuit performance. On the one hand, if you're getting a lot of noise, what bandwidth is it? Is it AC line noise? And just as importantly, what sort of scope do you have that will let you detect 1 nsec, 0.1 volt spikes, which you say can kill your detector? This is pretty sophisticated work.

\$\endgroup\$
6
  • \$\begingroup\$ I just wanted to emphasize point 3.) above. If you are using your +/-15V supply rails for the current set point voltages, then that could be the source of your noise. \$\endgroup\$ Commented Apr 17, 2015 at 14:44
  • \$\begingroup\$ Hello, I didn't put the current sense resistor to the ground because I wanted the sensor to be grounded in order to avoid destroying it just by handling. Do you think common mode reduction is worth the risk of a floating sensitive device ? \$\endgroup\$
    – dmp32
    Commented Apr 18, 2015 at 13:53
  • \$\begingroup\$ Indeed, the control voltages are small, it's just the power supplies. As for your point 4), unfortunately I need to handle the sensor while it is running (with care). Anyway, I can only see 2 methods : the first would be to connect/disconnect the sensor while the device is running, the other would be to turn off/on the circuit while the sensor is connected. Both ways may create voltage spikes I think \$\endgroup\$
    – dmp32
    Commented Apr 18, 2015 at 14:00
  • \$\begingroup\$ As for the noise, it's more high frequency noise (not 50Hz but 10MHz and up) (since I am running the circuit from a battery using only linear voltage regulators, there is no switching power supply noise either) \$\endgroup\$
    – dmp32
    Commented Apr 18, 2015 at 14:03
  • \$\begingroup\$ For your point 5), indeed the sensors have a high variability and I won't be able to drive the highest-resistance ones up to 1mA because of the 400mV safety limit, so for them I'll stick to lower currents. That's also why I added these lower speed analog voltage and current outputs : to check the resistance of the device and to adjust the current and binary threshold voltage \$\endgroup\$
    – dmp32
    Commented Apr 18, 2015 at 14:15

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.