I have an MCP4921 DAC that is controlled by a Raspberry Pi.

Then, I have built a Howland current pump circuit that is able to regulate current depending on the input voltage:

Howland current pump circuit

Both of these work beautifully in the lab. I am also able to use the DAC to control the V3 voltage source on the circuit. Again, this works fine.

The last piece of the puzzle was to be able to pulsate the output current to have it look like a square wave at a given frequency. To do this, I have decided to try and use a CPC1150N solid-state relay.

I am able to use the PWM module on the Raspberry Pi to control the relay. What I tried to do was put the solid-state relay in between the DAC and the R2 resistance. However, this did not work. For some reason, I have a 4V voltage drop across the solid-state relay. Setting one end of the optical relay to 2V with the DAC, I measure 6V at the other end.

I am not very knowledgable with solid-state relays to understand why this is happening. My question is: Why is this happening? Would it even be possible to use a solid-state relay at that location and if not, what are the alternatives?

I have thought of purchasing a new DAC with switching capabilities, but wanted to know if there was another way before doing so.


1 Answer 1


I don't see how you would use the SSR in the position you suggest. Opening up that input is not the same as making the voltage 0V.

You should note that the SSR needs something like 5mA through the LED to switch 'on' reliably, so make sure that whatever drive circuit you are using is supplying sufficient current.

Maybe you could increase the 1 ohm sense resistance, depending on your range of load resistances.

Edit: I'm changing the suggestion because there was a path I didn't notice before the coffee.

Put the SSR output between the + input of the op-amp and ground. You could also use a small MOSFET such as a 2N7000 or (better) a TN0104 instead of the SSR and drive it directly from the RPi.

  • \$\begingroup\$ I was thinking of using the SSR for my VREF but again, opening up the input is not the same as making the voltage 0V. I'll look into your suggestion. Thank you! \$\endgroup\$
    – George
    Feb 1, 2020 at 20:11
  • \$\begingroup\$ Again, opening up the connection is not the same as making it 0V, it's unclear what happens in that case (and there are two modes to analyze). It appears from a quick glance at the datasheet that it won't go quite to 0V in buffered mode (it's not really specified what happens below 40mV) and in unbuffered mode you'd need a reasonably low resistance SPDT switch that connects the reference input to either Vref or to 0V, so you could use a 74HC4053. \$\endgroup\$ Feb 1, 2020 at 20:11
  • \$\begingroup\$ Yea you're right. Thank you. Just to be clear, your suggestion was to set the Optical relay in between the 12V power supply of the Op amp and transistor to ground, right? \$\endgroup\$
    – George
    Feb 1, 2020 at 20:15
  • \$\begingroup\$ Would that really be okay to short my power supply? Or should I use a second SSR to also open up the power suply at the same time? \$\endgroup\$
    – George
    Feb 1, 2020 at 20:19
  • 1
    \$\begingroup\$ Putting it in between the ground and In+ I think is a good option as well. \$\endgroup\$
    – George
    Feb 1, 2020 at 20:29

Your Answer

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

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