I am working on a board which is user-insertable into a DIP socket. Incorrect insertion is always a concern, and in this specific case insertion "shifted-by-one-pin" is especially worrying.

What then happens is that a 3V3 digital logic output line, which normally goes from an FPGA to a TTL input in the socket, instead gets connected to 12V power supply. Once the power is on, this immediately fries the FPGA and renders the board useless.

Given the geometry of the situation, purely mechanical misalignment prevention is going to be difficult to say the least, making it even more important to have a protection circuit in place. Now, I looked into Zeners, TVS diodes, signal diodes in series with the signal line, etc, but couldn't really find a solution that would combine these three items:

  1. Pass ~1 MHz digital signal reliably from the FPGA to the TTL input.
  2. Have the reaction time short enough to prevent FPGA from getting damaged (EPM1270, so basically anything above 4V is unacceptable).
  3. Be able to withstand sustained over-voltage for at least several seconds.

Any suggestions where to look next?

Update: I am choosing my answer, because it works for my case, but since it has its caveats, other responses may be better depending on circumstances.

  • \$\begingroup\$ Having a 12V in DIP socket is a bit exceptional. Can you open up a bit what contains the DIP socket and what the FPGA does? Is it a SID emulator for C64? \$\endgroup\$
    – Justme
    Apr 7, 2020 at 20:36
  • \$\begingroup\$ Close. :) It's a video coprocessor for C64, sitting in the VIC-II socket. Details still under wraps, hoping to have the website up before the end of the month: beamracer.net \$\endgroup\$ Apr 7, 2020 at 21:50

4 Answers 4


This is what I did: I inserted a 1SS404 diode in series with the signal. Signal from BA_SAFE to BA doesn't get too attenuated, and the reverse recovery time is short (~3ns). Everything appears to work fine, and if I unplug BA and connect 12V in its place, BA_SAFE remains unharmed.

Update: there is an important caveat here. What happens when BA_SAFE switches to LOW heavily depends on the diode type, and more specifically on its reverse recovery time (Trr). For example, with Schottky diodes that are usually specced at Trr < 1 ns the only way the charge between D5 and BA can drain is through R32. If its resistance is too high, it can take quite some time, thus extending the falling edges and affecting the signal. Even at the relatively low 1 MHz it turned out to be an issue for me, one which I couldn't sidestep by decreasing R32 resistance (because then the voltage at BA would be too low).

On the other hand, if the diode's Trr is too long (and there are some popular ones that need tens of microseconds), the current drain from D5-BA segment will be so strong that its potential can go below ground: I measured around -400 mV for over 10 us with 1N4007.

As this was not something I was willing to expose BA to, I ended up picking up a diode with Trr = 50 ns (BAV19WS-7-F), which in my case is enough to preserve sharp falling edges without any measurable negative voltages.

enter image description here


The simplest way is a TVS diode to GND to clamp the pin voltage with a series resistor to limit the current through the TVS. The problem is that the resistor limits your bandwidth but 1MHz isn't too fast to begin with. A smaller resistance will require a diode that can handle more power.

To limit the current in the diode to 10mA, you would need 870 Ohms which seems high. If your diode can handle 20mA then you can use 435 Ohms which seems more reasonable Shouldn't be too difficult to test by just putting a resistor in series with your FPGA output and scoping the output to see if signal transition times are acceptable. Do note the diode will add its own capacitance but you can put a forward biased diode if it has smaller capacitance in series with the clamp diode to reduce the overall capacitance of both diodes.

You could also try adding a small capacitance in parallel with the series resistor to alleviate rise/fall times issues due to the resistor. I only thought of this just now though so if you want to try this route you need to investigate more.


simulate this circuit – Schematic created using CircuitLab

  • 2
    \$\begingroup\$ I just wanted to comment that I tried it, it works, the capacitors works as intended, preserving sharp edges, and overall it appears to be an excellent solution if you need bidirectional communication over the protected line. \$\endgroup\$ Jun 19, 2020 at 18:00

Small series depletion mode MOSFETs and TVS clamp. You only need one MOSFET if it can never see negative voltage.


You might be able to use a zener, but because you don't know the available current, you'll want to put it in series with a resettable or replaceable fuse. The choice will depend on how much resistance you can tolerate.

  • \$\begingroup\$ Won't a zener be too slow? \$\endgroup\$ Apr 8, 2020 at 22:10
  • \$\begingroup\$ You might be able to find one that's too slow, but most are fast enough for basic TVS, and a dedicated TVS diode is plenty fast for this. \$\endgroup\$ Apr 9, 2020 at 17:18

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.